Logo StartupKit
EN

GitHub Template Repository Setup

How to configure a GitHub template repository for code assignment stages, and how reviewers get access to candidate repositories.

GitHub Template Repository Setup

Code assignment stages create a private GitHub repository for each candidate from a template repository. This guide covers how to configure your template repository correctly.

What is a Template Repository?

Template repositories let users generate new repositories with the same directory structure and files. When a candidate reaches a code assignment stage, Kit uses the GitHub API to create a fresh private copy of your template repository for them.

Important: The source repository must be explicitly marked as a template on GitHub. A regular repository cannot be used as a template – the GitHub API will reject the request.

How to Mark a Repository as a Template

  1. Go to your repository on GitHub
  2. Click Settings (gear icon in the repository navigation)
  3. Under General, find the Template repository section near the top
  4. Check the box labeled Template repository
  5. Click Save changes (the setting takes effect immediately)

Once enabled, GitHub will show a “Template” badge on the repository page.

Requirements Checklist

Requirement Details
GitHub App installed Your organization must have the Kit GitHub App installed and active (Integrations > GitHub)
Repository exists The org/repo specified in the stage config must exist on GitHub
Marked as template The repository must have “Template repository” checked in Settings > General
App has access The Kit GitHub App installation must have access to the template repository
Organization match The GitHub App installation must cover the organization where candidate repos will be created
Reviewers connected Every reviewer assigned to the stage must connect their own GitHub account in Kit, or they get no access to candidate repos (see Reviewer Access to Candidate Repositories)

Configuring the Template in Kit

  1. Go to your Job Posting > Stages
  2. Select or create a Code Assignment stage
  3. In the GitHub Template field, select a repository from the dropdown or type the org/repo name
  4. The dropdown only shows repositories already marked as templates – if your repo does not appear, verify it is marked as a template on GitHub
  5. Save the stage configuration

Kit will automatically validate that the repository is a valid template after you save. If there is an issue, a warning will appear on the stage card.

Reviewer Access to Candidate Repositories

Candidate repositories are private. When a candidate submits, Kit invites the stage’s assigned reviewers to their repository with read access – by each reviewer’s personal GitHub handle. Kit only knows that handle if the reviewer has connected their own GitHub account inside Kit.

Important

Three GitHub things are easy to confuse. Only the third one gives a reviewer access to code.

Connection Who does it What it gets you
Organization connectionIntegrations > GitHub An admin, once per account Lets Kit create candidate repos from your template
GitHub organization membership – on GitHub itself A GitHub org owner Nothing in Kit. Inviting a reviewer to your GitHub organization does not give them access to candidate repos
Personal GitHub connection – Settings > Connected Accounts Each reviewer, once per person Lets Kit invite that reviewer to candidate repos

Your organization can be fully connected and every one of your reviewers still be unable to open a single candidate repository.

Reviewers: Connect GitHub Once

  1. Open Settings > Connected Accounts
  2. Under Connect a Provider, click GitHub
  3. Authorize Kit on GitHub

That is the whole job, once per person. From then on Kit invites you to candidate repos as submissions come in – and it catches you up on the ones you missed: the moment you connect, Kit grants you access to every code assignment repository you should already have had. Nobody has to redo a stage or re-send an invitation.

The first time you are added as a reviewer on a code assignment stage, Kit emails you a welcome note. If your GitHub account is not connected yet, that email leads with a Connect GitHub button.

Admins: Find the Reviewers Who Are Missing

Kit flags the gap before a candidate ever submits:

  • The stage’s Reviewers section shows an amber warning naming exactly which reviewers have no GitHub account connected.
  • The stage carries a warning icon in the stage list, and the posting counts it in its needs setup summary.
  • If a candidate submits while a reviewer is still unconnected, Kit emails and notifies in-app both that reviewer and the stage leads.

Nobody can do this for the reviewer – not you, not a GitHub organization owner. Ask each named reviewer to run the three steps above, or reassign the review to someone who is already connected.

Best Practices for Template Repositories

  • Include a clear README with assignment instructions, expectations, and submission guidelines
  • Add a .gitignore appropriate to the language and framework
  • Include starter code or boilerplate that candidates should build on
  • Keep it minimal – only include what candidates need to get started
  • Add CI configuration (GitHub Actions) if you want automated tests on candidate submissions
  • Do not include secrets, API keys, or proprietary code

Troubleshooting

Problem Cause Fix
Candidate stuck on “Setting Up” spinner Template repository is not marked as a template Go to the repo’s Settings > General and check “Template repository”
“Setup encountered an issue” error Template repo not found or not a template Verify the repo exists and is marked as a template, then re-trigger setup
Template repo missing from dropdown Repo is not marked as a template Mark it as a template in GitHub Settings, then reload the page
“GitHub App not installed” warning No active GitHub connection Install the Kit GitHub App from Integrations settings
“GitHub template repository not set” warning The github_template field is empty Select a template in the stage configuration
Candidate cannot access their repo GitHub invitation was not sent or accepted Check the candidate’s GitHub username and the repo invitation status
Reviewer cannot open a candidate’s repo That reviewer has no personal GitHub account connected in Kit Ask them to connect GitHub at Settings > Connected Accounts – access to the repos they missed is granted automatically once they do
Reviewer is in our GitHub organization but still has no access Organization membership is not the same as connecting GitHub in Kit Same fix: the reviewer connects GitHub in Kit themselves
Installed on GitHub but not connected in Kit The app reached your organization, but GitHub never confirmed you own it, so the install is still waiting Open Integrations > GitHub, choose Finish connecting, then Confirm with GitHub
Waiting for an organization owner You are not an owner of the organization, so GitHub sent the installation to an owner for approval Ask an owner to approve the Kit GitHub App on GitHub, then run Install GitHub App again

Type to search...