Registry release can be dispatched from any branch and publishes its unreviewed manifests
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 73/100
調査の方向性
.github/workflows/nf-registry-release.ymlを読み、特に引用された行にあるdispatch条件とcheckout refを確認してください。.github/workflows/self-release-pr.ymlのデフォルトブランチのガードと環境設定を比較してください。issueで期待されている条件に照らして、意図された動作を確認してください。手動dispatchをデフォルト以外のブランチから実行しても公開できず、サポートされているリリース経路は引き続き動作すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Issue description
The nf-publish job of the reusable registry release accepts any workflow_dispatch, and checks out github.sha, which is the ref the run was dispatched from (.github/workflows/nf-registry-release.yml#L47-L50, #L66). Nothing limits a dispatch to the default branch.
So a dispatch from a feature branch (anyone with write access can do one):
- publishes that branch's manifests to the NanoForge registry, unreviewed. A registry version can't be reused (409), so it can't be undone;
- runs that branch's
preparehook in the job that then logs in withNF_REGISTRY_KEY; - creates
{package}@{version}tags on a commit that isn't onmain, which the nextnf-registry-release-prthen counts commits from.
Traced, not run. self-release-pr.yml already guards its dispatch with github.ref == 'refs/heads/main' and an environment limited to main (.github/workflows/self-release-pr.yml#L25-L26).
if: >-
github.repository_owner == 'NanoForge-dev' && (github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && github.event.pull_request.merged == true &&
startsWith(github.head_ref, 'nf-releases/')))
...
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
Expected: a dispatch only publishes from the default branch (e.g. add github.ref_name == github.event.repository.default_branch to the dispatch case), and optionally NF_REGISTRY_KEY lives in an environment limited to main.
Found by a read-only audit of main at 435a16b (first done at 046494f; this file didn't change in between), report audits/actions-2026-11-11.md in the workspace repo.
Code sample
No response
Versions
- @nanoforge-dev/actions 3.3.0 (
mainat 435a16b)
Issue priority
High (immediate attention needed)
I have tested this issue on a development release
435a16b
- 主要言語
- TypeScript
- スター
- 0
- フォーク
- 0
- 平均マージ
- 15時間 51分
- マージ済み PR(30日)
- 21
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NanoForge-dev/actions のほかの issue
-
bug dependencies
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
NanoForge-dev/actions#137 ·
メンテナーはふだん 1 日以内に返信
-
Registry release silently skips manifests with no name and does not name invalid JSON manifestsオープンbug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
NanoForge-dev/actions#135 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
NanoForge-dev/actions#134 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
NanoForge-dev/actions#131 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NanoForge-dev/actions#119 ·
メンテナーはふだん 1 日以内に返信
NanoForge-dev/actions の issue をすべて見る
似ている issue
-
Mend: dependency security vulnerability
難易度 1/5 1〜3時間 初心者へのやさしさ 65/100
fdm-monster/fdm-monster#5563 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
be-BOP-io-SA/be-BOP#2849 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
メンテナーはふだん 1 日以内に返信
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
growilabs/growi#12246 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
🐛 The Rulekeeper - An index run that gives up on the lock ends Succeeded対応中かも @github-actions が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
SSWConsulting/SSW.Rules#2809 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信