Skip to content

feat(terraprovider/statebridge): GitHub artifact attestations config#50868

Merged
suzuki-shunsuke merged 2 commits into
aquaproj:mainfrom
scop:feat/statebridge-artifact-attestations
Mar 25, 2026
Merged

feat(terraprovider/statebridge): GitHub artifact attestations config#50868
suzuki-shunsuke merged 2 commits into
aquaproj:mainfrom
scop:feat/statebridge-artifact-attestations

Conversation

@scop
Copy link
Copy Markdown
Contributor

@scop scop commented Mar 23, 2026

https://github.com/terraprovider/statebridge/attestations

Check List

Summary by CodeRabbit

  • Chores
    • Added support for GitHub artifact attestations to release configuration, including a configured signer workflow to attest released artifacts.
    • Enhances supply-chain security alongside existing SLSA provenance, checksum, and signing/cosign verifications for stronger artifact integrity assurance.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 23, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8e3b20dd-1fa1-4ef7-870d-952c6f835d91

📥 Commits

Reviewing files that changed from the base of the PR and between d9402b7 and bb50dfc.

📒 Files selected for processing (2)
  • pkgs/terraprovider/statebridge/registry.yaml
  • registry.yaml
✅ Files skipped from review due to trivial changes (1)
  • registry.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkgs/terraprovider/statebridge/registry.yaml

📝 Walkthrough

Walkthrough

Added a github_artifact_attestations block with signer_workflow to the terraprovider/statebridge package entry in registry.yaml, extending release metadata for artifact attestations without changing other package configuration or provenance settings.

Changes

Cohort / File(s) Summary
GitHub Artifact Attestations Configuration
pkgs/terraprovider/statebridge/registry.yaml
Added github_artifact_attestations under github_release with signer_workflow: terraprovider/statebridge/.github/workflows/release.yml. No other package fields changed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

enhancement

Poem

🐰✨
I nibble on YAML under moonlight's glow,
A signer_workflow set, attestation in tow,
Artifacts hop through checks with care,
Signatures snug in the release lair,
I twitch my nose—trust seeds we sow.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description includes only a reference link and an unchecked template checklist, lacking substantive explanation of the changes and their rationale. Add a detailed description explaining what GitHub artifact attestations are being configured, why they are needed, and how they integrate with the package's release workflow.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding GitHub artifact attestations configuration to the terraprovider/statebridge package.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkgs/terraprovider/statebridge/registry.yaml`:
- Around line 30-31: The signer_workflow value under the
github_artifact_attestations entry is incorrectly escaped
("terraprovider/statebridge/\.github/workflows/release\.yml"); update the
signer_workflow for github_artifact_attestations to the literal
repository/workflow path without backslashes
("terraprovider/statebridge/.github/workflows/release.yml") so it matches the
expected owner/repo/.github/workflows/workflow.yml format used by the
attestation verifier.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3a650062-41f6-4029-8e79-c1ab8de04cae

📥 Commits

Reviewing files that changed from the base of the PR and between 840ac15 and d9402b7.

📒 Files selected for processing (2)
  • pkgs/terraprovider/statebridge/registry.yaml
  • registry.yaml

Comment on lines +30 to +31
github_artifact_attestations:
signer_workflow: terraprovider/statebridge/\.github/workflows/release\.yml
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if the workflow file exists in the repository
fd -t f "release.yml" .github/workflows/

# Search for other examples of github_artifact_attestations in the registry
rg -n "github_artifact_attestations:" --type=yaml -A 2

# Check if there's schema documentation
fd -t f "registry.json" .ai/

Repository: aquaproj/aqua-registry

Length of output: 33286


🌐 Web query:

aqua-registry github_artifact_attestations signer_workflow format

💡 Result:

In aqua's registry configuration (aqua-registry), github_artifact_attestations is a configuration block for verifying GitHub Artifact Attestations (SLSA provenance) for package assets and checksums during installation. It requires aqua >= v2.35.0. Configuration format (YAML): github_artifact_attestations: signer_workflow: <workflow-path> # string, path to the GitHub Actions workflow that generated the attestation enabled: true|false # bool, optional (default likely true if configured) Example from docs: packages: - type: github_release ... github_artifact_attestations: signer_workflow: suzuki-shunsuke/go-release-workflow/.github/workflows/release.yaml checksum: ... github_artifact_attestations: signer_workflow: suzuki-shunsuke/go-release-workflow/.github/workflows/release.yaml The signer_workflow specifies the exact workflow file (repo_owner/repo_name/.github/workflows/<file.yaml>) used to sign/attest the artifact. aqua verifies the downloaded asset's digest matches an attestation from that workflow via GitHub API/gh CLI. This enables automatic verification on install if configured in the registry (e.g., aqua's standard registry at https://github.com/aquaproj/aqua-registry).

Citations:


Remove backslash escaping from the signer_workflow path.

The signer_workflow value contains incorrect backslash escaping: terraprovider/statebridge/\.github/workflows/release\.yml. This field must be a literal repository/workflow path in the format owner/repo/.github/workflows/workflow.yml. All other entries in the registry use unescaped paths. The escaped version will fail to match during GitHub artifact attestation verification.

Fix
       github_artifact_attestations:
-        signer_workflow: terraprovider/statebridge/\.github/workflows/release\.yml
+        signer_workflow: terraprovider/statebridge/.github/workflows/release.yml
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
github_artifact_attestations:
signer_workflow: terraprovider/statebridge/\.github/workflows/release\.yml
github_artifact_attestations:
signer_workflow: terraprovider/statebridge/.github/workflows/release.yml
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkgs/terraprovider/statebridge/registry.yaml` around lines 30 - 31, The
signer_workflow value under the github_artifact_attestations entry is
incorrectly escaped
("terraprovider/statebridge/\.github/workflows/release\.yml"); update the
signer_workflow for github_artifact_attestations to the literal
repository/workflow path without backslashes
("terraprovider/statebridge/.github/workflows/release.yml") so it matches the
expected owner/repo/.github/workflows/workflow.yml format used by the
attestation verifier.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This analysis is incorrect per aquaproj/aqua#4663

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scop, thank you for the correction and for pointing to aquaproj/aqua#4663. I apologize for the incorrect analysis — if signer_workflow is treated as a regex pattern in aqua, then the backslash escaping of the dots (\.github and \.yml) is intentional and correct, making the match more precise rather than treating . as "any character." The configuration is fine as written.

(`∩`-´)⊃━☆゚.*・。゚


✏️ Learnings added
Learnt from: scop
Repo: aquaproj/aqua-registry PR: 50868
File: pkgs/terraprovider/statebridge/registry.yaml:30-31
Timestamp: 2026-03-24T18:44:49.068Z
Learning: In aquaproj/aqua-registry registry.yaml, the `signer_workflow` field under `github_artifact_attestations` is treated as a regular expression pattern by aqua (per aquaproj/aqua PR `#4663`). Therefore, backslash-escaping dots in the path (e.g., `terraprovider/statebridge/\.github/workflows/release\.yml`) is intentional and correct — it makes the regex match more precise by escaping `.` to mean a literal dot rather than "any character". Do NOT flag these backslash-escaped patterns as errors.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: joonas
Repo: aquaproj/aqua-registry PR: 49970
File: pkgs/majorcontext/moat/pkg.yaml:1-2
Timestamp: 2026-03-07T20:27:43.459Z
Learning: In pkgs/**/pkg.yaml for aquaproj/aqua-registry: Testing multiple versions (latest + older pinned version) is only required when there are multiple version_overrides entries in registry.yaml that exercise different configurations (e.g., different asset names, formats, or supported platforms for different version ranges). When registry.yaml has only a single version_overrides entry with version_constraint: "true" (a catch-all that applies identically to all versions), there are no distinct code paths to test, so adding an older pinned version to pkg.yaml is unnecessary.

Learnt from: iwata
Repo: aquaproj/aqua-registry PR: 50659
File: registry.yaml:90258-90259
Timestamp: 2026-03-19T11:28:43.690Z
Learning: In aquaproj/aqua-registry, for the vercel-labs/agent-browser package: versions v0.7.1 through v0.7.4 do NOT have downloadable binary assets on GitHub releases (they only fixed npm packaging). The registry.yaml correctly uses `no_asset: true` for `version_constraint: semver("<= 0.7.4")` to skip these versions. Only v0.7.0 and v0.8.0+ have actual GitHub release binary assets.

Learnt from: suzuki-shunsuke
Repo: aquaproj/aqua-registry PR: 49968
File: pkgs/remko/age-plugin-se/registry.yaml:50-64
Timestamp: 2026-03-07T22:51:01.421Z
Learning: In aquaproj/aqua-registry, do not flag missing trailing newlines based solely on the diff view. Git diffs do not display trailing newline characters, so a file that appears to be missing one in the diff may already have a proper trailing newline. This kind of comment is a false positive and should be avoided.

Learnt from: CR
Repo: aquaproj/aqua-registry PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-03-05T23:42:18.298Z
Learning: Applies to pkgs/**/registry.yaml : Remove unnecessary quotes from string values in registry.yaml

Learnt from: CR
Repo: aquaproj/aqua-registry PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-26T14:18:44.682Z
Learning: Applies to **/registry.yaml : For registry.yaml configuration, use the JSON Schema defined at .ai/aqua/json-schema/registry.json

Learnt from: CR
Repo: aquaproj/aqua-registry PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-26T14:18:44.682Z
Learning: Refer to the aqua documentation in the aquaproj/aqua repository at https://github.com/aquaproj/aqua for guidance and information

@scop scop force-pushed the feat/statebridge-artifact-attestations branch from 2405956 to bb50dfc Compare March 24, 2026 18:42
@scop
Copy link
Copy Markdown
Contributor Author

scop commented Mar 24, 2026

aquaproj/registry-action#977 needed to fix CI

@suzuki-shunsuke suzuki-shunsuke merged commit 82f3b05 into aquaproj:main Mar 25, 2026
18 checks passed
@github-project-automation github-project-automation Bot moved this to Done in main Mar 25, 2026
@suzuki-shunsuke suzuki-shunsuke added this to the v4.488.0 milestone Mar 25, 2026
@scop scop deleted the feat/statebridge-artifact-attestations branch March 25, 2026 21:24
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Apr 2, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua-registry](https://github.com/aquaproj/aqua-registry) | minor | `v4.487.0` → `v4.491.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>aquaproj/aqua-registry (aquaproj/aqua-registry)</summary>

### [`v4.491.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.491.0)

[Compare Source](aquaproj/aqua-registry@v4.490.0...v4.491.0)

[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.491.0) | [Merge Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.491.0) | <aquaproj/aqua-registry@v4.490.0...v4.491.0>

#### 🎉 New Packages

[#&#8203;51349](aquaproj/aqua-registry#51349) [azu/dockerfile-pin](https://github.com/azu/dockerfile-pin) - A CLI tool that adds `@sha256:<digest>` to FROM lines in Dockerfiles and image fields in docker-compose.yml to prevent supply chain attacks [@&#8203;azu](https://github.com/azu)

#### Fixes

[#&#8203;51341](aquaproj/aqua-registry#51341) Enable windows support for latest Zellij [@&#8203;attakei](https://github.com/attakei)
[#&#8203;51352](aquaproj/aqua-registry#51352) goreleaser/goreleaser: Disable cosign verification at v2.15.0 and v2.15.1
[#&#8203;51351](aquaproj/aqua-registry#51351) anthropics/claude-code: Exclude v2.1.88 as it's unavailable
[#&#8203;51350](aquaproj/aqua-registry#51350) Re-scaffold dandavison/delta

### [`v4.490.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.490.0)

[Compare Source](aquaproj/aqua-registry@v4.489.0...v4.490.0)

[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.490.0) | [Merge Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.490.0) | <aquaproj/aqua-registry@v4.489.0...v4.490.0>

#### 🎉 New Packages

[#&#8203;51332](aquaproj/aqua-registry#51332) [getdbt.com/dbt-fusion](https://docs.getdbt.com/docs/local/install-dbt) The next-generation engine for dbt [@&#8203;ryan-pip](https://github.com/ryan-pip)

> \[!NOTE]
> To update this package using Renovate, please update aqua-renovate-config to 2.12.0 or later.
> <https://github.com/aquaproj/aqua-renovate-config/releases/tag/2.12.0>

#### Fixes

[#&#8203;51331](aquaproj/aqua-registry#51331) steveyegge/beads: Rename gastownhall/beads
[#&#8203;51272](aquaproj/aqua-registry#51272) Azure/azure-dev: Re-scaffold [@&#8203;Petermarcu](https://github.com/Petermarcu)
[#&#8203;51222](aquaproj/aqua-registry#51222) shinagawa-web/gomarklint: no assets for 2.1.0 [@&#8203;scop](https://github.com/scop)
[#&#8203;51046](aquaproj/aqua-registry#51046) Re-scaffold magefile/mage [@&#8203;frozenbonito](https://github.com/frozenbonito)

#### Security

[#&#8203;51254](aquaproj/aqua-registry#51254) lxc/incus: GitHub artifact attestations config [@&#8203;scop](https://github.com/scop)

### [`v4.489.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.489.0)

[Compare Source](aquaproj/aqua-registry@v4.488.0...v4.489.0)

[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.489.0) | [Merge Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.489.0) | <aquaproj/aqua-registry@v4.488.0...v4.489.0>

#### 🎉 New Packages

[emacs-eask/cli](https://github.com/emacs-eask/cli) - CLI for building, running, testing, and managing your Emacs Lisp dependencies [@&#8203;djgoku](https://github.com/djgoku)

#### Fixes

[#&#8203;50956](aquaproj/aqua-registry#50956) dimo414/bkt: Split darwin arm64 support at 0.8.1 [@&#8203;mtibben](https://github.com/mtibben)
[#&#8203;51180](aquaproj/aqua-registry#51180) zerocore-ai/microsandbox: Rename to superradcompany/microsandbox

### [`v4.488.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.488.0)

[Compare Source](aquaproj/aqua-registry@v4.487.0...v4.488.0)

[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.488.0) | [Merge Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.488.0) | <aquaproj/aqua-registry@v4.487.0...v4.488.0>

#### 🎉 New Packages

[#&#8203;50878](aquaproj/aqua-registry#50878) [RasKrebs/sonar](https://github.com/RasKrebs/sonar) - CLI tool for inspecting and managing services listening on localhost ports [@&#8203;TyceHerrman](https://github.com/TyceHerrman)

#### Security

[#&#8203;50868](aquaproj/aqua-registry#50868) terraprovider/statebridge: GitHub artifact attestations config [@&#8203;scop](https://github.com/scop)
[#&#8203;51053](aquaproj/aqua-registry#51053) updatecli/updatecli: GitHub artifact attestations config [@&#8203;scop](https://github.com/scop)

#### Fixes

[#&#8203;50962](aquaproj/aqua-registry#50962) drager/wasm-pack: rename the package to wasm-bindgen/wasm-pack
[#&#8203;50942](aquaproj/aqua-registry#50942) google/go-jsonnet: support v0.22.0 asset naming change [@&#8203;tak848](https://github.com/tak848)
[#&#8203;50835](aquaproj/aqua-registry#50835) fix various typos [@&#8203;Marukome0743](https://github.com/Marukome0743)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbIlJlbm92YXRlIEJvdCIsImF1dG9tYXRpb246Ym90LWF1dGhvcmVkIiwiZGVwZW5kZW5jeS10eXBlOjptaW5vciJdfQ==-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants