Safeguard
Security Guides•

Which GitHub repository role should a contractor get?

Start a contractor at Read or Triage, grant Write just on the repos they work in, and keep Maintain and Admin for staff. What each role can do, in a table.

Safeguard Security Team
3 min read

Give a contractor Write on only the repositories they work in, and Read or Triage everywhere else. Write can push, merge and manage Actions secrets, so treat it as a real grant. Keep Maintain and Admin for employees, since Admin controls branch protection, deploy keys, visibility and deletion.

The five roles in plain terms

RoleIntended forNotable limits
ReadNon-code contributors who view or discussNo pushing, no secrets
TriageManaging issues and pull requests without write accessCannot push or merge
WritePeople who actively pushCannot change repository settings
MaintainProject managers who avoid destructive actionsCannot manage branch protection or rulesets, cannot delete the repo
AdminFull controlEverything, including visibility and deletion

Those descriptions come from GitHub's repository roles page.

The detail people miss about Write

Write sounds modest. According to GitHub's role table, it can also create, update and delete Actions secrets and variables, run workflows, edit releases, and dismiss Dependabot alerts. A contractor with Write on a repository can therefore reach every secret that repository's workflows use.

That changes how you design access. If a repository holds production deploy secrets, a Write grant is closer to an operations grant. Move deploy credentials into environments with required reviewers, or hold them at a level a Write user cannot read.

A simple decision rule

  1. Does the contractor need to push code? If not, use Read or Triage.
  2. Do they need to push to one or two repos? Grant Write on those repos, through a team named for the engagement.
  3. Do any of those repos hold secrets beyond staging? Move or scope them first.
  4. Set an end date in your tracker and put a reminder on the calendar.
  5. Never give Maintain or Admin to a contractor for convenience. If a task needs it, have an employee do the step.

Grant through a team, not individual repo invitations. Removal then becomes one action, and the team page doubles as the access list during reviews.

Pair the role with branch rules

Roles say who can push. Branch protection says what must happen before code lands. A contractor with Write should still need a review from a staff member on the default branch. Remember that Admin can merge on protected branches without approving reviews, which is another reason to keep that role narrow.

Where Safeguard fits

Safeguard scans dependencies and builds an SBOM, and its policies and gates can block a pull request that adds a known-vulnerable package. You can try a free scan at gold.safeguard.sh/scan.

Quick check

Can Triage merge pull requests?

No. Triage can manage issues and pull requests, request reviews and apply labels, but cannot push or merge.

Should contractors be outside collaborators?

That is a reasonable pattern for single repository access. Whichever you pick, give an end date and review it.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.