gh-issue-validator
gh-issue-validator is a customizable "linter" for issues in a GitHub repository.
It ensures issues conform to a specified format.
When an issue doesn't conform to the desired format, a bot will post a comment including all errors found.
Installation
You typically wouldn't install this package on your local machine. It expects to be used in GitHub Actions.
Usage
gh-issue-validator allows you to use first-party checks or custom checks.
The following example uses some of the included first-party checks:
from gh_issue_validator import validate
from gh_issue_validator.checks.headings import CheckMissingHeadings, HeadingRequirement
HEADING_REQUIREMENTS =[
{"heading": "Problem statement", "min_words": 10},
{"heading": "Proposed solution", "min_words": 5, "max_words": 100},
]
validate(checks=[
CheckMissingHeadings(requirements=HEADING_REQUIREMENTS),
CheckWordCount(requirements=HEADING_REQUIREMENTS),
])
If the file above lives at .github/issue_validator.py, you can write a GitHub Actions
workflow like so to run it:
on:
issues:
types:
- "opened"
- "edited"
- "labeled"
- "unlabeled"
jobs:
validate:
# Filter for only issues labeled as "initiative"
if: "contains(github.event.issue.labels.*.name, 'initiative')"
runs-on: "ubuntu-latest"
permissions:
issues: "write"
steps:
- uses: "actions/checkout@v4"
- uses: "astral-sh/setup-uv@v5"
- run: "uv run .github/issue_validator.py"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
GITHUB_ISSUE_NUMBER: "${{ github.event.issue.number }}"
Check out our quickstart documentation for full usage instructions, including defining custom checks!
See the API documentation for full descriptions of the toolkit.
Development
Please see our contributor guide to get started with development.
Acknowledgement
This validator is inspired by the https://github.com/2i2c-org/initiatives project.
Metadata
Release files for gh-issue-validator 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gh_issue_validator-0.0.3.tar.gz | 80.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gh_issue_validator-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 90.9 kB
Release files / gh_issue_validator-0.0.3.tar.gz
| Download URL | gh_issue_validator-0.0.3.tar.gz |
|---|---|
| Size | 80.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad1c595ab25a90db750684dbe938cccc718fbcafb7c251e1d31ed64b58f6b292
|
|
BLAKE2b-256 checksum How to use checksums |
bde810a6f21d04ab80550f7a0476059da1af798dde7421e06913f698e8d7da05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.
Transparency logRelease files / gh_issue_validator-0.0.3-py3-none-any.whl
| Download URL | gh_issue_validator-0.0.3-py3-none-any.whl |
|---|---|
| Size | 10.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5d933b3dbcfc102ead1d1b4706dfd6daba4ee5b05cc5c90f29889701b7984d71
|
|
BLAKE2b-256 checksum How to use checksums |
c1971997193406c39d1e07ba848433cb608d457943af2dd62a450ba14f5a3208
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.
Transparency log