From syou6162-claude-code-commands
Converts GitHub Actions 'uses:' tag references to SHA pins with version comments using pinact. Previews diffs via --check --diff before applying to workflow YAMLs.
npx claudepluginhub syou6162/agent-skillsThis skill uses the workspace's default tool permissions.
このスキルはGitHub Actionsワークフローファイル内の`uses:`フィールドで使用されているタグ参照(例: `@v4`)を、セキュリティのベストプラクティスに従ってSHA参照(例: `@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2`)に自動変換します。
Hardens GitHub Actions workflows against supply chain attacks, credential theft, and privilege escalation. Pins actions to SHAs, minimizes GITHUB_TOKEN permissions, prevents script injections via PR inputs, and enforces workflow change reviews.
Hardens GitHub Actions workflows against supply chain attacks, credential theft, and privilege escalation by pinning actions to SHA digests, minimizing GITHUB_TOKEN permissions, preventing script injection, and adding reviewer gates.
Hardens GitHub Actions workflows against supply chain attacks, credential theft, and privilege escalation by pinning actions to SHAs, minimizing GITHUB_TOKEN permissions, preventing script injection, and requiring reviewers.
Share bugs, ideas, or general feedback.
このスキルはGitHub Actionsワークフローファイル内のuses:フィールドで使用されているタグ参照(例: @v4)を、セキュリティのベストプラクティスに従ってSHA参照(例: @11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2)に自動変換します。
以下の場合にこのスキルを発動してください:
まず --check --diff オプションで、どのファイルが変更されるかを確認します:
pinact run --check --diff
出力例:
ERROR action isn't pinned
.github/workflows/ci.yaml:10
- uses: actions/checkout@v4
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
ERROR action isn't pinned
.github/workflows/ci.yaml:11
- - uses: actions/setup-go@v4
+ - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0
ERROR action isn't pinned
.github/workflows/deploy.yaml:15
- uses: actions/checkout@v4
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
確認後、pinact run を実行してすべての対象ファイルを一括変換します:
pinact run
pinactは以下を自動的に行います:
.github/workflows/*.{yml,yaml} と action.{yml,yaml} を自動検出して変換ステップ1: 変更対象を確認:
pinact run --check --diff
出力:
ERROR action isn't pinned
.github/workflows/ci.yaml:10
- uses: actions/checkout@v4
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
ERROR action isn't pinned
.github/workflows/ci.yaml:11
- - uses: actions/setup-go@v4
+ - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0
ステップ2: 変換を実行:
pinact run
変換後のワークフローファイル (.github/workflows/ci.yaml):
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
- uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0
pinact run --check --diff で変更対象を確認するpinact run で全ファイルを一括変換する--check --diff で確認せずに pinact run を実行しないpinact --versionで確認)pinact run --check --diff で変更対象を確認した