Skip to content

Commit 6c013a5

Browse files
authored
Move GetRekorClient into util directory (sigstore#349)
* Move GetRekorClient into util directory Since other sigstore projects are using GetRekorClient, this moves it into the pkg/util directory so that the number of dependencies this brings with it can be minimized. Signed-off-by: Bob Callaway <bob.callaway@gmail.com> * move to pkg/client Signed-off-by: Bob Callaway <bob.callaway@gmail.com>
1 parent 2d4c8c0 commit 6c013a5

File tree

14 files changed

+79
-51
lines changed

14 files changed

+79
-51
lines changed

cmd/rekor-cli/app/get.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/spf13/viper"
3131

3232
"github.com/sigstore/rekor/cmd/rekor-cli/app/format"
33+
"github.com/sigstore/rekor/pkg/client"
3334
"github.com/sigstore/rekor/pkg/generated/client/entries"
3435
"github.com/sigstore/rekor/pkg/generated/models"
3536
"github.com/sigstore/rekor/pkg/log"
@@ -70,7 +71,7 @@ var getCmd = &cobra.Command{
7071
}
7172
},
7273
Run: format.WrapCmd(func(args []string) (interface{}, error) {
73-
rekorClient, err := GetRekorClient(viper.GetString("rekor_server"))
74+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
7475
if err != nil {
7576
return nil, err
7677
}

cmd/rekor-cli/app/log_info.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131

3232
"github.com/sigstore/rekor/cmd/rekor-cli/app/format"
3333
"github.com/sigstore/rekor/cmd/rekor-cli/app/state"
34+
"github.com/sigstore/rekor/pkg/client"
3435
"github.com/sigstore/rekor/pkg/generated/client/tlog"
3536
"github.com/sigstore/rekor/pkg/log"
3637
"github.com/sigstore/rekor/pkg/util"
@@ -59,7 +60,7 @@ var logInfoCmd = &cobra.Command{
5960
Long: `Prints info about the transparency log`,
6061
Run: format.WrapCmd(func(args []string) (interface{}, error) {
6162
serverURL := viper.GetString("rekor_server")
62-
rekorClient, err := GetRekorClient(serverURL)
63+
rekorClient, err := client.GetRekorClient(serverURL)
6364
if err != nil {
6465
return nil, err
6566
}

cmd/rekor-cli/app/log_proof.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/spf13/viper"
2525

2626
"github.com/sigstore/rekor/cmd/rekor-cli/app/format"
27+
"github.com/sigstore/rekor/pkg/client"
2728
"github.com/sigstore/rekor/pkg/generated/client/tlog"
2829
)
2930

@@ -71,7 +72,7 @@ var logProofCmd = &cobra.Command{
7172
return nil
7273
},
7374
Run: format.WrapCmd(func(args []string) (interface{}, error) {
74-
rekorClient, err := GetRekorClient(viper.GetString("rekor_server"))
75+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
7576
if err != nil {
7677
return nil, err
7778
}

cmd/rekor-cli/app/root.go

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,10 @@ import (
2222
"os"
2323
"strings"
2424

25-
"github.com/go-openapi/runtime"
26-
httptransport "github.com/go-openapi/runtime/client"
27-
"github.com/go-openapi/strfmt"
2825
homedir "github.com/mitchellh/go-homedir"
2926
"github.com/spf13/cobra"
3027
"github.com/spf13/pflag"
3128
"github.com/spf13/viper"
32-
33-
"github.com/sigstore/rekor/pkg/generated/client"
34-
"github.com/sigstore/rekor/pkg/util"
3529
)
3630

3731
var rootCmd = &cobra.Command{
@@ -114,29 +108,6 @@ func initConfig(cmd *cobra.Command) error {
114108
return nil
115109
}
116110

117-
func GetRekorClient(rekorServerURL string) (*client.Rekor, error) {
118-
url, err := url.Parse(rekorServerURL)
119-
if err != nil {
120-
return nil, err
121-
}
122-
123-
rt := httptransport.New(url.Host, client.DefaultBasePath, []string{url.Scheme})
124-
rt.Consumers["application/yaml"] = util.YamlConsumer()
125-
rt.Consumers["application/x-pem-file"] = runtime.TextConsumer()
126-
rt.Consumers["application/pem-certificate-chain"] = runtime.TextConsumer()
127-
rt.Producers["application/yaml"] = util.YamlProducer()
128-
rt.Producers["application/timestamp-query"] = runtime.ByteStreamProducer()
129-
rt.Consumers["application/timestamp-reply"] = runtime.ByteStreamConsumer()
130-
131-
if viper.GetString("api-key") != "" {
132-
rt.DefaultAuthentication = httptransport.APIKeyAuth("apiKey", "query", viper.GetString("api-key"))
133-
}
134-
135-
registry := strfmt.Default
136-
registry.Add("signedCheckpoint", &util.SignedCheckpoint{}, util.SignedCheckpointValidator)
137-
return client.New(rt, registry), nil
138-
}
139-
140111
type urlFlag struct {
141112
url string
142113
}

cmd/rekor-cli/app/search.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"github.com/spf13/viper"
3333

3434
"github.com/sigstore/rekor/cmd/rekor-cli/app/format"
35+
"github.com/sigstore/rekor/pkg/client"
3536
"github.com/sigstore/rekor/pkg/generated/client/index"
3637
"github.com/sigstore/rekor/pkg/generated/models"
3738
"github.com/sigstore/rekor/pkg/log"
@@ -70,7 +71,7 @@ var searchCmd = &cobra.Command{
7071
},
7172
Run: format.WrapCmd(func(args []string) (interface{}, error) {
7273
log := log.Logger
73-
rekorClient, err := GetRekorClient(viper.GetString("rekor_server"))
74+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
7475
if err != nil {
7576
return nil, err
7677
}

cmd/rekor-cli/app/timestamp.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"github.com/sassoftware/relic/lib/pkcs9"
3333
"github.com/sassoftware/relic/lib/x509tools"
3434
"github.com/sigstore/rekor/cmd/rekor-cli/app/format"
35+
"github.com/sigstore/rekor/pkg/client"
3536
"github.com/sigstore/rekor/pkg/generated/client/timestamp"
3637
"github.com/sigstore/rekor/pkg/log"
3738
"github.com/sigstore/rekor/pkg/util"
@@ -202,7 +203,7 @@ var timestampCmd = &cobra.Command{
202203
return nil
203204
},
204205
Run: format.WrapCmd(func(args []string) (interface{}, error) {
205-
rekorClient, err := GetRekorClient(viper.GetString("rekor_server"))
206+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
206207
if err != nil {
207208
return nil, err
208209
}

cmd/rekor-cli/app/upload.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ import (
2929

3030
"github.com/pkg/errors"
3131
"github.com/sigstore/rekor/cmd/rekor-cli/app/format"
32-
"github.com/sigstore/rekor/pkg/generated/client"
32+
"github.com/sigstore/rekor/pkg/client"
33+
genclient "github.com/sigstore/rekor/pkg/generated/client"
3334
"github.com/sigstore/rekor/pkg/generated/client/entries"
3435
"github.com/sigstore/rekor/pkg/generated/models"
3536
"github.com/sigstore/rekor/pkg/log"
@@ -67,7 +68,7 @@ var uploadCmd = &cobra.Command{
6768
Long: `This command takes the public key, signature and URL of the release artifact and uploads it to the rekor server.`,
6869
Run: format.WrapCmd(func(args []string) (interface{}, error) {
6970
ctx := context.Background()
70-
rekorClient, err := GetRekorClient(viper.GetString("rekor_server"))
71+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
7172
if err != nil {
7273
return nil, err
7374
}
@@ -143,7 +144,7 @@ var uploadCmd = &cobra.Command{
143144
}),
144145
}
145146

146-
func verifyLogEntry(ctx context.Context, rekorClient *client.Rekor, logEntry models.LogEntryAnon) (bool, error) {
147+
func verifyLogEntry(ctx context.Context, rekorClient *genclient.Rekor, logEntry models.LogEntryAnon) (bool, error) {
147148
if logEntry.Verification == nil {
148149
return false, nil
149150
}

cmd/rekor-cli/app/verify.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/spf13/viper"
2929

3030
"github.com/sigstore/rekor/cmd/rekor-cli/app/format"
31+
"github.com/sigstore/rekor/pkg/client"
3132
"github.com/sigstore/rekor/pkg/generated/client/entries"
3233
"github.com/sigstore/rekor/pkg/generated/models"
3334
"github.com/sigstore/rekor/pkg/log"
@@ -84,7 +85,7 @@ var verifyCmd = &cobra.Command{
8485
return nil
8586
},
8687
Run: format.WrapCmd(func(args []string) (interface{}, error) {
87-
rekorClient, err := GetRekorClient(viper.GetString("rekor_server"))
88+
rekorClient, err := client.GetRekorClient(viper.GetString("rekor_server"))
8889
if err != nil {
8990
return nil, err
9091
}

cmd/rekor-server/app/watch.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ import (
3434
"github.com/spf13/viper"
3535
"gocloud.dev/blob"
3636

37-
"github.com/sigstore/rekor/cmd/rekor-cli/app"
38-
"github.com/sigstore/rekor/pkg/generated/client"
37+
"github.com/sigstore/rekor/pkg/client"
38+
genclient "github.com/sigstore/rekor/pkg/generated/client"
3939
"github.com/sigstore/rekor/pkg/log"
4040
"github.com/sigstore/rekor/pkg/util"
4141
)
@@ -66,7 +66,7 @@ var watchCmd = &cobra.Command{
6666
port := viper.GetUint("rekor_server.port")
6767
interval := viper.GetDuration("interval")
6868
url := fmt.Sprintf("http://%s:%d", host, port)
69-
c, err := app.GetRekorClient(url)
69+
c, err := client.GetRekorClient(url)
7070
if err != nil {
7171
return err
7272
}
@@ -129,7 +129,7 @@ func init() {
129129
rootCmd.AddCommand(watchCmd)
130130
}
131131

132-
func doCheck(c *client.Rekor, pub crypto.PublicKey) (*SignedAndUnsignedLogRoot, error) {
132+
func doCheck(c *genclient.Rekor, pub crypto.PublicKey) (*SignedAndUnsignedLogRoot, error) {
133133
li, err := c.Tlog.GetLogInfo(nil)
134134
if err != nil {
135135
return nil, errors.Wrap(err, "getting log info")

pkg/client/rekor_client.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// Copyright 2021 The Sigstore Authors.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
package client
16+
17+
import (
18+
"net/url"
19+
20+
"github.com/go-openapi/runtime"
21+
httptransport "github.com/go-openapi/runtime/client"
22+
"github.com/go-openapi/strfmt"
23+
"github.com/sigstore/rekor/pkg/generated/client"
24+
"github.com/sigstore/rekor/pkg/util"
25+
"github.com/spf13/viper"
26+
)
27+
28+
func GetRekorClient(rekorServerURL string) (*client.Rekor, error) {
29+
url, err := url.Parse(rekorServerURL)
30+
if err != nil {
31+
return nil, err
32+
}
33+
34+
rt := httptransport.New(url.Host, client.DefaultBasePath, []string{url.Scheme})
35+
rt.Consumers["application/yaml"] = YamlConsumer()
36+
rt.Consumers["application/x-pem-file"] = runtime.TextConsumer()
37+
rt.Consumers["application/pem-certificate-chain"] = runtime.TextConsumer()
38+
rt.Producers["application/yaml"] = YamlProducer()
39+
rt.Producers["application/timestamp-query"] = runtime.ByteStreamProducer()
40+
rt.Consumers["application/timestamp-reply"] = runtime.ByteStreamConsumer()
41+
42+
if viper.GetString("api-key") != "" {
43+
rt.DefaultAuthentication = httptransport.APIKeyAuth("apiKey", "query", viper.GetString("api-key"))
44+
}
45+
46+
registry := strfmt.Default
47+
registry.Add("signedCheckpoint", &util.SignedCheckpoint{}, util.SignedCheckpointValidator)
48+
return client.New(rt, registry), nil
49+
}

0 commit comments

Comments
 (0)