Skip to content

Commit 62a3f42

Browse files
authored
feat: sign Docker images (#11)
This PR adds support for keyless signing using [Sigstore’s identity-based workflow](https://docs.sigstore.dev/cosign/signing/overview/). Instead of managing long-lived signing keys, Cosign now uses ephemeral keys bound to OpenID Connect (OIDC) identities, verified by Fulcio, and recorded in the Rekor transparency log. This provides a secure, auditable way to sign artifacts without persistent private keys. Signature can be verified with: ``` cosign verify \ --certificate-identity "https://github.com/firebolt-db/mcp-server/.github/workflows/release.yaml@refs/heads/main" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \ ghcr.io/firebolt-db/mcp-server:TAG ```
1 parent c351b5f commit 62a3f42

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

.github/workflows/release.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,22 @@ jobs:
3131
contents: write
3232
packages: write
3333
id-token: write
34+
attestations: write
3435
steps:
3536

3637
- name: Checkout
3738
uses: actions/checkout@v4
3839
with:
3940
fetch-depth: 0
4041

41-
- name: Set up Go
42+
- name: Install Go
4243
uses: actions/setup-go@v5
4344
with:
4445
go-version-file: go.mod
4546

47+
- name: Install Cosign
48+
uses: sigstore/[email protected]
49+
4650
- name: Login to GitHub Container Registry
4751
uses: docker/login-action@v3
4852
with:

.goreleaser.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ docker_manifests:
7474
- ghcr.io/firebolt-db/mcp-server:{{ .Version }}-amd64
7575
- ghcr.io/firebolt-db/mcp-server:{{ .Version }}-arm64v8
7676

77+
docker_signs:
78+
- artifacts: all
79+
args:
80+
- "sign"
81+
- "${artifact}@${digest}"
82+
- "--yes"
83+
7784
release:
7885
replace_existing_artifacts: true
7986
mode: keep-existing

0 commit comments

Comments
 (0)