Invite members with initial repository access
Cover pending versus active members, reserved seats, resend/expiry, and initial repository scope and roles applied on acceptance.
Outcome
You have invited a person into your organization by email, they have accepted and now occupy one licensed seat, and you know how pending, accepted, expired, and revoked invitations behave — including how seats are reserved while an invitation is outstanding.
Who can do it
Only the mapped owner of the organization's GitHub namespace or a site administrator can create, revoke, or re-issue invitations. Members — including members who hold the Repo owner role on a repository — cannot invite anyone.
The invitee needs no prior prpl account and no GitHub account: accepting the invitation creates (or links) an account keyed to their email address and signs them in.
Before you begin
-
Check seat availability. Each organization has a fixed
number of licensed seats. Active members consume seats, and every
live pending invitation reserves one so an accepted link can never
overfill the organization. Disabled members do not consume a seat. The
card header shows
seats used/limitplus a pending count, and the invite form shows how many seats are left. - The invitation link is a credential. Anyone who opens the link can accept the invitation, so send it over a channel you trust. The link is shown to you exactly once, expires after 72 hours, and prpl stores only a hash of it — a lost link cannot be re-displayed, only replaced.
- Membership alone exposes no repository. After the person accepts you must still grant repository access before they can see or scan anything. Plan which repositories they should get.
Steps
seats used/limit counter in the card header.-
Open your profile menu (top right) and choose Settings.
On the Account page, find the Users
section and the card for your organization
(
<owner>/*). -
In Invite by email, enter the person's email address.
The hint next to the button shows how many seats remain, for example
3 seat(s) left.
The Invite by email form at the bottom of the organization card. Call out the Create invite button. - Select Create invite. A confirmation panel appears with the one-time acceptance link and a Copy link button. If your deployment has email delivery configured you will see Invitation sent. and the panel reads Invitation delivered to <email>; otherwise you will see Invitation created. Copy the link below and send it securely. Either way the panel warns: This credential is shown only in this response and expires <timestamp>.
- Send the link to the invitee if it was not delivered automatically. The invitation now appears under Pending invitations with its expiry time and a Revoke button, and one seat is reserved for it.
- The invitee accepts. Opening the link shows the Join your organization page; selecting Accept invitation creates or links their prpl account by email, adds them to your organization, signs them in, and lands them on their Account page with Invitation accepted. Welcome to your organization. A GitHub login is not required — they can optionally connect GitHub later, and it attaches to the same account.
- Grant repository access. The new member starts with the standard working capabilities (scan, review, patch, PR approval) but an empty repository scope — they see nothing until you grant access in Per-repo access. Continue with Assign repository access and roles.
Verification
- While pending: the invitation is listed under Pending invitations with its expiry, and the seats counter shows it (for example
seats 1/5 · 1 pending). - After acceptance: the person appears in the organization's member table with status active, the pending entry disappears, and the used-seat count increases by one.
- The new member can sign in and their Account page shows a Your organization access section for your namespace — with no repositories listed until you grant access.
Troubleshooting
- All seats are in use. The invite form is replaced by All N licensed seat(s) are in use — remove or disable a member to invite another user., and blocked actions show Seat limit reached…. Free a seat by disabling or removing a member, revoke a pending invitation to release its reservation, or ask your site administrator to raise the organization's seat limit.
- The invitation expired. Links live 72 hours; an expired link fails with invitation is invalid or expired and stops reserving a seat. Create a new invitation for the same address.
- You invited the wrong email address. Select Revoke next to the pending invitation immediately — a revoked link can no longer be accepted — then invite the correct address.
- "that email is already an organization member." The address belongs to an active member; there is nothing to invite. If you meant to restore a disabled member, use Enable in the member table instead.
- The invitee sees "the organization has no available seats." Seats changed between invite and acceptance (for example a disabled member was re-enabled). Free a seat, then send a fresh invitation.
- The link was lost before use. It cannot be recovered — prpl never stores the raw link. Create a new invitation for the same address; the replacement automatically revokes the lost one.
Next step
Give the new member something to work on: Assign repository access and roles. For seat lifecycle and offboarding, see Manage members and seats.
Last verified against commit c0bf54d on 2026-07-10 · capture scenario: invite-members