Skip to main content

Validate (lint) GitHub issues.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gh_issue_validator-0.0.3.tar.gz (80.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gh_issue_validator-0.0.3-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file gh_issue_validator-0.0.3.tar.gz.

File metadata

  • Download URL: gh_issue_validator-0.0.3.tar.gz
  • Upload date:
  • Size: 80.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for gh_issue_validator-0.0.3.tar.gz
Algorithm Hash digest
SHA256 ad1c595ab25a90db750684dbe938cccc718fbcafb7c251e1d31ed64b58f6b292
MD5 10236af47e2856d2880be1fedcb370da
BLAKE2b-256 bde810a6f21d04ab80550f7a0476059da1af798dde7421e06913f698e8d7da05

See more details on using hashes here.

Provenance

The following attestation bundles were made for gh_issue_validator-0.0.3.tar.gz:

Publisher: publish.yml on mfisher87/gh-issue-validator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gh_issue_validator-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for gh_issue_validator-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5d933b3dbcfc102ead1d1b4706dfd6daba4ee5b05cc5c90f29889701b7984d71
MD5 4a50d709f634c092789dabf8d51fa5a8
BLAKE2b-256 c1971997193406c39d1e07ba848433cb608d457943af2dd62a450ba14f5a3208

See more details on using hashes here.

Provenance

The following attestation bundles were made for gh_issue_validator-0.0.3-py3-none-any.whl:

Publisher: publish.yml on mfisher87/gh-issue-validator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page