Triage and Remediation
- Remediation
Remediation
Using Console
Using Console
In GitHub, “Org plan limit” typically means you’re trying to do something that exceeds what your current organization plan allows (seats, repos, SAML/SSO, code security, etc.). Remediation is done via the GitHub web console.Below are step‑by‑step options to fix it, depending on what’s being blocked.
If you can share the exact text of the “Org Plan Limit” error or a screenshot (with sensitive data redacted), I can give you a precise, click‑by‑click remediation for that specific IAM operation in the GitHub console.
1. Identify exactly what limit you’ve hit
- Sign in to GitHub.
-
Open your organization:
- Top‑right profile icon → Your organizations → click the org.
-
Check the banner or error:
- Try to repeat the action that failed (e.g., add a member, enable a feature).
- GitHub usually shows a message like:
- “You have reached the maximum number of members for your plan”
- “This feature is available on GitHub Enterprise plan”
- “You have reached the limit for private repositories”
-
In the org:
- Go to Settings (left sidebar).
- Under Billing & plans, open:
- Plans and usage and
- Billing
- Review:
- Seats used vs seats available
- Repositories limits (if applicable)
- Whether the blocked feature requires a higher plan
2. Remediate by upgrading the organization plan
If the error indicates you’ve reached a feature/seat limit that only a higher plan supports:- In the organization:
- Go to Settings → Billing & plans → Plans and usage.
- Click Change plan or Upgrade.
- Compare plans and pick one that removes the specific limit:
- Often GitHub Enterprise Cloud is required for advanced IAM/SSO features.
- Confirm billing details and apply the upgrade.
3. Remediate by freeing up seats (members limit)
If you hit a member/seat limit and don’t want to upgrade:- In the organization:
- People (left sidebar).
- Remove inactive or unneeded members:
- Click a member → … → Remove from organization.
- Or downgrade outside collaborators:
- Go to Settings → Outside collaborators.
- Remove collaborators or limit their repo access to free capacity.
- Once seats are freed, reattempt the IAM action (add user, modify team, etc.).
4. Remediate by reducing private repositories (if repo limit)
If the limit is around private repos in your plan:- In the org:
- Click Repositories.
- Sort/filter to find unused internal/private repos.
- For each:
- Open the repo → Settings → scroll down to Danger Zone → Delete this repository (or Archive if deletion isn’t required but you just want to stay under soft guidance).
- Retry the action that triggered the limit.
5. Remediate for IAM/SSO features restricted by plan
If you’re configuring SAML SSO, SCIM, or advanced IAM that requires Enterprise:- Confirm the feature requires GitHub Enterprise Cloud:
- In org Settings → Security (e.g., SAML single sign‑on).
- Banner will usually say it’s only available on Enterprise.
- If you need it:
- Follow step 2 to upgrade the plan.
- After upgrade:
- Re-open Settings → Security → set up SAML / SCIM / OIDC as needed.
6. Governance step (to prevent re‑hitting the limit)
- In org Settings → Billing & plans → Plans and usage:
- Periodically review usage.
- Establish internal policy:
- Require removing users who no longer need access.
- Regular cleanup of dormant repos.
- If growth is predictable, choose a plan that matches expected user and repo counts.
If you can share the exact text of the “Org Plan Limit” error or a screenshot (with sensitive data redacted), I can give you a precise, click‑by‑click remediation for that specific IAM operation in the GitHub console.
Using CLI
Using CLI
For the specific “Org Plan Limit” issue in GitHub, there is no remediation you can perform via GitHub CLI, because:
- “Org Plan Limit” is a billing/plan constraint (e.g., number of seats, features, storage, minutes), not an IAM permission or configuration setting.
- The GitHub CLI (
gh) does not expose any commands to change billing, subscription, or plan type for an organization.
What you can do (indirectly) via CLI
Depending on what is hitting the plan limit, you can usegh to reduce usage so you’re under the current plan’s caps:- List and remove unneeded organization members
- List and archive/delete unused repositories
How to actually remediate the “Org Plan Limit”
This must be done in the GitHub web UI (not viagh):- Sign in as an organization owner.
- Go to:
https://github.com/organizations/ORG_NAME/settings/billing - Review what limit is being hit (seats, storage, Actions minutes, etc.).
- Choose one:
- Upgrade your plan (e.g., to Team or Enterprise) or add more seats/minutes/storage.
- Or reduce usage (members, private repos, Actions minutes, packages storage).
gh commands to reduce whatever is exceeding the limit, but the actual plan change cannot be automated with GitHub CLI.Using Python
Using Python
In GitHub you cannot “fix” an
Use that message to understand which org plan limit you’re hitting (members/seats, repos, private repos, Actions, Codespaces, etc.).
Review the list manually first.This frees seats so new members can be added without hitting the plan limit.
Then archive or delete selected repos:Archiving or deleting old private repos brings you under private-repo limits.
If you paste the exact API error message you’re seeing (with the
Org plan limit error purely with IAM or Python – it’s a hard SaaS quota. What you can do with Python is:- Detect which limit you’re hitting
- Clean up / downsize usage (members, repos, seats, actions minutes, etc.) so you fall back under the plan limit
1. Identify the exact error / limit
When you hit plan limits via API you’ll typically see:- HTTP 403 with a message like
org plan limit reachedor similar - Response body with a more specific message (e.g., seats, repos, private repos, etc.)
2. General remediation strategy
For any org plan limit, you have only two levers:- Upgrade the GitHub plan (Org / Enterprise settings → Billing)
- Reduce usage of the constrained resource with Python automation (members, repos, runners, etc.)
3. Example: Hit “member/seat” limit – auto-remove inactive members
If the message indicates you’re out of seats/members, remove inactive members or convert them to outside collaborators.3.1 Install PyGithub
3.2 Script: list members & last activity
3.3 Script: remove selected inactive members
4. Example: Hit “private repo” limit – clean up old private repos
5. Example: Hit GitHub Actions minutes / storage limits
You cannot exceed the quota without upgrading; you can only:- Disable Actions for some repos
- Limit usage via org policies
6. IAM angle: enforce limits programmatically
You can create your own “soft IAM policy” layer in Python that:- Checks org usage before adding members / creating repos
- Refuses operations that would hit the plan limit
7. When you must upgrade
If:- You’ve already removed inactive accounts/repositories and
- You still need more seats, private repos, Actions minutes, or other features
If you paste the exact API error message you’re seeing (with the
org plan limit text), I can give you a tighter Python script tailored to that specific limit (members vs private repos vs Actions, etc.).Using Terraform
Using Terraform
Terraform cannot remediate GitHub organization seat limits or payment plans.The fixes for this finding are:
- Remove unused members from the organization via the GitHub UI or API (e.g., Organization Settings → People, or the REST API to remove members), and/or
- Upgrade the organization’s GitHub plan / licensed seats via GitHub Billing settings.
integrations/github provider, so no valid Terraform configuration can implement the recommended remediation.
