🤖 Github
Issue Templates
Form templates have been included for common GitHub issues: Bug Reports, Feature Requests, General Feedback, and Documentation.
All of these can be found in the .github/ISSUE_TEMPLATE/ folder. They use the modern YAML form format, so contributors get structured forms with required fields out of the box. A pull request template is also included at .github/pull_request_template.md.
Dependabot
Dependabot provides automatic security and version updates, along with dependency alerts, to keep your app secure and up-to-date.
Dependabot is configured to do weekly scans of your Python dependencies (via the uv ecosystem) and your Docker base images. PRs are grouped and prefixed with deps / docker. These settings can be adjusted in the .github/dependabot.yml file.
Setup Guide
To setup Dependabot scans for your project follow these steps:
- Go to the "Settings -> Code security and analysis" tab in your repository.
- Under the "Dependabot" section enable the options you want to monitor, we recommend "Dependabot security updates" at the minimum.
Pull Request Title Enforcement
action-semantic-pull-request makes sure every pull request to your repo is prefixed with a proper type: feat, fix, docs, style, refactor, perf, test, build, ci, revert, deps — the same convention python-semantic-release uses to derive versions. The settings for this action can be found in .github/workflows/pull-request.yml.
CI Pipeline
Every push and pull request runs the CI workflow (.github/workflows/pull-request.yml), which checks:
- PR title follows Conventional Commits
- Ruff linting (
ruff check) and formatting (ruff format --check) - Type checking with ty
- Tests with pytest across Python 3.13 and 3.14, plus a 100% coverage gate
- Dependency vulnerability scan with
uv audit - Workflow security audit with zizmor
Pre Commit Hooks
Pre commit hooks are included in the .pre-commit-config.yaml file, these are scripts that run before your git commit to ensure code quality, security, and standards are enforced before they get committed to your repo.
GitHub
The included GitHub Pre Commit Hooks ensure valid config files, some simple formatting clean up, and any potential conflicts.
hooks:
- id: check-case-conflict
- id: check-merge-conflict
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-yaml
- id: check-toml
- id: check-json
Ruff
Ruff has their own pre commit hooks we've included, to enforce formatting consistency on every commit.
hooks:
- id: ruff-check
args: [--fix, --config, pyproject.toml]
- id: ruff-format
args: [--config, pyproject.toml]
Codespell
codespell catches common spelling mistakes in your code, comments, and docs before they land.
hooks:
- id: codespell
args: ["--skip=uv.lock,CHANGELOG.md"]
uv-lock
The uv pre-commit hooks keep your uv.lock file in sync with pyproject.toml by failing the commit if the lockfile is out of date.
hooks:
- id: uv-lock
actionlint
actionlint lints your GitHub Actions workflows, catching misconfigurations and expression errors.
hooks:
- id: actionlint