Skip to main content

Project: License

Package: PyPI - Python Version PyPI - Version PyPI - Downloads

Development: uv ruff ty pytest CI Code Coverage GitHub commit activity

Contents

Overview

RepoAuditorWeb audits GitHub repositories for best practices. Each requirement explains why it matters, and each failure includes step-by-step instructions for resolving it.

Requirements are grouped into modules:

Module Description Requirements Included by Default
GitHub Repository settings, rulesets, and branch protection. 43 No
CommunityStandards Files in GitHub's community profile checklist, such as README, CODE_OF_CONDUCT, CONTRIBUTING, LICENSE, SECURITY, issue templates, and pull request templates. 7 No
ScientificSoftware Files expected of scientific software, such as CITATION.cff. 1 No

Every requirement has a default that can be customized or skipped, so the audit can be tailored to the conventions of a team or organization. Additional modules can be defined in separate packages; see Custom Modules.

How to use RepoAuditorWeb

Run repoauditorweb to open the web experience, where modules and requirements are configured before the audit is executed:

uvx repoauditorweb --url https://github.com/<owner>/<repo> --GitHub-include --CommunityStandards-include

Customizing the audit in the web experience

Click Execute to run the audit. The results summarize the outcome of each requirement and, for each failure, describe how to resolve it and the rationale behind the requirement's default:

Results for a repository that does not satisfy the requirements

Experiences

Select the experience with --experience:

Experience Description
web (default) Opens a window to configure and execute the audit.
tui Configures and executes the audit within the terminal.
console Executes the audit and writes the results to the terminal.
json Executes the audit and writes the results to stdout as JSON; status information is written to stderr.

--execute runs the audit immediately in the web and tui experiences.

Options

Every module and requirement contributes command line options; run repoauditorweb --help for the complete list. Common options include:

Option Description
--url The GitHub repository to audit; applied to every included module.
--pat A GitHub Personal Access Token (PAT), or the path to a file containing one. Some requirements can only be evaluated with a PAT; see PAT Permissions.
--branch The branch to evaluate; the default branch is used if not specified.
--<Module>-include Include a module in the audit.
--<Module>-<Requirement>-skip Skip a requirement.
--evaluate-all Evaluate requirements that would otherwise be suppressed because a parent setting is not enabled.
--no-resolution, --no-rationale Omit resolutions or rationales from the results.

--url, --pat, and --branch can also be provided through the environment variables REPO_AUDITOR_WEB_GITHUB_URL, REPO_AUDITOR_WEB_GITHUB_PAT, and REPO_AUDITOR_WEB_GITHUB_BRANCH.

PAT Permissions

A GitHub Personal Access Token (PAT) is not required to audit public repositories, but GitHub only reports some settings to callers with elevated access. Requirements that cannot see a setting produce a warning without a PAT, and an error when the PAT lacks the necessary permissions.

Module Data Fine-grained token permission Repository role
CommunityStandards, ScientificSoftware Repository contents (private repositories only) Contents: Read Read
GitHub Repository, branch, and ruleset information Metadata: Read Read
GitHub Merge, auto-merge, branch deletion, and commit message settings Contents: Read and write Write
GitHub Secret protection, push protection, and Dependabot security updates Administration: Read Admin
GitHub Classic branch protection rules Administration: Read Admin

A fine-grained token must also list the audited repository among those it can access. A classic token requires the repo scope; the token's owner must still hold the repository role listed above.

Configuration Files

--config loads option values from a YAML file, so that an audit configuration can be stored and shared. Keys are the option names without the leading --, with - replaced by _. Values provided on the command line take precedence over values in the file.

url: https://github.com/<owner>/<repo>
GitHub_include: true
GitHub_team_size: large
GitHub_DefaultBranch_value: [main, master]
CommunityStandards_include: true
uvx repoauditorweb --config audit.yaml

Installation

Installation Method Command
Via uv uv add RepoAuditorWeb
Via pip pip install RepoAuditorWeb

Installation is not necessary when using uvx, which downloads and runs RepoAuditorWeb in a temporary environment. Once installed, run repoauditorweb directly.

Verifying Signed Artifacts

Artifacts are signed and verified using py-minisign and the public key in the file ./minisign_key.pub.

To verify that an artifact is valid, visit the latest release and download the .minisign signature file that corresponds to the artifact, then run the following command, replacing <filename> with the name of the artifact to be verified:

uv run --with py-minisign python -c "import minisign; minisign.PublicKey.from_file('minisign_key.pub').verify_file('<filename>'); print('The file has been verified.')"

Development

Please visit Contributing and Development for information on contributing to this project.

Additional Information

Additional information can be found at these locations.

Title Document Description
Code of Conduct CODE_OF_CONDUCT.md Information about the norms, rules, and responsibilities we adhere to when participating in this open source community.
Contributing CONTRIBUTING.md Information about contributing to this project.
Custom Modules docs/custom_modules.md Information about defining custom modules in separate packages.
Development DEVELOPMENT.md Information about development activities involved in making changes to this project.
Governance GOVERNANCE.md Information about how this project is governed.
Maintainers MAINTAINERS.md Information about individuals who maintain this project.
Security SECURITY.md Information about how to privately report security issues associated with this project.

License

RepoAuditorWeb is licensed under the MIT license.

Metadata

Release files for repoauditorweb 0.64.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repoauditorweb 0.64.5
File Size Uploaded
repoauditorweb-0.64.5.tar.gz 155.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for repoauditorweb 0.64.5
File Interpreter ABI Platform
repoauditorweb-0.64.5-py3-none-any.whl Python 3 none any Details

Total release size: 404.1 kB

Release files / repoauditorweb-0.64.5.tar.gz

Download URL repoauditorweb-0.64.5.tar.gz
Size 155.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3785286112390eb27d534d1abeccda1d0855974be6b71de4d5aace3430834fe1
BLAKE2b-256 checksum
How to use checksums
877911c00381798a84cc147ba6d6e324bf9d45d2985ede83aca00e24b93a5204
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / repoauditorweb-0.64.5-py3-none-any.whl

Download URL repoauditorweb-0.64.5-py3-none-any.whl
Size 249.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3c696c4c123d5c87bafc3a2ee32ac1e314c70fa4146e729e74e7ea61bbc04e40
BLAKE2b-256 checksum
How to use checksums
33c65a4e6f5c0ba5528d8413931459caf84975f09fdfda2440698fab76375f79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.71.2

2 release files

0.71.1

2 release files

0.71.0

2 release files

0.70.1

2 release files

0.70.0

2 release files

0.69.1

2 release files

0.69.0

2 release files

0.68.1

2 release files

0.68.0

2 release files

0.67.1

2 release files

0.67.0

2 release files

0.66.1

2 release files

0.66.0

2 release files

0.65.1

2 release files

This release

0.64.5 This release

2 release files

0.54.0

2 release files

0.53.0

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.50.1

2 release files

0.50.0

2 release files

0.49.1

2 release files

0.49.0

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.0

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.43.0

2 release files

0.42.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page