ghalint
brew install ghalint
v1.5.6
MIT
GitHub Actions linter
28
30-day installs · #6000
219
90-day · #4033
1.1k
365-day · #3672
248
★ GitHub stars · updated 2mo ago
Build dependencies
GitHub topics
cli
github-actions
linter
oss
security
Links
- https://github.com/suzuki-shunsuke/ghalint
- GitHub: suzuki-shunsuke/ghalint
- Brew formula source: Formula/g/ghalint.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"go"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "GitHub Actions linter",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:38:00+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "ghalint",
"github_default_branch": "main",
"github_last_commit_at": "2026-06-17T18:03:35Z",
"github_readme_excerpt": "# ghalint\n\n[](https://deepwiki.com/suzuki-shunsuke/ghalint)\n[Install](docs/install.md) | [Policies](#policies) | [How to use](#how-to-use) | [Configuration](#configuration)\n\nGitHub Actions linter for security best practices.\n\n```console\n$ ghalint run\nERRO[0000] read a workflow file error=\"parse a workflow file as YAML: yaml: line 10: could not find expected \u0027:\u0027\" program=ghalint version= workflow_file_path=.github/workflows/release.yaml\nERRO[0000] github.token should not be set to workflow\u0027s env env_name=GITHUB_TOKEN policy_name=workflow_secrets program=ghalint version= workflow_file_path=.github/workflows/test.yaml\nERRO[0000] secret should not be set to workflow\u0027s env env_name=DATADOG_API_KEY policy_name=workflow_secrets program=ghalint version= workflow_file_path=.github/workflows/test.yaml\n```\n\nghalint is a command line tool to check GitHub Actions Workflows and action.yaml for security policy compliance.\n\n## :bulb: We\u0027ve ported ghalint to lintnet module\n\n- https://lintnet.github.io/\n- https://github.com/lintnet-modules/ghalint\n\nlintnet is a general purpose linter powered by Jsonnet.\nWe\u0027ve ported ghalint to [the lintnet module](https://github.com/lintnet-modules/ghalint), so you can migrate ghalint to lintnet!\n\n## Policies\n\n### 1. Workflow Policies\n\n1. [job_permissions](docs/policies/001.md): All jobs should have `permissions`\n1. [deny_read_all_permission](docs/policies/002.md): `read-all` permission should not be used\n1. [deny_write_all_permission](docs/policies/003.md): `write-all` permission should not be used\n1. [deny_inherit_secrets](docs/policies/004.md): `secrets: inherit` should not be used\n1. [workflow_secrets](docs/policies/005.md): Workflow should not set secrets to environment variables\n1. [job_secrets](docs/policies/006.md): Job should not set secrets to environment variables\n1. [deny_job_container_latest_image](docs/policies/007.md): Job\u0027s container image tag should not be `l",
"github_repo": "suzuki-shunsuke/ghalint",
"github_stars": 248,
"github_topics": [
"cli",
"github-actions",
"linter",
"oss",
"security"
],
"homepage": "https://github.com/suzuki-shunsuke/ghalint",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 28,
"installs_365d": 1107,
"installs_90d": 219,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "MIT",
"llm_generated_at": null,
"llm_model": null,
"name": "ghalint",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 6000,
"rank_365d": 3672,
"rank_90d": 4033,
"raw_hash": "b3723cf6f2ee7d25",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/g/ghalint.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": "HEAD",
"version_stable": "1.5.6",
"versioned_formulae": [],
"why_use_this": null
}