REPOMATIC-LINT-REPO(1) REPOMATIC-LINT-REPO(1)

repomatic lint-repo - Check repository files against repomatic conventions

repomatic lint-repo [OPTIONS]

Run consistency checks on repository metadata.

Reads package_name, is_sphinx, and project_description from pyproject.toml in the current directory.

Checks:

- Package name vs repository name (warning).
- Website field set for Sphinx projects, and matching the documentation
URL declared in [project.urls] (warning).
- Repository description matches project description (error).
- Inline upstream pins match the version the uses: refs name (error).
- Inline upstream pins resolving under a cooldown carry their
--exclude-newer-package exemption (error).
- Workflows only ask repomatic show-metadata for keys it still emits (error).
- Every astral-sh/setup-uv step pins one uv version (warning).
- The pinned uv carries a checksum in the pinned astral-sh/setup-uv
(warning).
- GitHub topics subset of pyproject.toml keywords (warning).
- Funding file present when owner has GitHub Sponsors (warning).
- Stale draft releases (non-.dev0 drafts) (warning).
- Install guide download URLs resolve to real release assets (warning).
- Repository-local PR body templates sit in .github/pr-templates/
and carry valid frontmatter (warning).
- Fork PR workflow approval policy strict enough (warning).
- VIRUSTOTAL_API_KEY secret missing when Nuitka is active (warning).
- REPOMATIC_NOTIFICATIONS_PAT secret missing when the unsubscribe
workflow is enabled (warning).
- CLOUDFLARE_API_TOKEN secret missing when site.deploy targets
Cloudflare Pages (warning).
- Legacy github.io URLs still redirect, for a project that moved its
site to Cloudflare Pages (warning).
- Committed _redirects files survive the Cloudflare Pages engine:
no dropped rules, no silent budget abort (error).
- wrangler.toml agrees with the declared Cloudflare project name and
compatibility date (warning).

When a PAT is detected, additional capability checks are run:

- Contents permission (error).
- Issues permission (error).
- Pull requests permission (error).
- Dependabot alerts permission and alerts enabled (error).
- Workflows permission (error).

Repository name. Defaults to $GITHUB_REPOSITORY name component.
Repository in 'owner/repo' format. Defaults to $GITHUB_REPOSITORY.
Whether CLOUDFLARE_API_TOKEN is configured.
Whether REPOMATIC_NOTIFICATIONS_PAT is configured.
Whether REPOMATIC_PAT is configured, enabling the PAT capability checks. Auto-detected from the REPOMATIC_PAT environment variable when omitted.
Whether VIRUSTOTAL_API_KEY is configured.
Show this message and exit.

Repository name. Defaults to $GITHUB_REPOSITORY name component.
Repository in 'owner/repo' format. Defaults to $GITHUB_REPOSITORY.
Repository in 'owner/repo' format. Defaults to $GITHUB_REPOSITORY.
Whether CLOUDFLARE_API_TOKEN is configured.
Whether CLOUDFLARE_API_TOKEN is configured.
Whether REPOMATIC_NOTIFICATIONS_PAT is configured.
Whether REPOMATIC_NOTIFICATIONS_PAT is configured.
Whether REPOMATIC_PAT is configured, enabling the PAT capability checks. Auto-detected from the REPOMATIC_PAT environment variable when omitted.
Whether VIRUSTOTAL_API_KEY is configured.
Whether VIRUSTOTAL_API_KEY is configured.
Show this message and exit.

0
Success.
1
A runtime error, or an aborted prompt (Ctrl-C, a declined confirmation).
2
A usage error: unknown option, invalid value, missing operand, or an unparsable configuration file.

In GitHub Actions (reads pyproject.toml automatically)

repomatic lint\-repo \-\-repo\-name my\-package

Local run (derives repo from $GITHUB_REPOSITORY or --repo)

repomatic lint\-repo \-\-repo owner/repo

With PAT capability checks

repomatic lint\-repo \-\-has\-pat

Kevin Deldycke

2026-09-14 7.15.1.dev0