Skip to content

Commit 7bce51d

Browse files
committed
docs: polish public project surface
- replace placeholder README badges with live public status badges - refresh release and workflow docs for active PyPI publishing - tighten contributor and security guidance for public users Tests: ruff check src/ tests/; python3 -m pytest tests/test_distribution_policy.py -q -p no:cacheprovider; python3 -m pytest -q -p no:cacheprovider
1 parent de83c3b commit 7bce51d

8 files changed

Lines changed: 45 additions & 21 deletions

File tree

.github/workflows/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ environment `pypi`.
3535

3636
## `audit.yml` — Manual Automated Audit
3737

38-
Runs manually via `workflow_dispatch`. The automatic weekly schedule is disabled while the repository remains private to avoid recurring GitHub Actions billing.
38+
Runs manually via `workflow_dispatch`. No automatic weekly schedule is enabled; this
39+
keeps public CI usage intentional and avoids opening or updating scheduled handoff
40+
issues unless an operator starts the workflow.
3941

4042
Steps:
4143
1. Install the package with config support.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
88
## [Unreleased]
99

1010
### Changed
11+
- Replaced placeholder README badges with live CI, PyPI, release, Python, and
12+
license badges for the public repository.
13+
- Refreshed public contributor, security, release-gate, and workflow docs now
14+
that PyPI publishing is active.
1115
- Updated public install documentation now that `github-repo-auditor` is live on
1216
PyPI.
1317
- Added a manual PyPI Trusted Publishing workflow that builds a release tag and

CONTRIBUTING.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Thank you for your interest in contributing. This guide covers how to set up a l
55
## Prerequisites
66

77
- **Python 3.11 or later** — the codebase uses `match` statements, `X | Y` union syntax, and other 3.11+ features.
8-
- **A GitHub Personal Access Token**required to audit private repos and avoid rate limits. Create one at <https://github.com/settings/tokens> with `repo` and `read:org` scopes.
8+
- **A GitHub Personal Access Token**optional for public-only audits, but useful for private repos, organization metadata, and higher rate limits. Create one at <https://github.com/settings/tokens> with the narrowest scopes needed for the audit you plan to run.
99
- **Git** — standard installation, used for shallow cloning during audits.
1010

1111
## Local Setup
@@ -18,15 +18,15 @@ cd GithubRepoAuditor
1818
# Install all runtime + dev dependencies
1919
make install-dev
2020

21-
# Copy the environment template and fill in your token
21+
# Copy the environment template if you need authenticated audit runs
2222
cp .env.example .env
23-
# Edit .env — at minimum set GITHUB_TOKEN=<your token>
23+
# Edit .env and set GITHUB_TOKEN=<your token>
2424
```
2525

2626
If you do not use `make`, the equivalent pip command is:
2727

2828
```bash
29-
python3 -m pip install -r requirements.txt pytest ruff mypy
29+
python3 -m pip install -e ".[dev,config]"
3030
```
3131

3232
## Running Tests
@@ -171,4 +171,4 @@ Before opening a PR, verify:
171171

172172
## Questions
173173

174-
Open an issue or start a discussion on GitHub. Please include the output of `python3 -m src.cli --help` and your Python version (`python3 --version`) when reporting bugs.
174+
Open an issue on GitHub. Please include the output of `audit --help` and your Python version (`python3 --version`) when reporting bugs.

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# GitHub Repo Auditor
22

3-
[![Python](https://img.shields.io/badge/Python-%233776ab?style=flat-square&logo=python)](#) [![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](#) [![Tests](https://img.shields.io/badge/tests-covered-brightgreen?style=flat-square)](#)
3+
[![CI](https://github.com/saagpatel/GithubRepoAuditor/actions/workflows/ci.yml/badge.svg)](https://github.com/saagpatel/GithubRepoAuditor/actions/workflows/ci.yml)
4+
[![PyPI](https://img.shields.io/pypi/v/github-repo-auditor.svg)](https://pypi.org/project/github-repo-auditor/)
5+
[![Python](https://img.shields.io/pypi/pyversions/github-repo-auditor.svg)](https://pypi.org/project/github-repo-auditor/)
6+
[![Release](https://img.shields.io/github/v/release/saagpatel/GithubRepoAuditor?display_name=tag)](https://github.com/saagpatel/GithubRepoAuditor/releases/latest)
7+
[![License](https://img.shields.io/github/license/saagpatel/GithubRepoAuditor.svg)](LICENSE)
48

59
> Know the truth about every project you've ever started — because `git log` across 100 repos doesn't tell you which ones are worth finishing.
610
@@ -112,6 +116,8 @@ Treat campaign/writeback, GitHub Projects, Notion sync, catalog overrides, score
112116
- Release gates: [docs/release-gates.md](docs/release-gates.md)
113117
- Distribution status: [docs/distribution.md](docs/distribution.md)
114118
- Project history: [docs/project-history.md](docs/project-history.md)
119+
- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)
120+
- Security policy: [SECURITY.md](SECURITY.md)
115121

116122
## Features
117123

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ We aim to acknowledge reports within 48 hours and resolve confirmed vulnerabilit
2222
- **GitHub token handling**: tokens are passed via env var, never logged or stored on disk
2323
- **Notion API token**: same handling as above
2424
- **Subprocess git clone**: uses authenticated URLs that are cleaned from env after use
25-
- **Output files**: reports written to local directory only
25+
- **Output files**: reports are written to the local `output/` directory only

docs/audit-serve.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,16 @@ The web UI dependencies are in the `[serve]` extra and are not installed by defa
1414
# editable / dev install
1515
pip install -e '.[serve]'
1616

17-
# or via uv tool from the public GitHub source
17+
# from PyPI
18+
pip install 'github-repo-auditor[serve]'
19+
20+
# or via pipx from PyPI
21+
pipx install 'github-repo-auditor[serve]'
22+
23+
# or via uv tool from the public GitHub source for unreleased code
1824
uv tool install 'git+https://github.com/saagpatel/GithubRepoAuditor.git#egg=github-repo-auditor[serve]'
1925

20-
# or via pipx from the public GitHub source
26+
# or via pipx from the public GitHub source for unreleased code
2127
pipx install 'git+https://github.com/saagpatel/GithubRepoAuditor.git#egg=github-repo-auditor[serve]'
2228
```
2329

docs/release-gates.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -153,19 +153,20 @@ All three must pass before tagging:
153153
and non-PEP 440 tag suffixes can break the release build.
154154
- Public hardening releases should use patch versions (`v0.1.x`). Feature releases
155155
should move the minor version (`v0.2.0`, `v0.3.0`, and so on).
156-
- PyPI upload is explicit opt-in and not part of the current public install story.
157-
`scripts/release.sh` builds and checks artifacts by default; it uploads only when
158-
run as `scripts/release.sh --publish-pypi` with valid credentials. CI only checks
159-
and uploads to GitHub Releases.
160-
- After PyPI Trusted Publishing is configured, prefer the manual `Publish to PyPI`
161-
workflow over local token-based uploads. It builds the release tag in one job and
162-
publishes from a separate `pypi` environment job with `id-token: write`.
156+
- PyPI publishing is active through the manual `Publish to PyPI` workflow. Keep
157+
GitHub Releases and PyPI on the same tag for each public release.
158+
- `scripts/release.sh` builds and checks artifacts by default.
159+
`scripts/release.sh --publish-pypi` remains an explicit local fallback only;
160+
prefer Trusted Publishing over token-based local uploads.
161+
- The manual `Publish to PyPI` workflow builds the release tag in one job and
162+
publishes from a separate protected `pypi` environment job with
163+
`id-token: write`.
163164
- The `[serve]` extra is not bundled in the shiv binary by default. Users who need the
164-
web UI should install from the GitHub source with the `[serve]` extra or use a local
165-
editable clone.
165+
web UI should install `github-repo-auditor[serve]` from PyPI or use a local editable
166+
clone.
166167

167-
See [distribution.md](distribution.md) for the public distribution policy and the
168-
remaining PyPI activation checklist.
168+
See [distribution.md](distribution.md) for the public distribution policy and release
169+
checklist.
169170

170171
## Web UI Gate (scope: audit serve)
171172

tests/test_distribution_policy.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,12 @@ def test_distribution_docs_name_supported_public_channel() -> None:
3939
assert "PyPI publishing is active" in distribution_doc
4040
assert "uv tool install github-repo-auditor" in readme
4141
assert "pipx install github-repo-auditor" in readme
42+
assert "github.com/saagpatel/GithubRepoAuditor/actions/workflows/ci.yml/badge.svg" in readme
43+
assert "img.shields.io/pypi/v/github-repo-auditor.svg" in readme
4244
assert "docs/distribution.md" in readme
45+
assert "PyPI publishing is active through the manual" in release_gates
46+
assert "not part of the current public install story" not in release_gates
47+
assert "remaining PyPI activation checklist" not in release_gates
4348
assert "scripts/release.sh --publish-pypi" in release_gates
4449
assert "pypi.yml" in workflows_readme
4550
assert "id-token: write" in workflows_readme

0 commit comments

Comments
 (0)