airvzxf / airvzxf/ftp-deployment-action

fix(release): concurrency: release-<tag> is not applied to the push phase of a re-pushed tag

オープン 初心者向け
#213 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
audit bug pending-human pending-review priority:high
主要言語
Shell
スター
37
フォーク
9
平均マージ
44分
マージ済み PR(30日)
47

説明

gh issue create --title "fix(release): concurrency: release- is not applied to the push phase of a re-pushed tag" --label "bug,audit,priority:high" --body "## Finding

release.yml has `concurrency: release-` to serialize releases on the same tag. The concurrency group key is `release-\${{ github.event.release.tag_name }}`. On a re-pushed tag (the same tag SHA is updated, e.g. when a tag is force-pushed after a failed build), the concurrency group is the same. But the concurrency check is on `github.event.release.tag_name` only, not on the SHA. Two releases of the same tag with different SHAs can race.

This is rare (tag rewriting is not the normal flow) but it bypasses the serialize-by-tag intent.

## Affected code

- .github/workflows/release.yml — concurrency block

## Reproduction

1. Push tag v2.11.3.
2. While the first build runs, force-push the same tag to a different commit (after deleting the tag locally + re-creating).
3. Observe: both runs execute in parallel; the second one wins on the registry.

## Suggested fix

Either:
- Document that tag rewriting is forbidden (treat it as a security event).
- Or include the SHA in the concurrency key: `release-\${{ github.event.release.tag_name }}-\${{ github.sha }}`.

The first option is preferred because tag rewriting is already discouraged by AGENTS.md.

## Source

F2 audit 2026-09-03 (workflows audit). Reporter: subagent-pekodbj7.

## Related

- Part of EPIC #[epic-number]
- Closes: #NONE (no existing issue)"

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by reading AGENTS.md and the concurrency block in .github/workflows/release.yml, then compare the stated same-tag serialization intent with the re-pushed-tag reproduction. Done means the chosen policy is recorded or implemented consistently and the release workflow behavior is reviewed against that policy.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
github-actions
領域
ci-cd, release
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
68/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。