Set up FinOpsAid — connect your GitHub org

Setup is two phases and takes about a minute. First, an organization owner adds the read-only FinOpsAid GitHub App to the org (or enterprise) you want analyzed. Then you connect that org in the app — it's validated against GitHub and your first sync starts. Everything after is served from a versioned warehouse, refreshed nightly.

100% read-only. The App requests read-only scopes only: no seat changes, no permission edits, no code pushes — and your source code is never stored. Because only Read is granted, writing back to GitHub is technically impossible.

Pricing · Home

Set up your account

Connect your org with a read-only App.

Setup is two phases. First you add our read-only GitHub App to the organization (or enterprise) you want analyzed — it's approved once by an admin. Then, in the app, you connect that org: we validate it against GitHub and start your first sync. Everything after that is served from our warehouse and refreshed nightly.

100% read-only — nothing is ever written back to GitHub

The App requests read-only scopes only: no seat changes, no permission edits, no code pushes, and your source code is never stored — we read metadata and metrics, not file contents. Because only Read is granted, writes are technically impossible, not just policy.

You'll need
An org owner (or enterprise admin) to approve access — it's an admin action on GitHub's side.
Recommended
Grant access to all repositories so Actions minutes, open PRs and community-health metrics are complete. Selected repos work too, with partial coverage.
Timing
Setup takes about a minute; the first sync runs on its own. Credit & cost metrics lag ~2–3 days by GitHub's design.

A Add the GitHub App

Approve it once on GitHub

Done by an organization owner or enterprise admin. Takes about a minute; nothing in your org is changed by adding it.

01

Open the GitHub App page

Sign in to GitHub as an organization owner (or enterprise admin) and open the App page — the exact URL and App ID are shown on the in-app connect page. Click the green Install button GitHub shows.

02

Choose the account to add it to

GitHub asks where to add it — pick the organization (or enterprise) you want analyzed. If you belong to several, choose the one whose spend you're managing. Enterprise setups let billing & Copilot usage roll up across member orgs; enterprise-only sources are skipped gracefully on a single-org setup.

03

Give it access to all repositories

Select All repositories so repository-level metrics — Actions minutes, open PRs, community health — are complete. Selected-repos works too, but coverage will be partial.

04

Review the read-only permissions & approve

GitHub shows exactly what the App can read. Every item is Read-only — there are no write scopes to approve. The full list is below.

05

Confirm — you're done

Click Install & Authorize. Access is immediate. GitHub then redirects to …/installations/<ID> — that trailing number is your Installation ID (also under Org settings → GitHub Apps → Configure). You'll need it in phase B.

Pick your plan and add its App in the next step — each plan is a separate GitHub App with its own read-only permission set.

B Connect your organization

Link the org in the app & start the first sync

On the app's connect page, the Connect your organization form ties your org to a login — validated against GitHub before anything syncs.

01

Enter your org & Installation ID

Type your GitHub organization exactly as it appears on GitHub, plus the Installation ID from phase A. An optional name/company labels the tenant.

02

Validate against GitHub

Click Validate connection. Our "check API" mints a short-lived App token and calls GET /app/installations/{id} to confirm the connection is real and belongs to the org you named. It's read-only and persists nothing. You'll see the matched account, repository access, and how many read-only scopes were granted.

03

Choose your sign-in credentials

Pick the username (3–64 characters — letters, numbers, an email, or . _ % + - @) and password (6+ characters) you'll log in with once your data is ready.

04

Connect & start the first sync

Click Connect & start first sync. We register your tenant and kick off the first sync in the background — 19 connectors across seats, billing, Actions, runners, Codespaces, storage, repos, teams & permissions into a versioned warehouse. Typical ETA is a few minutes; you can leave the page.

05

Sign in and read the meter

Your login activates the moment the first sync finishes. Log in to your executive overview, license & Codespaces waste, storage by category, forecasts and reconciliation — all served from the warehouse, refreshed nightly, and exportable to CSV, Excel, or JSON.

Loading the connect form…

The read-only contract

What it reads — and what it can never do

Permissions requested — all Read

No write, admin-write, or delete scopes are ever requested

Organization
Members · Read
Membership, roles & 2FA posture
Administration · Read
Org settings & policies (read-only)
GitHub Copilot Business · Read
Copilot seats & per-user usage metrics
Plan · Read
Plan & seat counts
Enhanced billing / usage · Read
Authoritative billed $ by product & SKU
Self-hosted runners · Read
Runner inventory & status for cost modeling
Codespaces · Read
Codespace inventory — idle & oversized detection
Repository
Metadata · Read
Repository inventory (mandatory, read-only)
Actions · Read
Workflow runs & runner-minute consumption
Pull requests · Read
Open PR counts & review activity
Administration · Read
Collaborator & access lists for governance
Contents · Read
Community-health files (README, LICENSE) — read-only

What we never do

The App has no write access — these actions are impossible

  • Add, remove, or change Copilot seats or licenses
  • Modify org, team, or repository permissions
  • Create, edit, or delete repositories, issues, or pull requests
  • Push code, trigger workflows, or start/stop runners
  • Store your source code — we read metadata & metrics, not file contents

Because only Read permissions are granted, the platform is technically incapable of the above — it isn't a policy we choose, it's what GitHub enforces from the scopes you approve. Revoke access anytime from Org settings → GitHub Apps.

Good to knowBefore the platform's App credentials are configured, connecting runs in a clearly-flagged preview mode so you can walk the whole flow without a live GitHub round-trip — nothing is really synced behind it. Once live credentials are in place, the same steps validate against GitHub and pull your real data. Prefer to look before you connect? Browse the demo dashboard →