id = "pinact" name = "pinact" homepage = "https://github.com/suzuki-shunsuke/pinact" executables = ["pinact"] [dotfiles] # pinact's official configuration reference names the global file as # $XDG_CONFIG_HOME/pinact/pinact.yaml (default ~/.config on Unix) and # %APPDATA%/pinact/pinact.yaml on Windows. Project-level .pinact files are # deliberately omitted because they are repository files, not user dotfiles. # https://github.com/suzuki-shunsuke/pinact/blob/main/docs/config.md paths = ["[configHome]/pinact/pinact.yaml", "%APPDATA%/pinact/pinact.yaml"] exclude = [] secret = [] [commands] format = 1 label = "Pin GitHub Actions" description = "Pin GitHub Actions and reusable workflows to commit SHAs, or check that they are pinned. Token handling and SARIF output are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["run"] label = "Pin actions in workflows" [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://github.com/suzuki-shunsuke/pinact/blob/main/docs/usage.md" revision = "2026-10-27" evidence = """ pinact run [...] pinact run README.md pinact run --check - [Check without editing files](check.md): `--check`, `--fix=false`, `--no-api` - [Update actions](update.md): `--update`, `--min-age`, `--verify-min-age` - [Verify version comments](codes/001.md): `--verify-comment` - [Pin branches](branch_to_tag.md): `--branch-to-tag` - [Include and exclude specific actions](include_exclude.md): `--include`, `--exclude` """ [[commands.subcommand.field]] id = "files" label = "Workflow files" description = "Defaults to the repository's workflow and action files when empty." type = "path" position = 0 multiple = true path = { kind = "file", role = "input" } effect = "overwrite" sources = ["docs"] [[commands.subcommand.field]] id = "check" label = "Check only" description = "Report unpinned actions without editing files." type = "boolean" option = ["--check"] sources = ["docs"] [[commands.subcommand.field]] id = "update" label = "Update actions" type = "boolean" option = ["--update"] sources = ["docs"] [[commands.subcommand.field]] id = "verify_comment" label = "Verify version comments" type = "boolean" option = ["--verify-comment"] sources = ["docs"] [[commands.subcommand.field]] id = "branch_to_tag" label = "Pin branches" type = "boolean" option = ["--branch-to-tag"] sources = ["docs"] [[commands.subcommand.field]] id = "no_api" label = "Offline check" type = "boolean" option = ["--no-api"] sources = ["docs"] [[commands.subcommand.task]] id = "pin" label = "Pin all actions" fields = ["files", "update"] [[commands.subcommand.task]] id = "check" label = "Check in CI" set = { check = [true] } lock = ["check"] fields = ["files", "check", "no_api"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["files", "check", "update"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["verify_comment", "branch_to_tag", "no_api"]