Skip to main content

GitHub audit, governance, and inventory for organizations

Project description

gh-audit

GitHub audit, governance, and inventory for organizations.

gh-audit produces a comprehensive inventory of your GitHub organization -- repositories, members, Actions workflows, security posture, packages, and projects -- and generates JSON, HTML, and Excel reports. It supports standard (fast) and deep (thorough) scan profiles, multi-organization scanning via YAML config, and both PAT and GitHub App authentication.

A free tool by N8 Group -- DevOps Transformation. Executed with Precision.

Installation

pip (Python 3.11+)

pip install gh-audit
gh-audit --version

Homebrew (macOS / Linux)

brew tap n8group-oss/tap
brew install gh-audit

Chocolatey (Windows)

choco install gh-audit

New Chocolatey packages can take time to appear publicly while community moderation completes. If gh-audit is not visible yet, download the .nupkg asset from GitHub Releases and install it from the folder where you saved it:

choco install gh-audit --source="'C:\path\to\package-folder'"

Direct download

Download standalone binaries, checksums, and release artifacts from GitHub Releases. Standalone executables are available for Linux (amd64), macOS (amd64, arm64), and Windows (amd64).

Quick Start

Single organization (PAT)

gh-audit discover --organization myorg --token ghp_xxxxx

Single organization (GitHub App -- recommended)

gh-audit discover \
  --organization myorg \
  --app-id 12345 \
  --private-key-path /path/to/key.pem \
  --installation-id 67890

Multi-organization (config file)

gh-audit discover --config gh-audit.yml --output-dir ./results

See examples/gh-audit.yml for the config format.

Interactive setup

gh-audit init

Creates a .env file with your credentials. Then run:

gh-audit discover

Scan Profiles

Profile Default What it does
standard Yes Repository metadata, PR/issue/branch counts, workflow listing, security feature status, users, packages, projects
deep No Everything in standard + recursive tree walk (large file detection), workflow YAML parsing (action usage, self-hosted runners), exact security alert counts
gh-audit discover --organization myorg --token ghp_xxx --scan-profile deep

Individual deep features can be toggled independently:

gh-audit discover --organization myorg --token ghp_xxx \
  --scan-large-files \
  --scan-workflow-contents \
  --security-alert-counts

Output

Every scan produces three artifacts:

Format File Purpose
JSON {org}-inventory.json Machine-readable inventory
HTML {org}-report.html Self-contained visual report (offline, no CDN)
Excel {org}-inventory.xlsx 10-sheet workbook for analysis and sharing

Regenerate reports from an existing inventory:

gh-audit report --inventory myorg-inventory.json

Authentication

Personal Access Token (PAT)

Required scopes (classic): repo, read:org, read:packages, read:project, security_events

Set via CLI flag, environment variable, or .env file:

export GH_AUDIT_TOKEN=ghp_xxxxx
export GH_AUDIT_ORGANIZATION=myorg

GitHub App (recommended)

Better rate limits (15,000 req/hr vs 5,000) and org-level permissions.

Required permissions: Repository metadata (read), Organization members (read), Actions (read), Packages (read), Security events (read).

export GH_AUDIT_APP_ID=12345
export GH_AUDIT_PRIVATE_KEY_PATH=/path/to/key.pem
export GH_AUDIT_INSTALLATION_ID=67890
export GH_AUDIT_ORGANIZATION=myorg

GitHub Enterprise Server

export GH_AUDIT_API_URL=https://github.mycompany.com/api/v3

Multi-Organization Config

Scan multiple organizations with different credentials in one run:

defaults:
  scan_profile: standard
  concurrency: 8

organizations:
  - name: org-one
    token: ${GH_TOKEN_ORG_ONE}

  - name: org-two
    app_id: 12345
    private_key_path: /path/to/key.pem
    installation_id: 67890
    scan_profile: deep
gh-audit discover --config gh-audit.yml --output-dir ./results

Each organization gets its own output directory. A cross-org summary (summary.json + summary.html) is generated at the root.

License

Business Source License 1.1 -- free to use for internal purposes. See LICENSE for full terms.

Contact

N8 Group -- European leader in AI-powered DevOps solutions.

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_audit-0.1.3.tar.gz (194.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_audit-0.1.3-py3-none-any.whl (108.6 kB view details)

Uploaded Python 3

File details

Details for the file gh_audit-0.1.3.tar.gz.

File metadata

  • Download URL: gh_audit-0.1.3.tar.gz
  • Upload date:
  • Size: 194.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gh_audit-0.1.3.tar.gz
Algorithm Hash digest
SHA256 cee84fa3ad80e0811132f61427bf72b851d79c3fe0c018865f54b06a98281802
MD5 f16dfefe572bf4dd17cbb7be72883b7f
BLAKE2b-256 abe5bf8224355000bbd0db9ee7a0acd47efbd5b5f66f2d33a10106958c735f60

See more details on using hashes here.

Provenance

The following attestation bundles were made for gh_audit-0.1.3.tar.gz:

Publisher: release.yml on n8group-oss/gh-audit

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_audit-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: gh_audit-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 108.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gh_audit-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9d408ade10c6f8012f9f199b140e766f98f897fd003b2f66dc27e6676f4151e8
MD5 c42a94da4a4bf1386b5422ec669560d4
BLAKE2b-256 40fdc132738afbebd9cff4405198b3760180027618bd56e3e85e47646342b35d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gh_audit-0.1.3-py3-none-any.whl:

Publisher: release.yml on n8group-oss/gh-audit

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