Skip to content

Ask candidates to hand back a fork, not a branch or PR - #2

Merged
cgrice merged 1 commit into
mainfrom
docs/hand-back-a-fork
Aug 24, 2026
Merged

Ask candidates to hand back a fork, not a branch or PR#2
cgrice merged 1 commit into
mainfrom
docs/hand-back-a-fork

Conversation

@cgrice

@cgrice cgrice commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

One-line change to TASK.md's What to hand back.

Why

  • A branch or PR with your work.

Both point at this repository, which is the wrong place for a candidate's solution:

  • A branch pushed here is readable by everyone with access to the repo. So is a PR opened against it. As soon as two candidates are in flight, each can read the other's work — and the second one to submit has every reason to look.
  • It also requires giving candidates push access to the repo that holds the exercise.

What it says now

A fork of this repo with your work on it. Fork it, commit on a branch, and open a pull request against your own fork rather than against this repository — that keeps your solution to yourself, and still gives us a diff to read. Send us the link.

A fork fixes both problems, and there's a detail that makes it fit this case neatly: private forks inherit team permissions from upstream, but not individual ones. This repo's access comes entirely from three teams (Devs, agent-experience, Onboarding Experience — 0 direct and 0 outside collaborators today), so:

  • everyone on those teams automatically gets access to every candidate's fork — no chasing invites
  • a candidate added individually as an outside collaborator isn't in those teams, so they can't see anyone else's fork

The PR is specified against their own fork, not back to this one, so we still get a reviewable diff without it being published to the other candidates.

⚠️ Blocked on two settings

This wording isn't actionable until forking is enabled — right now a candidate following it would hit a wall:

Scope Setting Current
Org AgentSoftware members_can_fork_private_repositories false
This repo allow_forking false

For a private repo GitHub needs both. Worth knowing the org one is org-wide: it makes every private repo in AgentSoftware forkable, not just this one. Flagging rather than changing — @cgrice is handling the permissions separately.

If that org-wide change turns out to be unwanted, the alternative that needs no org setting is making this a template repository (is_template: true): candidates click "Use this template" and get a clean private repo with no fork relationship. The trade is that template copies don't inherit team permissions, so candidates would have to invite reviewers themselves. Happy to switch the wording to that instead.

Context

Found while doing the exercise — I hit this on the first step and had to work around it by copying the repo rather than forking. See also #1, which fixes the Tests workflow failing on a fresh clone.

"A branch or PR with your work" points at this repository, which is the
wrong place for it twice over.

A branch pushed here is readable by everyone with access to the repo, and
a PR opened against this repo is too -- so as soon as more than one
candidate is in flight, each can read the others' solutions. It also means
candidates need push access to the repo that holds the exercise.

A fork fixes both: the work lives in the candidate's own private fork, and
because private forks inherit *team* permissions from upstream, the teams
with access here get access to every fork without anyone being invited.
Candidates added individually are not in those teams, so they cannot see
each other's work.

The PR is specified against their own fork rather than back to this one,
so the diff is reviewable without being published to the other candidates.

Note this needs forking enabled to be actionable: the org currently sets
members_can_fork_private_repositories to false and this repo sets
allow_forking to false. Both need turning on before this wording is true.
@cgrice
cgrice merged commit f5de7e9 into main Aug 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant