Before inviting a contractor to a private GitHub Team repository, check the license list as well as the permission level: outside access is not a documented free-seat exemption.
Short answer: On GitHub Team, GitHub bills for "Outside collaborators on private repositories owned by your organization, excluding forks." That list does not carve out an exception by permission level, so choosing read access is an access decision, not a documented billing exemption. Each outside collaborator is counted once in the organization, and a pending invitation to a private repository (excluding forks) already counts.
Scope: This guide covers organizations on the GitHub Team plan only. GitHub Free, GitHub Enterprise Cloud (including usage-based billing), GitHub Enterprise Server, personal accounts and fork billing are outside it, and we make no claim about them. We read two public GitHub Docs pages on October 8, 2026 (00:49 KST). We did not sign in to an organization, send an invitation or look at anyone’s license count or bill. There are no prices or savings figures here.
Access level and license use are two separate questions
GitHub’s outside-collaborator page says "You can choose the level of access to grant for each outside collaborator," and, separately, "Unless you are on a free plan, adding an outside collaborator to a private repository will use one of your paid licenses." The first sentence is about what the person can do in the repository. The second is about whether they occupy a seat. Answering one does not answer the other.
The table below sorts the Team-plan cases GitHub documents. It is our summary of the official list, not a copy of any GitHub screen.
| Team-only situation | Documented license treatment | Separate access check |
|---|---|---|
| Outside collaborator on a private organization repository (excluding forks) | Counts toward your licenses | The permission level you pick stays a separate decision |
| The same outside user on several organization repositories | Counted once in the organization | Access is still granted in each repository’s settings; forks are added separately |
| Pending invitation to a private repository (excluding forks) | Counts, even before acceptance | Acceptance and access are not complete yet |
| Existing outside collaborator invited to another repository by email address | Temporarily uses an available seat until they accept; the username note covers only this temporary seat and does not waive any license they already use | Accepting the new invitation is still required for that repository |
| Pending invitation to a public organization repository | Listed as not consuming a license | Not a recommendation to make private code public |
GitHub’s Team list also names billing managers, pending billing-manager invitations and failed invitations as people who don’t consume a license, while dormant users are billed.
One person, several repositories
A common worry is that a contractor added to three private repositories costs three seats. GitHub’s wording for Team is direct: "GitHub counts each outside collaborator once, even if the user account has access to multiple repositories in your organization." The count is per person within this organization, not a per-repository multiplier. Repository access, however, is still granted in each repository’s settings, which is where GitHub’s outside-collaborator page directs you, and forks must be added separately.
Pending invitations and the email-versus-username note
On Team, GitHub bills for "Anyone with a pending invitation to become an outside collaborator on private repositories owned by your organization, excluding forks." An invitation that has not been accepted is therefore not a free waiting period.
There is one narrower rule. GitHub says that inviting an existing outside collaborator to another repository "using their email address temporarily uses an available seat, even if they already have access to other repositories," that "After they accept the invite, the seat will be freed up again," and that "Inviting them using their username does not temporarily use a seat."
Read that for what it is: a note about a temporary extra seat for someone who already has access. It does not say that inviting a new person by username is free, and it does not remove any license that person already uses for private-repository access.
A read-only worksheet before you invite
Fill this in from what you can already see, and leave a cell UNKNOWN until an organization owner confirms it. Record; don’t change anything yet.
| Check | Your value |
|---|---|
| Organization plan | UNKNOWN |
| Repository privacy and fork status | UNKNOWN |
| Invitee already counted in this organization | UNKNOWN |
| Invitation state and email-address or username method | UNKNOWN |
| Observed used and available licenses, with checked_at | UNKNOWN |
| Required repository, fork and team access, and whether 2FA is required | UNKNOWN |
If the first row is not GitHub Team, stop: the table above does not apply as written. GitHub’s Enterprise Cloud section has different pending-invitation rules; for example, "Under usage-based billing, pending invitations do not consume a license."
Access prerequisites the seat does not settle
Paying for a seat does not hand out every kind of access. GitHub’s outside-collaborator page notes three limits:
- Forks: "When you add an outside collaborator to a repository, you’ll also need to add them to any forks of the repository you’d like them to access."
- Teams: "Outside collaborators cannot be added to a team, team membership is restricted to members of the organization."
- 2FA, when required: "If your organization requires two-factor authentication, all outside collaborators must enable two-factor authentication before accepting your invitation to collaborate on a repository."
An outside collaborator is, in GitHub’s words, "a person who is not a member of your organization, but has access to one or more of your organization’s repositories." We do not cover the steps to add one here.
FAQ
Does read-only private access automatically mean a free Team seat? No. GitHub’s Team list bills outside collaborators on private organization repositories, excluding forks, without an exception for read access.
Is the same collaborator billed once for every repository? No. GitHub counts each outside collaborator once in the organization, even with access to several repositories.
Does using a username make a new collaborator free? No. GitHub’s username note says a username invitation does not temporarily use a seat; it does not exempt anyone from the pending private-repository invitation rule (excluding forks), which still counts.
Does paying for a seat grant all team and fork access? No. Forks need their own access, outside collaborators cannot join organization teams, and required 2FA must be enabled before accepting.
Sources and next check
Start with GitHub’s People who consume a license in an organization (the "Organizations on GitHub Team" section), then Adding outside collaborators to repositories in your organization for the access limits. Both were read October 8, 2026 (00:49 KST), and GitHub can change them at any time. Nothing here is a test result, an account inspection, a price or a savings estimate, and there are no affiliate links on this page.