mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 16:33:21 +01:00
* add support to upload results to enterprise Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add package sbom upload Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add dockerfile support Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add manifest, index, and dockerfile import functions Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * schema version to json output + enhance json schema generation Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * modify package SBOM shape to be entire syft document + add etui updates Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add import image config and manifest support Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add config options for import to enterprise Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * incorporate final stereoscope and client-go deps Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
59 lines
1.2 KiB
Go
59 lines
1.2 KiB
Go
package anchore
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/anchore/client-go/pkg/external"
|
|
"github.com/anchore/syft/internal"
|
|
"github.com/anchore/syft/internal/version"
|
|
)
|
|
|
|
type Configuration struct {
|
|
Hostname string
|
|
Username string
|
|
Password string
|
|
UserAgent string
|
|
Scheme string
|
|
}
|
|
|
|
type Client struct {
|
|
config Configuration
|
|
client *external.APIClient
|
|
}
|
|
|
|
func NewClient(cfg Configuration) (*Client, error) {
|
|
if cfg.UserAgent == "" {
|
|
versionInfo := version.FromBuild()
|
|
// format: product / product-version comment
|
|
cfg.UserAgent = fmt.Sprintf("%s / %s %s", internal.ApplicationName, versionInfo.Version, versionInfo.Platform)
|
|
}
|
|
|
|
if cfg.Scheme == "" {
|
|
cfg.Scheme = "https"
|
|
}
|
|
|
|
return &Client{
|
|
config: cfg,
|
|
client: external.NewAPIClient(&external.Configuration{
|
|
Host: cfg.Hostname,
|
|
UserAgent: cfg.UserAgent,
|
|
Scheme: cfg.Scheme,
|
|
}),
|
|
}, nil
|
|
}
|
|
|
|
func (c *Client) newRequestContext(parentContext context.Context) context.Context {
|
|
if parentContext == nil {
|
|
parentContext = context.Background()
|
|
}
|
|
return context.WithValue(
|
|
parentContext,
|
|
external.ContextBasicAuth,
|
|
external.BasicAuth{
|
|
UserName: c.config.Username,
|
|
Password: c.config.Password,
|
|
},
|
|
)
|
|
}
|