Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rekor for openSUSE:Factory checked 
in at 2022-10-04 20:38:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rekor (Old)
 and      /work/SRC/openSUSE:Factory/.rekor.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rekor"

Tue Oct  4 20:38:15 2022 rev:11 rq:1007909 version:0.12.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/rekor/rekor.changes      2022-09-27 
20:14:44.285933151 +0200
+++ /work/SRC/openSUSE:Factory/.rekor.new.2275/rekor.changes    2022-10-04 
20:38:19.144966897 +0200
@@ -1,0 +2,10 @@
+Fri Sep 30 13:59:10 UTC 2022 - Marcus Meissner <meiss...@suse.com>
+
+- updated to rekor 0.12.2 (jsc#SLE-23476):
+  - add description on /api/v1/index/retrieve endpoint
+  - Adding e2e test coverage
+  - export rekor build/version information
+  - Use POST instead of GET for /api/log/entries/retrieve metrics.
+  - Search through all shards when searching by hash
+
+-------------------------------------------------------------------

Old:
----
  rekor-0.12.1.tar.gz

New:
----
  rekor-0.12.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rekor.spec ++++++
--- /var/tmp/diff_new_pack.GY2ztQ/_old  2022-10-04 20:38:20.108968267 +0200
+++ /var/tmp/diff_new_pack.GY2ztQ/_new  2022-10-04 20:38:20.112968273 +0200
@@ -19,9 +19,9 @@
 %define apps cli server
 
 Name:           rekor
-Version:        0.12.1
+Version:        0.12.2
 Release:        0
-%define revision 584bc16fc8eba7c7663f540dea12730a71f830c1
+%define revision a85980732bda434ba14ed24c65e4f78c6a9d3dfe
 Summary:        Supply Chain Transparency Log
 License:        Apache-2.0
 URL:            https://github.com/sigstore/rekor

++++++ rekor-0.12.1.tar.gz -> rekor-0.12.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/.github/workflows/build.yml 
new/rekor-0.12.2/.github/workflows/build.yml
--- old/rekor-0.12.1/.github/workflows/build.yml        2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/.github/workflows/build.yml        2022-09-29 
17:43:35.000000000 +0200
@@ -35,7 +35,7 @@
 
     steps:
       - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # 
v3.0.2
-      - uses: 
sigstore/cosign-installer@f3c664df7af409cb4873aa5068053ba9d61a57b6 # v2.6.0
+      - uses: 
sigstore/cosign-installer@ced07f21fb1da67979f539bbc6304c16c0677e76 # v2.7.0
 
       - name: Extract version of Go to use
         run: echo "GOVERSION=$(cat Dockerfile|grep golang | awk ' { print $2 } 
' | cut -d '@' -f 1 | cut -d ':' -f 2 | uniq)" >> $GITHUB_ENV
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/.github/workflows/codeql-analysis.yml 
new/rekor-0.12.2/.github/workflows/codeql-analysis.yml
--- old/rekor-0.12.1/.github/workflows/codeql-analysis.yml      2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/.github/workflows/codeql-analysis.yml      2022-09-29 
17:43:35.000000000 +0200
@@ -43,12 +43,12 @@
 
     # Initializes the CodeQL tools for scanning.
     - name: Initialize CodeQL
-      uses: github/codeql-action/init@904260d7d935dff982205cbdb42025ce30b7a34f 
# v2.1.24
+      uses: github/codeql-action/init@86f3159a697a097a813ad9bfa0002412d97690a4 
# v2.1.25
       with:
         languages: ${{ matrix.language }}
 
     - name: Autobuild
-      uses: 
github/codeql-action/autobuild@904260d7d935dff982205cbdb42025ce30b7a34f # 
v2.1.24
+      uses: 
github/codeql-action/autobuild@86f3159a697a097a813ad9bfa0002412d97690a4 # 
v2.1.25
 
     - name: Perform CodeQL Analysis
-      uses: 
github/codeql-action/analyze@904260d7d935dff982205cbdb42025ce30b7a34f # v2.1.24
+      uses: 
github/codeql-action/analyze@86f3159a697a097a813ad9bfa0002412d97690a4 # v2.1.25
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/.github/workflows/depsreview.yml 
new/rekor-0.12.2/.github/workflows/depsreview.yml
--- old/rekor-0.12.1/.github/workflows/depsreview.yml   2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/.github/workflows/depsreview.yml   2022-09-29 
17:43:35.000000000 +0200
@@ -25,4 +25,4 @@
       - name: 'Checkout Repository'
         uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3
       - name: 'Dependency Review'
-        uses: 
actions/dependency-review-action@2b96ea7f03d82de498e97b42e6bee3f7cb0dafaa # v2
+        uses: 
actions/dependency-review-action@375c5370086bfff256c37f8beec0f437e2e72ae1 # 
v2.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/.github/workflows/main.yml 
new/rekor-0.12.2/.github/workflows/main.yml
--- old/rekor-0.12.1/.github/workflows/main.yml 2022-09-21 13:38:41.000000000 
+0200
+++ new/rekor-0.12.2/.github/workflows/main.yml 2022-09-29 17:43:35.000000000 
+0200
@@ -44,6 +44,8 @@
         run: go test -v -coverprofile=coverage.txt -covermode=atomic ./...
       - name: Upload Coverage Report
         uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 
# v3.1.0
+        with:
+          flags: unittests
       - name: Ensure no files were modified as a result of the build
         run: git update-index --refresh && git diff-index --quiet HEAD -- || 
git diff --exit-code
 
@@ -72,13 +74,13 @@
       - name: download minisign
         run: sudo add-apt-repository ppa:dysfunctionalprogramming/minisign && 
sudo apt-get update && sudo apt-get install minisign
       - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # 
v3.0.2
-      - name: Docker Build
-        run: docker-compose build
       - name: Extract version of Go to use
         run: echo "GOVERSION=$(cat Dockerfile|grep golang | awk ' { print $2 } 
' | cut -d '@' -f 1 | cut -d ':' -f 2 | uniq)" >> $GITHUB_ENV
       - uses: actions/setup-go@268d8c0ca0432bb2cf416faae41297df9d262d7f # 
v3.1.0
         with:
           go-version: ${{ env.GOVERSION }}
+      - name: install gocovmerge
+        run: go install 
github.com/wadey/gocovmerge@b5bfa59ec0adc420475f97f89b58045c721d761c
 
       - name: CLI
         run: ./tests/e2e-test.sh
@@ -88,6 +90,11 @@
         with:
           name: E2E Docker Compose logs
           path: /tmp/docker-compose.log
+      - name: Upload Coverage Report
+        uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 
# v3.1.0
+        with:
+          files: /tmp/rekor-merged.cov
+          flags: e2etests
 
   sharding-e2e:
     runs-on: ubuntu-20.04
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/.github/workflows/milestone.yml 
new/rekor-0.12.2/.github/workflows/milestone.yml
--- old/rekor-0.12.1/.github/workflows/milestone.yml    2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/.github/workflows/milestone.yml    2022-09-29 
17:43:35.000000000 +0200
@@ -23,7 +23,7 @@
       statuses: none
 
     steps:
-      - uses: actions/github-script@c713e510dbd7d213d92d41b7a7805a986f4c5c66 # 
v6
+      - uses: actions/github-script@d4560e157075e2d93aa3022b5b51a42a880f1f93 # 
v6
         with:
           script: |
             if (!context.payload.pull_request.merged) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/.github/workflows/scorecard_action.yml 
new/rekor-0.12.2/.github/workflows/scorecard_action.yml
--- old/rekor-0.12.1/.github/workflows/scorecard_action.yml     2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/.github/workflows/scorecard_action.yml     2022-09-29 
17:43:35.000000000 +0200
@@ -28,7 +28,7 @@
           persist-credentials: false
 
       - name: "Run analysis"
-        uses: ossf/scorecard-action@865b4092859256271290c77adbd10a43f4779972 # 
v2.0.3
+        uses: ossf/scorecard-action@e363bfca00e752f91de7b7d2a77340e2e523cb18 # 
v2.0.4
         with:
           results_file: results.sarif
           results_format: sarif
@@ -52,6 +52,6 @@
 
       # Upload the results to GitHub's code scanning dashboard.
       - name: "Upload to code-scanning"
-        uses: 
github/codeql-action/upload-sarif@904260d7d935dff982205cbdb42025ce30b7a34f # 
v2.1.24
+        uses: 
github/codeql-action/upload-sarif@86f3159a697a097a813ad9bfa0002412d97690a4 # 
v2.1.25
         with:
           sarif_file: results.sarif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/.gitignore new/rekor-0.12.2/.gitignore
--- old/rekor-0.12.1/.gitignore 2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/.gitignore 2022-09-29 17:43:35.000000000 +0200
@@ -17,3 +17,6 @@
 rekorCliImagerefs
 trillianServerImagerefs
 trillianSignerImagerefs
+cosign.*
+signature
+rekor.pub
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/CHANGELOG.md 
new/rekor-0.12.2/CHANGELOG.md
--- old/rekor-0.12.1/CHANGELOG.md       2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/CHANGELOG.md       2022-09-29 17:43:35.000000000 +0200
@@ -1,3 +1,79 @@
+# v0.12.2
+
+## Enhancements
+* add changelog for 0.12.0 and 0.12.1 (#1064)
+* add description on /api/v1/index/retrieve endpoint (#1073)
+* Adding e2e test coverage (#1071)
+* export rekor build/version information (#1074)
+
+## Bug Fixes
+* Search through all shards when searching by hash (#1082)
+* Use POST instead of GET for /api/log/entries/retrieve metrics (#1083)
+  
+## Contributors
+* Bob Callaway
+* Carlos Tadeu Panato Junior
+* Ceridwen Driskill
+* Simon Kent
+* Priya Wadhwa
+
+# v0.12.1
+
+> ** Rekor `v0.12.1` comes with a breaking change to `rekor-cli v0.12.1`. 
Users of rekor-cli MUST upgrade to the latest version **
+> The addition of the intotov2 created a breaking change for the `rekor-cli`
+
+## Enhancements
+
+* Adds new rekor metrics for latency and QPS. 
(https://github.com/sigstore/rekor/pull/1059)
+* feat: add file based signer and password 
(https://github.com/sigstore/rekor/pull/1049)
+
+## Bug Fixes
+
+* fix: fix harness tests with intoto v0.0.2 
(https://github.com/sigstore/rekor/pull/1052)
+
+## Contributors
+
+* Asra Ali (@asraa)
+* Simon Kent (@var-sdk)
+
+# v0.12.0
+
+## Enhancements
+
+* remove /api/v1/version endpoint (https://github.com/sigstore/rekor/pull/1022)
+* Include checkpoint (STH) in entry upload and retrieve responses 
(https://github.com/sigstore/rekor/pull/1015)
+* Validate tree ID on calls to /api/v1/log/entries/retrieve 
(https://github.com/sigstore/rekor/pull/1017)
+* feat: add verification functions (https://github.com/sigstore/rekor/pull/986)
+* Change Checkpoint origin to be "Hostname - Tree ID" 
(https://github.com/sigstore/rekor/pull/1013)
+* Add bounds on number of elements in api/v1/log/entries/retrieve 
(https://github.com/sigstore/rekor/pull/1011)
+* Intoto v0.0.2 (https://github.com/sigstore/rekor/pull/973)
+* api.SearchLogQueryHandler thread safety 
(https://github.com/sigstore/rekor/pull/1006)
+* enable blocking specific pluggable type versions from being inserted into 
the log (https://github.com/sigstore/rekor/pull/1004)
+* check supportedVersions list rather than directly reading from version map 
(https://github.com/sigstore/rekor/pull/1003)
+
+## Bug Fixes
+
+* fix retrieve endpoint response code and add testing 
(https://github.com/sigstore/rekor/pull/1043)
+* Fix harness tests @ main (https://github.com/sigstore/rekor/pull/1038)
+* Fix rekor-cli backwards incompatibility & run harness tests against HEAD  
(https://github.com/sigstore/rekor/pull/1030)
+* fix: use entry uuid uniformly (https://github.com/sigstore/rekor/pull/1012)
+
+## Others
+
+* Fetch all tags in harness tests (https://github.com/sigstore/rekor/pull/1039)
+
+## Contributors
+
+* Asra Ali (@asraa)
+* Bob Callaway (@bobcallaway)
+* Carlos Tadeu Panato Junior (@cpanato)
+* Ceridwen Driskill (@cdris)
+* Hayden Blauzvern (@haydentherapper)
+* Kenny Leung (@k4leung4)
+* Mikhail Swift (@mikhailswift)
+* Parth Patel (@pxp928)
+* Priya Wadhwa (@priyawadhwa)
+
 # v0.11.0
 
 ## Enhancements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/Dockerfile new/rekor-0.12.2/Dockerfile
--- old/rekor-0.12.1/Dockerfile 2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/Dockerfile 2022-09-29 17:43:35.000000000 +0200
@@ -28,6 +28,7 @@
 ARG SERVER_LDFLAGS
 RUN go build -ldflags "${SERVER_LDFLAGS}" ./cmd/rekor-server
 RUN CGO_ENABLED=0 go build -gcflags "all=-N -l" -ldflags "${SERVER_LDFLAGS}" 
-o rekor-server_debug ./cmd/rekor-server
+RUN go test -c -ldflags "${SERVER_LDFLAGS}" -cover -covermode=count 
-coverpkg=./... -o rekor-server_test ./cmd/rekor-server
 
 # Multi-Stage production build
 FROM 
golang:1.19.1@sha256:2d17ffd12a2cdb25d4a633ad25f8dc29608ed84f31b3b983427d825280427095
 as deploy
@@ -44,3 +45,7 @@
 
 # overwrite server and include debugger
 COPY --from=builder /opt/app-root/src/rekor-server_debug 
/usr/local/bin/rekor-server
+
+FROM deploy as test
+# overwrite server with test build with code coverage
+COPY --from=builder /opt/app-root/src/rekor-server_test 
/usr/local/bin/rekor-server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/cmd/rekor-cli/main_test.go 
new/rekor-0.12.2/cmd/rekor-cli/main_test.go
--- old/rekor-0.12.1/cmd/rekor-cli/main_test.go 1970-01-01 01:00:00.000000000 
+0100
+++ new/rekor-0.12.2/cmd/rekor-cli/main_test.go 2022-09-29 17:43:35.000000000 
+0200
@@ -0,0 +1,26 @@
+//
+// Copyright 2022 The Sigstore Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+       "testing"
+
+       "github.com/sigstore/rekor/cmd/rekor-cli/app"
+)
+
+func TestCover(t *testing.T) {
+       app.Execute()
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/cmd/rekor-server/app/root.go 
new/rekor-0.12.2/cmd/rekor-server/app/root.go
--- old/rekor-0.12.1/cmd/rekor-server/app/root.go       2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/cmd/rekor-server/app/root.go       2022-09-29 
17:43:35.000000000 +0200
@@ -61,6 +61,8 @@
        rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config 
file (default is $HOME/.rekor-server.yaml)")
        rootCmd.PersistentFlags().StringVar(&logType, "log_type", "dev", 
"logger type to use (dev/prod)")
        rootCmd.PersistentFlags().BoolVar(&enablePprof, "enable_pprof", false, 
"enable pprof for profiling on port 6060")
+       rootCmd.PersistentFlags().Bool("enable_killswitch", false, "enable 
killswitch for TESTING ONLY on port 2345")
+       _ = rootCmd.PersistentFlags().MarkHidden("enable_killswitch")
 
        rootCmd.PersistentFlags().String("trillian_log_server.address", 
"127.0.0.1", "Trillian log server address")
        rootCmd.PersistentFlags().Uint16("trillian_log_server.port", 8090, 
"Trillian log server port")
@@ -76,7 +78,7 @@
 
        rootCmd.PersistentFlags().String("rekor_server.signer", "memory",
                `Rekor signer to use. Valid options are: [gcpkms, memory, 
filename containing PEM encoded private key].
-               Memory and file-based signers should only be used for testing.`)
+Memory and file-based signers should only be used for testing.`)
        rootCmd.PersistentFlags().String("rekor_server.signer-passwd", "", 
"Password to decrypt signer private key")
 
        rootCmd.PersistentFlags().Uint16("port", 3000, "Port to bind to")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/cmd/rekor-server/app/serve.go 
new/rekor-0.12.2/cmd/rekor-server/app/serve.go
--- old/rekor-0.12.1/cmd/rekor-server/app/serve.go      2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/cmd/rekor-server/app/serve.go      2022-09-29 
17:43:35.000000000 +0200
@@ -123,6 +123,27 @@
                        _ = srv.ListenAndServe()
                }()
 
+               if viper.GetBool("enable_killswitch") {
+                       go func() {
+                               mux := http.NewServeMux()
+                               mux.Handle("/kill", http.HandlerFunc(func(w 
http.ResponseWriter, r *http.Request) {
+                                       if err := server.Shutdown(); err != nil 
{
+                                               log.Logger.Error(err)
+                                       }
+                                       w.WriteHeader(http.StatusOK)
+                               }))
+
+                               srv := &http.Server{
+                                       Addr:         ":2345",
+                                       ReadTimeout:  10 * time.Second,
+                                       WriteTimeout: 10 * time.Second,
+                                       Handler:      mux,
+                               }
+
+                               _ = srv.ListenAndServe()
+                       }()
+               }
+
                if err := server.Serve(); err != nil {
                        log.Logger.Fatal(err)
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/cmd/rekor-server/main_test.go 
new/rekor-0.12.2/cmd/rekor-server/main_test.go
--- old/rekor-0.12.1/cmd/rekor-server/main_test.go      1970-01-01 
01:00:00.000000000 +0100
+++ new/rekor-0.12.2/cmd/rekor-server/main_test.go      2022-09-29 
17:43:35.000000000 +0200
@@ -0,0 +1,26 @@
+//
+// Copyright 2022 The Sigstore Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+       "testing"
+
+       "github.com/sigstore/rekor/cmd/rekor-server/app"
+)
+
+func TestCover(t *testing.T) {
+       app.Execute()
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/docker-compose.test.yml 
new/rekor-0.12.2/docker-compose.test.yml
--- old/rekor-0.12.1/docker-compose.test.yml    1970-01-01 01:00:00.000000000 
+0100
+++ new/rekor-0.12.2/docker-compose.test.yml    2022-09-29 17:43:35.000000000 
+0200
@@ -0,0 +1,39 @@
+#
+# Copyright 2022 The Sigstore Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+version: '3.4'
+services:
+  rekor-server:
+    build:
+      context: .
+      target: "test"
+    command: [
+      "rekor-server",
+      "-test.coverprofile=rekor-server.cov",
+      "serve",
+      "--trillian_log_server.address=trillian-log-server",
+      "--trillian_log_server.port=8090",
+      "--redis_server.address=redis-server",
+      "--redis_server.port=6379",
+      "--rekor_server.address=0.0.0.0",
+      "--rekor_server.signer=memory",
+      "--enable_attestation_storage",
+      "--attestation_storage_bucket=file:///var/run/attestations",
+      "--enable_killswitch",
+      ]
+    ports:
+      - "3000:3000"
+      - "2112:2112"
+      - "2345:2345"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/go.mod new/rekor-0.12.2/go.mod
--- old/rekor-0.12.1/go.mod     2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/go.mod     2022-09-29 17:43:35.000000000 +0200
@@ -30,12 +30,12 @@
        github.com/rs/cors v1.8.2
        github.com/sassoftware/relic v0.0.0-20210427151427-dfb082b79b74
        github.com/secure-systems-lab/go-securesystemslib v0.4.0
-       github.com/sigstore/sigstore v1.4.1
+       github.com/sigstore/sigstore v1.4.2
        github.com/spf13/cobra v1.5.0
        github.com/spf13/pflag v1.0.5
        github.com/spf13/viper v1.13.0
        github.com/tent/canonical-json-go v0.0.0-20130607151641-96e4ba3a7613
-       github.com/theupdateframework/go-tuf v0.5.0
+       github.com/theupdateframework/go-tuf 
v0.5.1-0.20220920170306-f237d7ca5b42
        github.com/transparency-dev/merkle v0.0.1
        github.com/urfave/negroni v1.0.0
        github.com/veraison/go-cose v1.0.0-rc.1
@@ -43,9 +43,9 @@
        go.uber.org/goleak v1.2.0
        go.uber.org/zap v1.23.0
        gocloud.dev v0.24.1-0.20211119014450-028788aaaa4c
-       golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90
+       golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0
        golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
-       golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b
+       golang.org/x/net v0.0.0-20220909164309-bea034e7d591
        golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4
        google.golang.org/genproto v0.0.0-20220720214146-176da50484ac
        google.golang.org/grpc v1.49.0
@@ -122,11 +122,11 @@
        go.uber.org/atomic v1.9.0 // indirect
        go.uber.org/multierr v1.8.0 // indirect
        golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094 // indirect
-       golang.org/x/sys v0.0.0-20220907062415-87db552b00fd // indirect
+       golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect
        golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect
        golang.org/x/text v0.3.8-0.20211004125949-5bd84dd9b33b // indirect
        golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect
-       google.golang.org/api v0.95.0 // indirect
+       google.golang.org/api v0.96.0 // indirect
        google.golang.org/appengine v1.6.7 // indirect
        gopkg.in/square/go-jose.v2 v2.6.0 // indirect
        gopkg.in/yaml.v2 v2.4.0 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/go.sum new/rekor-0.12.2/go.sum
--- old/rekor-0.12.1/go.sum     2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/go.sum     2022-09-29 17:43:35.000000000 +0200
@@ -142,33 +142,33 @@
 github.com/aws/aws-sdk-go v1.15.27/go.mod 
h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=
 github.com/aws/aws-sdk-go v1.37.0/go.mod 
h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
 github.com/aws/aws-sdk-go v1.42.8/go.mod 
h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
-github.com/aws/aws-sdk-go v1.44.96 
h1:S9paaqnJ0AJ95t5AB+iK8RM6YNZN0W0Lek1gOVJsEr8=
+github.com/aws/aws-sdk-go v1.44.102 
h1:6tUCTGL2UDbFZae1TLGk8vTgeXuzkb8KbAe2FiAeKHc=
 github.com/aws/aws-sdk-go-v2 v1.11.0/go.mod 
h1:SQfA+m2ltnu1cA0soUkj4dRSsmITiVQUJvBIZjzfPyQ=
-github.com/aws/aws-sdk-go-v2 v1.16.14 
h1:db6GvO4Z2UqHt5gvT0lr6J5x5P+oQ7bdRzczVaRekMU=
+github.com/aws/aws-sdk-go-v2 v1.16.16 
h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk=
 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 
h1:yVUAwvJC/0WNPbyl0nA3j1L6CW1CN8wBubCRqtG7JLI=
 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0/go.mod 
h1:Xn6sxgRuIDflLRJFj5Ev7UxABIkNbccFPV/p8itDReM=
 github.com/aws/aws-sdk-go-v2/config v1.10.1/go.mod 
h1:auIv5pIIn3jIBHNRcVQcsczn6Pfa6Dyv80Fai0ueoJU=
-github.com/aws/aws-sdk-go-v2/config v1.17.5 
h1:+NS1BWvprx7nHcIk5o32LrZgifs/7Pm1V2nWjQgZ2H0=
+github.com/aws/aws-sdk-go-v2/config v1.17.7 
h1:odVM52tFHhpqZBKNjVW5h+Zt1tKHbhdTQRb+0WHrNtw=
 github.com/aws/aws-sdk-go-v2/credentials v1.6.1/go.mod 
h1:QyvQk1IYTqBWSi1T6UgT/W8DMxBVa5pVuLFSRLLhGf8=
-github.com/aws/aws-sdk-go-v2/credentials v1.12.18 
h1:HF62tbhARhgLfvmfwUbL9qZ+dkbZYzbFdxBb3l5gr7Q=
+github.com/aws/aws-sdk-go-v2/credentials v1.12.20 
h1:9+ZhlDY7N9dPnUmf7CDfW9In4sW5Ff3bh7oy4DzS1IE=
 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.0/go.mod 
h1:5E1J3/TTYy6z909QNR0QnXGBpfESYGDqd3O0zqONghU=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.15 
h1:nkQ+aI0OCeYfzrBipL6ja/6VEbUnHQoZHBHtoK+Nzxw=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17 
h1:r08j4sbZu/RVi+BNxkBJwPMUYY3P8mgSDuKkZ/ZN1lE=
 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.1 
h1:p9Dys1g2YdaqMalnp6AwCA+tpMMdJNGw5YYKP/u3sUk=
 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.1/go.mod 
h1:wN/mvkow08GauDwJ70jnzJ1e+hE+Q3Q7TwpYLXOe9oI=
 github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.0/go.mod 
h1:NO3Q5ZTTQtO2xIg2+xTXYDiT7knSejfeDm7WGDaOo0U=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.21 
h1:gRIXnmAVNyoRQywdNtpAkgY+f30QNzgF53Q5OobNZZs=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 
h1:s4g/wnzMf+qepSNgTvaQQHNxyMLKSawNhKCPNy++2xY=
 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.0/go.mod 
h1:anlUzBoEWglcUxUQwZA7HQOEVEnQALVZsizAapB2hq8=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.15 
h1:noAhOo2mMDyYhTx99aYPvQw16T3fQ/DiKAv9fzpIKH8=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 
h1:/K482T5A3623WJgWT8w1yRAFK4RzGzEl7y39yhtn9eA=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.3.0/go.mod 
h1:6oXGy4GLpypD3uCh8wcqztigGgmhLToMfjavgh+VySg=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.3.22 
h1:nF+E8HfYpOMw6M5oA9efB602VC00IHNQnB5CmFvZPvA=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24 
h1:wj5Rwc05hvUSvKuOF29IYb9QrCLjU+rHAy/x/o0DK2c=
 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 
h1:lPLbw4Gn59uoKqvOfSnkJr54XWk5Ak1NK20ZEiSWb3U=
 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0/go.mod 
h1:80NaCIH9YU3rzTTs/J/ECATjXuRqzo/wB6ukO6MZ0XY=
 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.0/go.mod 
h1:Mq6AEc+oEjCUlBuLiK5YwW4shSOAKCQ3tXN0sQeYoBA=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.15 
h1:xlf0J6DUgAj/ocvKQxCmad8Bu1lJuRbt5Wu+4G1xw1g=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 
h1:Jrd/oMh0PKQc6+BowB+pLEwLIgaQF29eYbe7E1Av9Ug=
 github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0 
h1:0BOlTqnNnrEO04oYKzDxMMe68t107pmIotn18HtVonY=
 github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0/go.mod 
h1:xKCZ4YFSF2s4Hnb/J0TLeOsKuGzICzcElaOKNGrVnx4=
 github.com/aws/aws-sdk-go-v2/service/kms v1.10.0/go.mod 
h1:ZkHWL8m5Nw1g9yMXqpCjnIJtSDToAmNbXXZ9gj0bO7s=
-github.com/aws/aws-sdk-go-v2/service/kms v1.18.9 
h1:BPMcM9DZdpQKWQ8WSXla36mpm+5YgVqP7pLF+W7TEe0=
+github.com/aws/aws-sdk-go-v2/service/kms v1.18.10 
h1:rl0vxqQ/DFZZMLk9+FLgIuiE/GwMPoI5BeoCkkM2DA4=
 github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0 
h1:5mRAms4TjSTOGYsqKYte5kHr1PzpMJSyLThjF3J+hw0=
 github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0/go.mod 
h1:Gwz3aVctJe6mUY9T//bcALArPUaFmNAy2rTB9qN4No8=
 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.10.0/go.mod 
h1:qAgsrzF3Z2vvV01j79fs7D75ofCMQe81/OKBJx0rjFY=
@@ -176,12 +176,12 @@
 github.com/aws/aws-sdk-go-v2/service/sqs v1.12.0/go.mod 
h1:TDqDmQnsbgL2ZMIGUf3z9xTzCMqFX7FP1geAgIlYqvA=
 github.com/aws/aws-sdk-go-v2/service/ssm v1.15.0/go.mod 
h1:kJa2uHklY03rKsNSbEsToeUgWJ1PambXBtRNacorRhg=
 github.com/aws/aws-sdk-go-v2/service/sso v1.6.0/go.mod 
h1:Q/l0ON1annSU+mc0JybDy1Gy6dnJxIcWjphO6qJPzvM=
-github.com/aws/aws-sdk-go-v2/service/sso v1.11.21 
h1:7jUFr+7F4MzIjCZzy7ygRtXFQcQ0kAbT0gUvtUeAdyU=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.3 
h1:UTTPNP3/WzZa7hoHP3Szb/Yl0bM3NoBrf5ABy1OArUM=
+github.com/aws/aws-sdk-go-v2/service/sso v1.11.23 
h1:pwvCchFUEnlceKIgPUouBJwK81aCkQ8UDMORfeFtW10=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5 
h1:GUnZ62TevLqIoDyHeiWj2P7EqaosgakBKVvWriIdLQY=
 github.com/aws/aws-sdk-go-v2/service/sts v1.10.0/go.mod 
h1:jLKCFqS+1T4i7HDqCP9GM4Uk75YW1cS0o82LdxpMyOE=
-github.com/aws/aws-sdk-go-v2/service/sts v1.16.17 
h1:LVM2jzEQ8mhb2dhrFl4PJ3sa5+KcKT01dsMk2Ma9/FU=
+github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 
h1:9pPi0PsFNAGILFfPCk8Y0iyEBGc6lu6OQ97U7hmdesg=
 github.com/aws/smithy-go v1.9.0/go.mod 
h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
-github.com/aws/smithy-go v1.13.2 
h1:TBLKyeJfXTrTXRHmsv4qWt9IQGYyWThLYaJWSahTOGE=
+github.com/aws/smithy-go v1.13.3 
h1:l7LYxGuzK6/K+NzJ2mC+VvLUbae0sL3bXU//04MkmnA=
 github.com/beevik/etree v1.1.0/go.mod 
h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A=
 github.com/benbjohnson/clock v1.1.0 
h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
 github.com/benbjohnson/clock v1.1.0/go.mod 
h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@@ -526,8 +526,8 @@
 github.com/hashicorp/golang-lru v0.5.4 
h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod 
h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/vault/api v1.7.2 
h1:kawHE7s/4xwrdKbkmwQi0wYaIeUhk5ueek7ljuezCVQ=
-github.com/hashicorp/vault/sdk v0.5.3 
h1:PWY8sq/9pRrK9vUIy75qCH2Jd8oeENAgkaa/qbhzFrs=
+github.com/hashicorp/vault/api v1.8.0 
h1:7765sW1XBt+qf4XKIYE4ebY9qc/yi9V2/egzGSUNMZU=
+github.com/hashicorp/vault/sdk v0.6.0 
h1:6Z+In5DXHiUfZvIZdMx7e2loL1PPyDjA4bVh9ZTIAhs=
 github.com/hashicorp/yamux v0.1.0 
h1:DzDIF6Sd7GD2sX0kDFpHAsJMY4L+OfTvtuaQsOYXxzk=
 github.com/honeycombio/beeline-go v1.1.1 
h1:sU8r4ae34uEL3/CguSl8Mr+Asz9DL1nfH9Wwk85Pc7U=
 github.com/honeycombio/libhoney-go v1.15.2 
h1:5NGcjOxZZma13dmzNcl3OtGbF1hECA0XHJNHEb2t2ck=
@@ -710,8 +710,8 @@
 github.com/shibumi/go-pathspec v1.3.0 
h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh5dkI=
 github.com/shibumi/go-pathspec v1.3.0/go.mod 
h1:Xutfslp817l2I1cZvgcfeMQJG5QnU2lh5tVaaMCl3jE=
 github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod 
h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
-github.com/sigstore/sigstore v1.4.1 
h1:e/tfXseQRymIjgiykskciGrp75AZVCfYokZ2r9tg5vw=
-github.com/sigstore/sigstore v1.4.1/go.mod 
h1:4+s4d6oTDdoQkf5lwpZBoOlWWV+hXhur1my9WdN5PjU=
+github.com/sigstore/sigstore v1.4.2 
h1:fTppzuZBAmQ/skgl7FWJRLyby70pxCqJGKyWfkSuMR8=
+github.com/sigstore/sigstore v1.4.2/go.mod 
h1:wCv58Fia7u1snVJyPcxdgIh/3uw1XdOLhxPExTwwyt4=
 github.com/sirupsen/logrus v1.2.0/go.mod 
h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.0/go.mod 
h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.1/go.mod 
h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
@@ -761,8 +761,8 @@
 github.com/subosito/gotenv v1.4.1/go.mod 
h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
 github.com/tent/canonical-json-go v0.0.0-20130607151641-96e4ba3a7613 
h1:iGnD/q9160NWqKZZ5vY4p0dMiYMRknzctfSkqA4nBDw=
 github.com/tent/canonical-json-go v0.0.0-20130607151641-96e4ba3a7613/go.mod 
h1:g6AnIpDSYMcphz193otpSIzN+11Rs+AAIIC6rm1enug=
-github.com/theupdateframework/go-tuf v0.5.0 
h1:aQ7i9CBw4q9QEZifCaW6G8qGQwoN23XGaZkOA+F50z4=
-github.com/theupdateframework/go-tuf v0.5.0/go.mod 
h1:vAqWV3zEs89byeFsAYoh/Q14vJTgJkHwnnRCWBBBINY=
+github.com/theupdateframework/go-tuf v0.5.1-0.20220920170306-f237d7ca5b42 
h1:6XOcL5aU3UGndqoDyG/NM2y0/Piin2x5zt/pew4tR1w=
+github.com/theupdateframework/go-tuf 
v0.5.1-0.20220920170306-f237d7ca5b42/go.mod 
h1:vAqWV3zEs89byeFsAYoh/Q14vJTgJkHwnnRCWBBBINY=
 github.com/tidwall/pretty v1.0.0/go.mod 
h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/tidwall/pretty v1.2.0 
h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
 github.com/tidwall/pretty v1.2.0/go.mod 
h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
@@ -867,8 +867,8 @@
 golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 
h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM=
-golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0 
h1:a5Yg6ylndHHYJqIPrdq0AhvR6KTvDTAvgBtaidhEevY=
+golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod 
h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -967,8 +967,8 @@
 golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b 
h1:ZmngSVLe/wycRns9MKikG9OWIEjGcGAkacif7oYQaUY=
-golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod 
h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.0.0-20220909164309-bea034e7d591 
h1:D0B/7al0LLrVC8aWF4+oxpv/m8bc7ViFfVS8/gXGdqI=
+golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod 
h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1097,8 +1097,9 @@
 golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220907062415-87db552b00fd 
h1:AZeIEzg+8RCELJYq8w+ODLVxFgLMMigSwO/ffKPEd9U=
-golang.org/x/sys v0.0.0-20220907062415-87db552b00fd/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 
h1:h+EGohizhe9XlX18rfpa8k8RAc5XyaeamM+0VHRd4lc=
+golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod 
h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -1236,8 +1237,8 @@
 google.golang.org/api v0.84.0/go.mod 
h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o=
 google.golang.org/api v0.85.0/go.mod 
h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g=
 google.golang.org/api v0.86.0/go.mod 
h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw=
-google.golang.org/api v0.95.0 h1:d1c24AAS01DYqXreBeuVV7ewY/U8Mnhh47pwtsgVtYg=
-google.golang.org/api v0.95.0/go.mod 
h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI=
+google.golang.org/api v0.96.0 h1:F60cuQPJq7K7FzsxMYHAUJSiXh2oKctHxBMbDygxhfM=
+google.golang.org/api v0.96.0/go.mod 
h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
 google.golang.org/appengine v1.1.0/go.mod 
h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/appengine v1.5.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/hack/tools/go.mod 
new/rekor-0.12.2/hack/tools/go.mod
--- old/rekor-0.12.1/hack/tools/go.mod  2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/hack/tools/go.mod  2022-09-29 17:43:35.000000000 +0200
@@ -5,7 +5,7 @@
 require (
        github.com/AdaLogics/go-fuzz-headers v0.0.0-20220708163326-82d177caec6e
        github.com/dvyukov/go-fuzz v0.0.0-20220220162807-a217d9bdbece
-       github.com/go-swagger/go-swagger v0.30.2
+       github.com/go-swagger/go-swagger v0.30.3
        github.com/google/trillian v1.5.0
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/hack/tools/go.sum 
new/rekor-0.12.2/hack/tools/go.sum
--- old/rekor-0.12.1/hack/tools/go.sum  2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/hack/tools/go.sum  2022-09-29 17:43:35.000000000 +0200
@@ -215,8 +215,8 @@
 github.com/go-sql-driver/mysql v1.6.0/go.mod 
h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 github.com/go-stack/stack v1.8.0/go.mod 
h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/go-stack/stack v1.8.1/go.mod 
h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4=
-github.com/go-swagger/go-swagger v0.30.2 
h1:23odPUyQZdkNFZZSBJ3mqYYcdh+LnuReEbdWN18OMRo=
-github.com/go-swagger/go-swagger v0.30.2/go.mod 
h1:neDPes8r8PCz2JPvHRDj8BTULLh4VJUt7n6MpQqxhHM=
+github.com/go-swagger/go-swagger v0.30.3 
h1:HuzvdMRed/9Q8vmzVcfNBQByZVtT79DNZxZ18OprdoI=
+github.com/go-swagger/go-swagger v0.30.3/go.mod 
h1:neDPes8r8PCz2JPvHRDj8BTULLh4VJUt7n6MpQqxhHM=
 github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013 
h1:l9rI6sNaZgNC0LnF3MiE+qTmyBA/tZAg1rtyrGbUMK0=
 github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod 
h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
 github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod 
h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/openapi.yaml 
new/rekor-0.12.2/openapi.yaml
--- old/rekor-0.12.1/openapi.yaml       2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/openapi.yaml       2022-09-29 17:43:35.000000000 +0200
@@ -32,6 +32,11 @@
   /api/v1/index/retrieve:
     post:
       summary: Searches index by entry metadata
+      description: >
+        EXPERIMENTAL - this endpoint is offered as best effort only and may be 
changed or removed in future releases.
+
+        The results returned from this endpoint may be incomplete.
+      deprecated: true
       operationId: searchIndex
       tags:
         - index
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/pkg/api/entries.go 
new/rekor-0.12.2/pkg/api/entries.go
--- old/rekor-0.12.1/pkg/api/entries.go 2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/pkg/api/entries.go 2022-09-29 17:43:35.000000000 +0200
@@ -350,7 +350,6 @@
 func SearchLogQueryHandler(params entries.SearchLogQueryParams) 
middleware.Responder {
        httpReqCtx := params.HTTPRequest.Context()
        resultPayload := []models.LogEntry{}
-       tc := NewTrillianClient(httpReqCtx)
 
        totalQueries := len(params.Entry.EntryUUIDs) + 
len(params.Entry.Entries()) + len(params.Entry.LogIndexes)
        if totalQueries > maxSearchQueries {
@@ -415,23 +414,34 @@
                        searchHashes = append(searchHashes, hash)
                }
 
-               searchByHashResults := 
make([]*trillian.GetEntryAndProofResponse, len(searchHashes))
+               searchByHashResults := 
make([]map[int64]*trillian.GetEntryAndProofResponse, len(searchHashes))
                g, _ = errgroup.WithContext(httpReqCtx)
                for i, hash := range searchHashes {
                        i, hash := i, hash // 
https://golang.org/doc/faq#closures_and_goroutines
                        g.Go(func() error {
-                               resp := tc.getLeafAndProofByHash(hash)
-                               switch resp.status {
-                               case codes.OK:
-                               case codes.NotFound:
-                                       code = http.StatusNotFound
-                                       return resp.err
-                               default:
+                               var results 
map[int64]*trillian.GetEntryAndProofResponse
+                               for _, shard := range api.logRanges.AllShards() 
{
+                                       tcs := 
NewTrillianClientFromTreeID(httpReqCtx, shard)
+                                       resp := tcs.getLeafAndProofByHash(hash)
+                                       if resp.status != codes.OK {
+                                               continue
+                                       }
+                                       if resp.err != nil {
+                                               continue
+                                       }
+                                       leafResult := resp.getLeafAndProofResult
+                                       if leafResult != nil && leafResult.Leaf 
!= nil {
+                                               if results == nil {
+                                                       results = 
map[int64]*trillian.GetEntryAndProofResponse{}
+                                               }
+                                               results[shard] = 
resp.getLeafAndProofResult
+                                       }
                                }
-                               leafResult := resp.getLeafAndProofResult
-                               if leafResult != nil && leafResult.Leaf != nil {
-                                       searchByHashResults[i] = leafResult
+                               if results == nil {
+                                       code = http.StatusNotFound
+                                       return fmt.Errorf("no responses found")
                                }
+                               searchByHashResults[i] = results
                                return nil
                        })
                }
@@ -440,14 +450,17 @@
                        return handleRekorAPIError(params, code, err, 
err.Error())
                }
 
-               for _, leafResp := range searchByHashResults {
-                       if leafResp != nil {
-                               logEntry, err := logEntryFromLeaf(httpReqCtx, 
api.signer, tc, leafResp.Leaf, leafResp.SignedLogRoot, leafResp.Proof, 
api.logRanges.ActiveTreeID(), api.logRanges)
+               for _, hashMap := range searchByHashResults {
+                       for shard, leafResp := range hashMap {
+                               if leafResp == nil {
+                                       continue
+                               }
+                               tcs := NewTrillianClientFromTreeID(httpReqCtx, 
shard)
+                               logEntry, err := logEntryFromLeaf(httpReqCtx, 
api.signer, tcs, leafResp.Leaf, leafResp.SignedLogRoot, leafResp.Proof, shard, 
api.logRanges)
                                if err != nil {
                                        code = http.StatusInternalServerError
                                        return handleRekorAPIError(params, 
code, err, err.Error())
                                }
-
                                resultPayload = append(resultPayload, logEntry)
                        }
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/pkg/api/metrics.go 
new/rekor-0.12.2/pkg/api/metrics.go
--- old/rekor-0.12.1/pkg/api/metrics.go 2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/pkg/api/metrics.go 2022-09-29 17:43:35.000000000 +0200
@@ -20,6 +20,7 @@
 
        "github.com/prometheus/client_golang/prometheus"
        "github.com/prometheus/client_golang/prometheus/promauto"
+       "sigs.k8s.io/release-utils/version"
 )
 
 var (
@@ -51,4 +52,19 @@
                Name: "rekor_qps_by_api",
                Help: "Api QPS by path, method, and response code",
        }, []string{"path", "method", "code"})
+
+       _ = promauto.NewGaugeFunc(
+               prometheus.GaugeOpts{
+                       Namespace: "rekor",
+                       Name:      "build_info",
+                       Help:      "A metric with a constant '1' value labeled 
by version, revision, branch, and goversion from which rekor was built.",
+                       ConstLabels: prometheus.Labels{
+                               "version":    
version.GetVersionInfo().GitVersion,
+                               "revision":   
version.GetVersionInfo().GitCommit,
+                               "build_date": 
version.GetVersionInfo().BuildDate,
+                               "goversion":  
version.GetVersionInfo().GoVersion,
+                       },
+               },
+               func() float64 { return 1 },
+       )
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rekor-0.12.1/pkg/generated/client/index/index_client.go 
new/rekor-0.12.2/pkg/generated/client/index/index_client.go
--- old/rekor-0.12.1/pkg/generated/client/index/index_client.go 2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/pkg/generated/client/index/index_client.go 2022-09-29 
17:43:35.000000000 +0200
@@ -50,7 +50,11 @@
 }
 
 /*
-SearchIndex searches index by entry metadata
+       SearchIndex searches index by entry metadata
+
+       EXPERIMENTAL - this endpoint is offered as best effort only and may be 
changed or removed in future releases.
+
+The results returned from this endpoint may be incomplete.
 */
 func (a *Client) SearchIndex(params *SearchIndexParams, opts ...ClientOption) 
(*SearchIndexOK, error) {
        // TODO: Validate the params before sending
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rekor-0.12.1/pkg/generated/restapi/configure_rekor_server.go 
new/rekor-0.12.2/pkg/generated/restapi/configure_rekor_server.go
--- old/rekor-0.12.1/pkg/generated/restapi/configure_rekor_server.go    
2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/pkg/generated/restapi/configure_rekor_server.go    
2022-09-29 17:43:35.000000000 +0200
@@ -125,7 +125,7 @@
        recordMetricsForAPI(api, "GET", "/api/v1/log/entries")
        recordMetricsForAPI(api, "POST", "/api/v1/log/entries")
        recordMetricsForAPI(api, "GET", "/api/v1/log/entries/{entryUUID}")
-       recordMetricsForAPI(api, "GET", "/api/v1/log/entries/retrieve")
+       recordMetricsForAPI(api, "POST", "/api/v1/log/entries/retrieve")
 
        return setupGlobalMiddleware(api.Serve(setupMiddlewares))
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/pkg/generated/restapi/embedded_spec.go 
new/rekor-0.12.2/pkg/generated/restapi/embedded_spec.go
--- old/rekor-0.12.1/pkg/generated/restapi/embedded_spec.go     2022-09-21 
13:38:41.000000000 +0200
+++ new/rekor-0.12.2/pkg/generated/restapi/embedded_spec.go     2022-09-29 
17:43:35.000000000 +0200
@@ -53,11 +53,13 @@
   "paths": {
     "/api/v1/index/retrieve": {
       "post": {
+        "description": "EXPERIMENTAL - this endpoint is offered as best effort 
only and may be changed or removed in future releases.\nThe results returned 
from this endpoint may be incomplete.\n",
         "tags": [
           "index"
         ],
         "summary": "Searches index by entry metadata",
         "operationId": "searchIndex",
+        "deprecated": true,
         "parameters": [
           {
             "name": "query",
@@ -955,11 +957,13 @@
   "paths": {
     "/api/v1/index/retrieve": {
       "post": {
+        "description": "EXPERIMENTAL - this endpoint is offered as best effort 
only and may be changed or removed in future releases.\nThe results returned 
from this endpoint may be incomplete.\n",
         "tags": [
           "index"
         ],
         "summary": "Searches index by entry metadata",
         "operationId": "searchIndex",
+        "deprecated": true,
         "parameters": [
           {
             "name": "query",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rekor-0.12.1/pkg/generated/restapi/operations/index/search_index.go 
new/rekor-0.12.2/pkg/generated/restapi/operations/index/search_index.go
--- old/rekor-0.12.1/pkg/generated/restapi/operations/index/search_index.go     
2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/pkg/generated/restapi/operations/index/search_index.go     
2022-09-29 17:43:35.000000000 +0200
@@ -48,7 +48,10 @@
 /*
        SearchIndex swagger:route POST /api/v1/index/retrieve index searchIndex
 
-Searches index by entry metadata
+# Searches index by entry metadata
+
+EXPERIMENTAL - this endpoint is offered as best effort only and may be changed 
or removed in future releases.
+The results returned from this endpoint may be incomplete.
 */
 type SearchIndex struct {
        Context *middleware.Context
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/pkg/sharding/ranges.go 
new/rekor-0.12.2/pkg/sharding/ranges.go
--- old/rekor-0.12.1/pkg/sharding/ranges.go     2022-09-21 13:38:41.000000000 
+0200
+++ new/rekor-0.12.2/pkg/sharding/ranges.go     2022-09-29 17:43:35.000000000 
+0200
@@ -138,6 +138,15 @@
        return l.inactive == nil
 }
 
+// AllShards returns all shards, starting with the active shard and then the 
inactive shards
+func (l *LogRanges) AllShards() []int64 {
+       shards := []int64{l.ActiveTreeID()}
+       for _, in := range l.GetInactive() {
+               shards = append(shards, in.TreeID)
+       }
+       return shards
+}
+
 // TotalInactiveLength returns the total length across all inactive shards;
 // we don't know the length of the active shard.
 func (l *LogRanges) TotalInactiveLength() int64 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/tests/apk.go 
new/rekor-0.12.2/tests/apk.go
--- old/rekor-0.12.1/tests/apk.go       2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/tests/apk.go       2022-09-29 17:43:35.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build e2e
 // +build e2e
 
 //
@@ -51,7 +52,7 @@
        datahash := sha256.Sum256(dataTGZBuf.Bytes())
 
        ctlData := strings.Builder{}
-       ctlData.WriteString("name = " + randomRpmSuffix())
+       ctlData.WriteString("name = " + randomSuffix(16))
        ctlData.WriteRune('\n')
        ctlData.WriteString("datahash = " + hex.EncodeToString(datahash[:]))
        ctlData.WriteRune('\n')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/tests/e2e-test.sh 
new/rekor-0.12.2/tests/e2e-test.sh
--- old/rekor-0.12.1/tests/e2e-test.sh  2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/tests/e2e-test.sh  2022-09-29 17:43:35.000000000 +0200
@@ -17,12 +17,14 @@
 set -e
 testdir=$(dirname "$0")
 
+rm -f /tmp/rekor-*.cov
+
 echo "starting services"
-docker-compose up -d
+docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d 
--force-recreate --build
 
 echo "building CLI and server"
-go build -o rekor-cli ./cmd/rekor-cli
-go build -o rekor-server ./cmd/rekor-server
+go test -c ./cmd/rekor-cli -o rekor-cli -cover -covermode=count -coverpkg=./...
+go test -c ./cmd/rekor-server -o rekor-server -covermode=count -coverpkg=./...
 
 count=0
 
@@ -54,3 +56,18 @@
    docker-compose logs --no-color > /tmp/docker-compose.log
    exit 1
 fi
+
+echo "generating code coverage"
+curl -X GET 0.0.0.0:2345/kill
+sleep 5
+
+if ! docker cp $(docker ps -aqf "name=rekor_rekor-server"):go/rekor-server.cov 
/tmp/rekor-server.cov ; then
+   # failed to copy code coverage report from server
+   echo "Failed to retrieve server code coverage report"
+   docker-compose logs --no-color > /tmp/docker-compose.log
+   exit 1
+fi
+
+# merging coverage reports and filtering out /pkg/generated from final report
+gocovmerge /tmp/rekor-*.cov | grep -v "/pkg/generated/" > /tmp/rekor-merged.cov
+echo "code coverage $(go tool cover -func=/tmp/rekor-merged.cov | grep -E 
'^total\:' | sed -E 's/\s+/ /g')"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/tests/jar.go 
new/rekor-0.12.2/tests/jar.go
--- old/rekor-0.12.1/tests/jar.go       2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/tests/jar.go       2022-09-29 17:43:35.000000000 +0200
@@ -13,6 +13,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+//go:build e2e
 // +build e2e
 
 package e2e
@@ -60,7 +61,7 @@
        if err != nil {
                t.Fatal(err)
        }
-       randManifest := strings.Replace(manifest, "REPLACE", randomRpmSuffix(), 
1)
+       randManifest := strings.Replace(manifest, "REPLACE", randomSuffix(16), 
1)
        mf.Write([]byte(randManifest))
        if err := zw.Close(); err != nil {
                t.Fatal(err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/tests/rpm.go 
new/rekor-0.12.2/tests/rpm.go
--- old/rekor-0.12.1/tests/rpm.go       2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/tests/rpm.go       2022-09-29 17:43:35.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build e2e
 // +build e2e
 
 //
@@ -20,28 +21,17 @@
 import (
        "bytes"
        "io/ioutil"
-       "math/rand"
        "os"
        "testing"
 
        "github.com/google/rpmpack"
 )
 
-func randomRpmSuffix() string {
-       const letterBytes = 
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-
-       b := make([]byte, 16)
-       for i := range b {
-               b[i] = letterBytes[rand.Intn(len(letterBytes))]
-       }
-       return string(b)
-}
-
 func createSignedRpm(t *testing.T, artifactPath string) {
        t.Helper()
 
        rpmMetadata := rpmpack.RPMMetaData{
-               Name:    "test-rpm-" + randomRpmSuffix(),
+               Name:    "test-rpm-" + randomSuffix(16),
                Epoch:   0,
                Version: "1",
                Release: "2",
@@ -57,7 +47,7 @@
        data := randomData(t, 100)
 
        rpm.AddFile(rpmpack.RPMFile{
-               Name:  randomRpmSuffix(),
+               Name:  randomSuffix(16),
                Body:  data,
                Type:  rpmpack.GenericFile,
                Owner: "testOwner",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/tests/sharding-e2e-test.sh 
new/rekor-0.12.2/tests/sharding-e2e-test.sh
--- old/rekor-0.12.1/tests/sharding-e2e-test.sh 2022-09-21 13:38:41.000000000 
+0200
+++ new/rekor-0.12.2/tests/sharding-e2e-test.sh 2022-09-29 17:43:35.000000000 
+0200
@@ -24,7 +24,6 @@
 echo "Installing createtree..."
 go install github.com/google/trillian/cmd/createtree@latest
 
-
 echo "starting services"
 docker-compose up -d
 rm ~/.rekor/state.json || true
@@ -34,6 +33,7 @@
 REKOR_CLI=$(pwd)/rekor-cli
 go build -o rekor-server ./cmd/rekor-server
 
+
 function check_log_index () {
   logIndex=$1
   # make sure we can get this log index from rekor
@@ -251,6 +251,11 @@
 NUM_ELEMENTS=$(curl -f http://localhost:3000/api/v1/log/entries/retrieve -H 
"Content-Type: application/json" -H "Accept: application/json" -d "{ 
\"entryUUIDs\": [\"$ENTRY_ID_1\"]}" | jq '. | length')
 stringsMatch $NUM_ELEMENTS "1"
 
+# Make sure we can verify the entry we entered into the now-inactive shard
+pushd tests
+$REKOR_CLI verify --artifact test_file.txt --signature test_file.sig 
--public-key test_public_key.key --rekor_server http://localhost:3000
+popd
+
 # -f makes sure we exit on failure
 NUM_ELEMENTS=$(curl -f http://localhost:3000/api/v1/log/entries/retrieve -H 
"Content-Type: application/json" -H "Accept: application/json" -d "{ 
\"entryUUIDs\": [\"$ENTRY_ID_1\", \"$ENTRY_ID_2\"]}" | jq '. | length')
 stringsMatch $NUM_ELEMENTS "2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rekor-0.12.1/tests/util.go 
new/rekor-0.12.2/tests/util.go
--- old/rekor-0.12.1/tests/util.go      2022-09-21 13:38:41.000000000 +0200
+++ new/rekor-0.12.2/tests/util.go      2022-09-29 17:43:35.000000000 +0200
@@ -47,6 +47,9 @@
 
 func run(t *testing.T, stdin, cmd string, arg ...string) string {
        t.Helper()
+       // Coverage flag must be the first arg passed to coverage binary
+       // No impact when running with regular binary
+       arg = append([]string{coverageFlag()}, arg...)
        c := exec.Command(cmd, arg...)
        if stdin != "" {
                c.Stdin = strings.NewReader(stdin)
@@ -60,8 +63,7 @@
                t.Log(string(b))
                t.Fatal(err)
        }
-
-       return string(b)
+       return stripCoverageOutput(string(b))
 }
 
 func runCli(t *testing.T, arg ...string) string {
@@ -76,6 +78,9 @@
 
 func runCliStdout(t *testing.T, arg ...string) string {
        t.Helper()
+       // Coverage flag must be the first arg passed to coverage binary
+       // No impact when running with regular binary
+       arg = append([]string{coverageFlag()}, arg...)
        arg = append(arg, rekorServerFlag())
        c := exec.Command(cli, arg...)
 
@@ -88,11 +93,14 @@
                t.Log(string(b))
                t.Fatal(err)
        }
-       return string(b)
+       return stripCoverageOutput(string(b))
 }
 
 func runCliErr(t *testing.T, arg ...string) string {
        t.Helper()
+       // Coverage flag must be the first arg passed to coverage binary
+       // No impact when running with regular binary
+       arg = append([]string{coverageFlag()}, arg...)
        arg = append(arg, rekorServerFlag())
        // use a blank config file to ensure no collision
        if os.Getenv("REKORTMPDIR") != "" {
@@ -104,7 +112,7 @@
                t.Log(string(b))
                t.Fatalf("expected error, got %s", string(b))
        }
-       return string(b)
+       return stripCoverageOutput(string(b))
 }
 
 func rekorServerFlag() string {
@@ -118,6 +126,14 @@
        return "http://localhost:3000";
 }
 
+func coverageFlag() string {
+       return "-test.coverprofile=/tmp/rekor-cli."+randomSuffix(8)+".cov"
+}
+
+func stripCoverageOutput(out string) string {
+       return strings.Split(strings.Split(out, "PASS")[0], "FAIL")[0]
+}
+
 func readFile(t *testing.T, p string) string {
        b, err := ioutil.ReadFile(p)
        if err != nil {
@@ -126,6 +142,16 @@
        return strings.TrimSpace(string(b))
 }
 
+func randomSuffix(n int) string {
+       const letterBytes = 
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+       b := make([]byte, n)
+       for i := range b {
+               b[i] = letterBytes[rand.Intn(len(letterBytes))]
+       }
+       return string(b)
+}
+
 func randomData(t *testing.T, n int) []byte {
        t.Helper()
        rand.Seed(time.Now().UnixNano())

++++++ vendor.tar.xz ++++++

Reply via email to