A GitHub repository handover should leave the client with ownership of the code and leave you with only the access they still need. The transfer is a real ownership change, not an invitation to collaborate.
Before you use the Danger Zone, check the target account, repository name conflicts, GitHub Pages, packages, actions, and deployment links. Those are the places a clean repo transfer can still surprise a live project.
Before you start
- Confirm the target owner account or organization and whether it already has a repository with the same name.
- Tell your client which collaborators, secrets, packages, pages, and billing-sensitive features may change.
- Make a note of the current remote URL so every local clone can be updated after the move.
On GitHub, specifically
- GitHub transfers repositories to other users or organization accounts, and the new owner can immediately administer contents, issues, pull requests, releases, projects, and settings. Source, checked September 3, 2026.
- GitHub requires administrator access to transfer a repository, and transfers on GitHub.com can only go to another GitHub.com owner. Source, checked September 3, 2026.
- For a personal-account repository transfer, GitHub emails the new owner a confirmation, and the invitation expires if it is not accepted within one day. Source, checked September 3, 2026.
- GitHub blocks a transfer when the target account already has a repository with the same name or a fork in the same network. Source, checked September 3, 2026.
- GitHub automatically redirects repository web and Git traffic after a transfer, but recommends updating local clones to the new remote URL. Source, checked September 3, 2026.
The three stages
Prepare
Check admin permissions, branch protections, CI integrations, packages, GitHub Pages, webhooks, and secrets. Remove anything that should not leave your account.
Transfer
Use the repository settings transfer flow, name the new owner exactly, and have the client accept the transfer before the invitation expires.
Confirm
Open the repository under the new owner, update local remotes, run a small fetch, and check that deploy keys, actions, integrations, and Pages still point where expected.
What to tell your client
- The exact repository name and new owner.
- How long the transfer invitation stays valid.
- Which local commands or deployment settings need the new repository URL.
After it is done
Record the asset in Everkey, change its ownership status from needs_transfer to client_owned, and leave a short note with the account that now controls the repository. The free tier is enough for a small handover map.