github-actions-pin — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited github-actions-pin (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
GitHub Actions ワークフローファイルに書かれたアクション参照を、変更不可能なコミットSHAに置き換えます。サプライチェーン攻撃対策として有効なセキュリティプラクティスです。
Pin モード(デフォルト): バージョンタグ → SHA
# Before
uses: actions/checkout@v4
# After
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4Update モード: 既存のSHAを最新版のSHAに更新
# Before
uses: actions/checkout@OLD_SHA # v4.1.0
# After
uses: actions/checkout@NEW_SHA # v4.2.2ユーザーがファイルを指定していない場合は .github/workflows/ 以下を確認し、処理対象を確認する。
このスキルのディレクトリにある scripts/pin_actions.py を使う。
# Pin モード(タグ → SHA)
python ~/.claude/skills/github-actions-pin/scripts/pin_actions.py <workflow-file>
# Update モード(SHA を最新版に更新)
python ~/.claude/skills/github-actions-pin/scripts/pin_actions.py <workflow-file> --update
# ディレクトリ内の全ワークフローを処理
python ~/.claude/skills/github-actions-pin/scripts/pin_actions.py .github/workflows/ --all
# 変更内容をプレビュー(ファイルは変更しない)
python ~/.claude/skills/github-actions-pin/scripts/pin_actions.py <workflow-file> --dry-runWindows の場合:
python "$env:USERPROFILE\.claude\skills\github-actions-pin\scripts\pin_actions.py" <workflow-file>何のアクションが、どのSHAに変換されたかをユーザーに伝える。
| 参照の種類 | Pin モード | Update モード |
|---|---|---|
owner/[email protected](タグ) | → SHA に変換 | → 最新版 SHA にピン留め |
owner/repo@SHA # vX.Y.Z(済み) | スキップ | → 最新版SHA に更新 |
owner/repo@SHA(コメントなし) | スキップ | → 最新版SHA に更新 |
owner/repo@main(ブランチ) | → HEAD の SHA に変換 | → 最新 HEAD SHA に更新 |
./local/action(ローカル) | スキップ | スキップ |
docker://image(Docker) | スキップ | スキップ |
gh CLI がインストール済みかつ認証済み(gh auth login)Bash/PowerShell が使えない環境では、WebFetch で GitHub API を直接呼ぶことで同等の処理ができる。
# タグのSHAを取得(軽量タグの場合)
GET https://api.github.com/repos/{owner}/{repo}/git/ref/tags/{tag}
→ .object.sha がコミットSHA(typeが "tag" の場合は annotated tag → 次のステップが必要)
# Annotated tag のデリファレンス
GET https://api.github.com/repos/{owner}/{repo}/git/tags/{tag_object_sha}
→ .object.sha がコミットSHA
# 最新リリース取得(updateモード)
GET https://api.github.com/repos/{owner}/{repo}/releases/latest
→ .tag_name でタグ名を取得し、上記の方法でSHAを解決gh CLI が使える場合は gh api /repos/{owner}/{repo}/git/ref/tags/{tag} でも同様。
gh CLI の API レート制限に注意(通常は問題ない)./)と Docker アクションは自動でスキップされる~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.