Skip to content

Commit 057b017

Browse files
authored
Set rekor-cli User-Agent header on requests (sigstore#684)
This sets the User-Agent header to match the format used in cosign of rekor-cli/vX.Y.Z (OS) (ARCH) Signed-off-by: Bob Callaway <bob.callaway@gmail.com>
1 parent 520c328 commit 057b017

File tree

8 files changed

+41
-7
lines changed

8 files changed

+41
-7
lines changed

cmd/rekor-cli/app/get.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ var getCmd = &cobra.Command{
7979
}
8080
},
8181
Run: format.WrapCmd(func(args []string) (interface{}, error) {
82-
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
82+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"), client.WithUserAgent(UserAgent()))
8383
if err != nil {
8484
return nil, err
8585
}

cmd/rekor-cli/app/log_info.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ var logInfoCmd = &cobra.Command{
6262
Long: `Prints info about the transparency log`,
6363
Run: format.WrapCmd(func(args []string) (interface{}, error) {
6464
serverURL := viper.GetString("rekor_server")
65-
rekorClient, err := client.GetRekorClient(serverURL)
65+
rekorClient, err := client.GetRekorClient(serverURL, client.WithUserAgent(UserAgent()))
6666
if err != nil {
6767
return nil, err
6868
}

cmd/rekor-cli/app/log_proof.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ var logProofCmd = &cobra.Command{
7272
return nil
7373
},
7474
Run: format.WrapCmd(func(args []string) (interface{}, error) {
75-
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
75+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"), client.WithUserAgent(UserAgent()))
7676
if err != nil {
7777
return nil, err
7878
}

cmd/rekor-cli/app/search.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ var searchCmd = &cobra.Command{
9696
},
9797
Run: format.WrapCmd(func(args []string) (interface{}, error) {
9898
log := log.CliLogger
99-
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
99+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"), client.WithUserAgent(UserAgent()))
100100
if err != nil {
101101
return nil, err
102102
}

cmd/rekor-cli/app/timestamp.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ var timestampCmd = &cobra.Command{
139139
return nil
140140
},
141141
Run: format.WrapCmd(func(args []string) (interface{}, error) {
142-
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
142+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"), client.WithUserAgent(UserAgent()))
143143
if err != nil {
144144
return nil, err
145145
}

cmd/rekor-cli/app/upload.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ var uploadCmd = &cobra.Command{
7373
Long: `This command takes the public key, signature and URL of the release artifact and uploads it to the rekor server.`,
7474
Run: format.WrapCmd(func(args []string) (interface{}, error) {
7575
ctx := context.Background()
76-
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
76+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"), client.WithUserAgent(UserAgent()))
7777
if err != nil {
7878
return nil, err
7979
}

cmd/rekor-cli/app/useragent.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//
2+
// Copyright 2022 The Sigstore Authors.
3+
//
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
//
8+
// http://www.apache.org/licenses/LICENSE-2.0
9+
//
10+
// Unless required by applicable law or agreed to in writing, software
11+
// distributed under the License is distributed on an "AS IS" BASIS,
12+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
// See the License for the specific language governing permissions and
14+
// limitations under the License.
15+
16+
package app
17+
18+
import (
19+
"fmt"
20+
"runtime"
21+
22+
"sigs.k8s.io/release-utils/version"
23+
)
24+
25+
var (
26+
// uaString is meant to resemble the User-Agent sent by browsers with requests.
27+
// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
28+
uaString = fmt.Sprintf("rekor-cli/%s (%s; %s)", version.GetVersionInfo().GitVersion, runtime.GOOS, runtime.GOARCH)
29+
)
30+
31+
// UserAgent returns the User-Agent string which `rekor-cli` should send with HTTP requests.
32+
func UserAgent() string {
33+
return uaString
34+
}

cmd/rekor-cli/app/verify.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ var verifyCmd = &cobra.Command{
8787
return nil
8888
},
8989
Run: format.WrapCmd(func(args []string) (interface{}, error) {
90-
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
90+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"), client.WithUserAgent(UserAgent()))
9191
if err != nil {
9292
return nil, err
9393
}

0 commit comments

Comments
 (0)