diff --git a/cmd/detectExecuteScan.go b/cmd/detectExecuteScan.go index c56da0db52..fb40d75771 100644 --- a/cmd/detectExecuteScan.go +++ b/cmd/detectExecuteScan.go @@ -141,6 +141,11 @@ func newBlackduckSystem(config detectExecuteScanOptions) *blackduckSystem { sys := blackduckSystem{ Client: bd.NewClient(config.Token, config.ServerURL, &piperhttp.Client{}), } + commitShortSHA := "unknown" + if len(GitCommit) >= 7 { + commitShortSHA = GitCommit[:7] + } + sys.Client.UserAgent = fmt.Sprintf("piper-detectExecuteScan-%s", commitShortSHA) return &sys } diff --git a/pkg/blackduck/blackduck.go b/pkg/blackduck/blackduck.go index dcd95209d7..554e3a1826 100644 --- a/pkg/blackduck/blackduck.go +++ b/pkg/blackduck/blackduck.go @@ -233,6 +233,7 @@ type Client struct { httpClient piperhttp.Sender serverURL string projectVersion *ProjectVersion + UserAgent string } // NewClient creates a new BlackDuck client @@ -543,6 +544,10 @@ func (b *Client) sendRequest(method, apiEndpoint string, params map[string]strin header.Add("Authorization", fmt.Sprintf("Bearer %v", b.BearerToken)) } + if b.UserAgent != "" { + header.Set("User-Agent", b.UserAgent) + } + response, err := b.httpClient.SendRequest(method, blackDuckAPIUrl.String(), nil, header, nil) if err != nil { return responseBody, fmt.Errorf("request to BlackDuck API failed: %w", err)