Mundhra LabsGitHub, Gently
Stop 6 of 7·7 min read·1 thing to try

Accounts, organisations and who sees what

The part people get stuck on when they start a company or a side project. Here's how the pieces fit, using an example studio called Mundhra Labs.

Running an organisation already? Skip to stop 7 →

In shortOne account per person, one organisation for the company, one repo per app, and access given repo by repo.

From a person to a repoTop to bottom
Youa human
One person, one account
Personal accountyour login, your @name
Organisationa shared home, free
@mundhralabsgithub.com/mundhralabs
Repositoriesone per project
tracker naksha website github-guide
Peopleaccess is set per repo
OwnersMembersTeams, like @mundhralabs/designOutside collaborators
Try it: who can see which repo?Pick a person

Your questions, answered

Should I make a second GitHub account for my work email?

No. GitHub expects one personal account per person. Keep the account you have, and add your work address to it under Settings → Emails. You can even make the work address the primary one later. All your work, personal or company, lives under one login.

What exactly is an organisation?

A shared account that owns repos on behalf of a group, like a company or a studio. Nobody logs in "as" the organisation. People log in with their own accounts and are given a role inside it.

It has its own @name and page (github.com/mundhralabs), so your projects read as the studio's work, not your personal side projects. If someone leaves, you remove their access and the repos stay put. The Free plan includes unlimited public and private repos and unlimited collaborators.

Can I add a new email ID to a repo?

Sort of: you add a person, not an email. In the repo's Settings → Collaborators (or your organisation's People page) you can type someone's GitHub username or their email. If that email has no GitHub account yet, they get an invite and create one, free.

The access then belongs to their account. If they later change their email, they keep access. If they leave, you remove the account.

Can one of my apps have its own @name, like @tracker?

Not inside an organisation. @names belong only to people and organisations. An app is a repo, and its address is github.com/mundhralabs/tracker. In conversation people write it as mundhralabs/tracker.

The things that do get an @ inside an organisation are teams, written @mundhralabs/tracker-team, so you can give one group access to one app.

If an app ever becomes its own company, create a separate organisation (@tracker, if free) and transfer the repo there. GitHub keeps redirects from the old address.

How do I give someone only part of an app?

Access works per repo, not per folder. Anyone who can see a repo can see every file in it. So you have three choices:

  1. Give them the repo with a limited role. Fine when it's all right for them to see everything. Use Read if they only need to look, Write if they'll push changes.
  2. Split that part into its own repo. For example, keep the website separate from the app, or a design kit separate from the code. Then invite them to only that repo.
  3. Have them work through pull requests. They push to a branch, you review every change before it reaches main. You can make GitHub enforce this with a .

Whatever you choose, never keep passwords or secret keys in a repo. Then "seeing everything" is far less risky.

What's the difference between a member and an outside collaborator?

A member is part of the organisation and can be added to teams. An outside collaborator is invited to specific repos only, and isn't part of the organisation. Freelancers and agencies are usually outside collaborators.

The five repo roles

From least to most power. Pick the lowest one that lets the person do their job.

RoleCan doTypical person
ReadSee and download the code, commentAn advisor, an auditor
TriageAlso sort issues and pull requestsA support or project person
WriteAlso push branches and mergeA developer, a freelancer
MaintainAlso manage the repo's settings, minus the risky onesA lead developer
AdminEverything, including deleting the repoYou

Setting up your own, in order

  1. Keep your personal account and turn on .
  2. Add your work email in Settings → Emails and verify it.
  3. Click + (top right) → New organization → Free. Pick the name carefully: it becomes the address.
  4. Create repos inside the organisation, private by default.
  5. Invite people per repo, or create a team per app and add people to teams.