chore(ci): Scoop 用 PAT を 1Password 管理に移行する - #22
Merged
Merged
Conversation
GitHub Secrets に直接置いていた SCOOP_GITHUB_TOKEN を、1Password の `gh`
vault(op://gh/SCOOP_GITHUB_TOKEN/credential)からリリース時に読み出す方式へ
移行する。GitHub 側に残る長期シークレットは 1Password サービスアカウントの
トークンのみになり、PAT のローテーションは 1Password 側だけで完結する。
load-secrets-action は v5 で export-env が既定 false のため、outputs 経由で
goreleaser ステップにのみ渡す。旧 `secrets.SCOOP_GITHUB_TOKEN` の行は残さず
置換する。step レベルの env が勝つため、併存させたまま GitHub 側の secret を
削除すると空文字が渡り、goreleaser の scoop push が不可解な認証エラーで落ちる。
.goreleaser.yaml は `{{ .Env.SCOOP_GITHUB_TOKEN }}` のままで変更不要。
op-check.yml は移行の検証用の一時ジョブ。`skip_upload: auto` によりプレリリース
では scoop アップロード自体がスキップされ、タグを打ってもトークンを試せない。
本番リリースを消費せずに push 権限を確かめるため、このブランチ限定で走らせる。
検証後に削除する。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
run 31868231450 で 1Password 経由の PAT 読み出しと kwrkb/scoop-bucket への push 権限(permissions.push = true)を確認できたため、役割を終えた。
vault 単位でしかアクセス権を切れない制約から専用 vault を切った判断と、 skip_upload: auto によりプレリリースでは検証にならない点を残す。
kwrkb
force-pushed
the
chore/scoop-pat-via-1password
branch
from
August 15, 2026 07:49
d17b701 to
41ae4eb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
GitHub Actions Secrets に直接置いていた
SCOOP_GITHUB_TOKENを、1Password のghvault(op://gh/SCOOP_GITHUB_TOKEN/credential)からリリース時に読み出す方式へ移行する。GitHub 側に残る長期シークレットは 1Password サービスアカウントのトークン 1 つだけになり、PAT のローテーションは 1Password 側で完結する。シークレットの数が減るわけではなく、得られるのは一元管理と監査ログ。
変更点
.github/workflows/release.yml—1password/load-secrets-action@v5を追加し、secrets.SCOOP_GITHUB_TOKENの参照をsteps.op.outputs.SCOOP_GITHUB_TOKENに置換.goreleaser.yaml— 変更なし({{ .Env.SCOOP_GITHUB_TOKEN }}のまま通る).gitlab-ci.yml— 変更なし(GitLab 側はrelease-cliで goreleaser を使っていないため無関係)export-envは v5 で既定falseのため、環境変数にばら撒かず outputs 経由で goreleaser ステップにのみ渡している。旧secrets.*の行を残さず置換したのは、step レベルのenv:が勝つため、併存させたまま GitHub 側の secret を削除すると空文字が渡り goreleaser の scoop push が不可解な認証エラーで落ちるため。検証
.goreleaser.yamlのskip_upload: autoによりプレリリースでは scoop アップロード自体がスキップされるため、-rcタグを打ってもトークンを試せない。本番リリースを消費せずに確かめるため、一時ジョブop-check.ymlをこのブランチ限定で走らせて確認し、その後削除した。push permission: truepermissions.pushを明示確認しているマージ後
既存の GitHub Secret
SCOOP_GITHUB_TOKENは、本番リリース(プレリリースでないv*タグ)が新経路で 1 回成功するまで残す。成功を確認してから削除する。🤖 Generated with Claude Code