|
| 1 | +--- |
| 2 | +sidebar_position: 2 |
| 3 | +--- |
| 4 | +# Manage GitHub teams |
| 5 | + |
| 6 | +This page describes how to create and manage teams, as well as deciding and managing team membership. |
| 7 | + |
| 8 | +## Why and how we use teams |
| 9 | + |
| 10 | +Managing individuals' access to specific repositories doesn't scale well. Instead, we group people into teams and manage those teams' access to repositories. This makes it much easier to get new starters set up correctly and manage people moving between teams. |
| 11 | + |
| 12 | +Teams are managed in the [LBHackney-IT Teams list](https://github.com/orgs/LBHackney-IT/teams). |
| 13 | + |
| 14 | +> ℹ️ Teams should reflect our organisation structure, so may require occasional refactoring to align them. |
| 15 | +
|
| 16 | +There are currently two main types of team in use: |
| 17 | + |
| 18 | +1. Profession teams, e.g. [`Development Team`](https://github.com/orgs/LBHackney-IT/teams/development-team). Every member of the profession belongs in these groups, and they're used for things that are owned by the professional as a whole, for example this documentation site. |
| 19 | + |
| 20 | +2. Project teams, e.g. [`Targeted Services`](https://github.com/orgs/LBHackney-IT/teams/targeted-services). These project teams have a sub-team for leads, which provides elevated privileges to do more sensitive repository management. |
| 21 | + |
| 22 | +## Adding a new user |
| 23 | + |
| 24 | +Typically a new joiner will need to be added to at least two teams: |
| 25 | + |
| 26 | +- The profession they belong to (e.g. [Development Team](https://github.com/orgs/LBHackney-IT/teams/development-team)), and |
| 27 | +- One or more product teams they belong to (or the `leads` sub-team of that product). |
| 28 | + |
| 29 | +### Adding a regular contributor |
| 30 | + |
| 31 | +Any lead can add people to one or more of their teams. |
| 32 | + |
| 33 | +1. In the [Teams list](https://github.com/orgs/LBHackney-IT/teams) click on the team you want to add them to, e.g. `Housing Products`. |
| 34 | +2. Click `Add a member` |
| 35 | +3. Search for the user's GitHub username. |
| 36 | +4. Click `Invite`. |
| 37 | + |
| 38 | +### Adding a lead |
| 39 | + |
| 40 | +Leads are added in a subtly different way, in order to grant them the `Admin` role to repositories the team is responsible for. We add the lead to both the main product _and_ the leads teams, and set them as team maintainers so they can add and remove team members. |
| 41 | + |
| 42 | +> ℹ️ A "lead" in this context is someone trusted to manage the project, and doesn't reflect a specific job title. |
| 43 | +
|
| 44 | +Any lead can add another lead, or this can be carried out by a GitHub admin, e.g. the Head of Engineering. |
| 45 | + |
| 46 | +1. In the [Teams list](https://github.com/orgs/LBHackney-IT/teams) find the team you want to add them to, e.g. `Housing Products`. |
| 47 | +2. Click the disclosure arrow on the right hand side (next to `X teams`, and click the relevant "... leads" team). |
| 48 | + , and add the user: |
| 49 | + 1. Click `Add a member`. |
| 50 | + 2. Search for the user's GitHub username. |
| 51 | + 3. Click `Invite`. |
| 52 | +3. Change their role to 'Maintainer' for the team: |
| 53 | + 1. Click the check box to the left of the user. |
| 54 | + 2. Click the `1 member selected` drop-down. |
| 55 | + 3. Click `Change role`. |
| 56 | + 4. Select `Maintainer`. |
| 57 | + 5. Click `Change role`. |
| 58 | +4. Go to the parent team (e.g. `Housing Products`), and add the user: |
| 59 | + 1. Click `Add a member` |
| 60 | + 2. Search for the user's GitHub username. |
| 61 | + 3. Click `Invite`. |
| 62 | +5. Change their role to 'Maintainer' for the team: |
| 63 | + 1. Click the check box to the left of the user. |
| 64 | + 2. Click the `1 member selected` drop-down. |
| 65 | + 3. Click `Change role`. |
| 66 | + 4. Select `Maintainer`. |
| 67 | + 5. Click `Change role`. |
0 commit comments