Skip to content

ci(release): pin release-critical CI dependencies - #149

Draft
graybuton wants to merge 16 commits into
mainfrom
ci/pin-release-supply-chain
Draft

graybuton wants to merge 16 commits into
mainfrom
ci/pin-release-supply-chain

Conversation

@graybuton

Copy link
Copy Markdown
Owner

Summary

Harden GoFrame's release-critical CI supply chain ahead of
v0.4.0-preview.1.

Authored GitHub Actions are pinned to immutable commits, and repository-owned
TinyGo release downloads are cryptographically verified before installation.

A fail-closed repository gate preserves these contracts and rejects regressions
to mutable Action references or weakened artifact verification.

Supply-chain contract

Release-critical CI now requires:

  • remote authored uses: references to resolve through full immutable commit
    SHAs, with readable upstream version annotations;
  • directly downloaded TinyGo artifacts to pass the accepted SHA-256 check before
    installation;
  • the verified artifact to remain bound to the install sequence;
  • repository checks to reject mutable refs, missing integrity metadata, and
    verification bypasses.

Existing package-manager and pinned-Action internal download mechanisms retain
their current contracts.

Scope

This PR does not change:

  • GoFrame runtime, GOX, or goxc behavior;
  • supported Go, TinyGo, or Node policy;
  • dependencies or WASM size budgets;
  • security-analysis or CodeQL policy;
  • CI job topology, matrices, or required-check names;
  • release artifacts or publication behavior.

Fast-fail CI restructuring remains outside this stage.

Review focus

Please focus on:

  • immutable provenance of release-critical authored Actions;
  • fail-closed TinyGo artifact verification and install sequencing;
  • regression-gate resistance to verification bypasses;
  • preservation of existing CI behavior and the boundary with later CI-topology
    work.

Related

@graybuton graybuton added this to the v0.4.0-preview.1 milestone Sep 8, 2026
@graybuton graybuton self-assigned this Sep 8, 2026
@graybuton
graybuton marked this pull request as ready for review September 9, 2026 00:00

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ae107c1b40

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/check.sh
Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment thread .github/workflows/ci-core.yml
Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton
graybuton marked this pull request as draft September 9, 2026 00:11
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2ac10392f4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci-supply-chain-check.sh
Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cc67a2c46c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5222df3cf3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8fbadcf836

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci-core.yml Outdated
Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 35c1d70858

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci-supply-chain-check.sh
Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8995ea063c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci-supply-chain-check.sh
Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6dc44d281b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment thread scripts/ci-supply-chain-check.sh Outdated
@graybuton

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 15b4458d66

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +469 to +472
if [[ "$forced" != true ]] &&
! repository_file_is_ci_executable_source "$relative" "$file" &&
! repository_file_is_authored_ci_yaml "$relative"; then
return

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Scan local Docker action entrypoints

When an accepted local Action uses runs.using: docker with a non-executable Dockerfile, this early return excludes the Dockerfile from provenance inspection. A RUN base=https://github.com/tinygo-org/tinygo; curl "$base/releases/download/..." instruction also avoids the contiguous-namespace grep, so the checker reports success while CI builds and executes an unverified TinyGo download. Treat Dockerfiles and other entrypoints referenced by local Action metadata as executable CI sources.

Useful? React with 👍 / 👎.

Comment thread scripts/ci-supply-chain-check.sh Outdated
Comment on lines +379 to +380
if [[ "$key" != run || -z "$value" ]]; then
continue

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restrict run scanning to executable step fields

When a valid workflow contains an ordinary mapping key named run outside a step, such as env:\n run: curl, this context-free check treats the data value as a shell command and rejects it for containing a downloader token. The Action-reference scanner already distinguishes step fields from ordinary env/input data; the downloader scanner needs the same structural check so harmless configuration does not break the repository gate.

Useful? React with 👍 / 👎.

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.

1 participant