Teams

Using Teams in Flutter-Global.

This public content is an excerpt from Flutter staff GitHub docs. It is published as a reference to show how GitHub is used for inner source at Flutter.

There are 4 types of teams in Flutter-Global:

  1. The org owners manage Org teams for you.
  2. You can use Codebase Governor to manage Capability teams.
  3. Your division manages Divisional teams.
  4. You can manage your own Self-Managed teams.

Org Teams

The all-flutter-global team includes all members of the Flutter-Global org. When you join the org, you are automatically added to this team. Use this team to grant access to all members of the org to your inner source repositories:

Capability Teams

You use Codebase Governor to organise related repositories together into a capability.

Codebase Governor manages the membership of owner and maintainer capability teams based on your configuration in the org-config repository.

Example:

For the capability named git-flutter:

  • The owner-cap-git-flutter team’s only member is the owner of the capability.
  • The maintainers-cap-git-flutter team members are the maintainers of the capability.

The maintainers team has admin privileges on the repository and is typically used in the CODEOWNERS file.

Divisional Teams

Your division manages it’s own divisional GitHub org and conventions. This includes managed divisional teams. Some of these divisional teams are also available within Flutter-Global.

Self-Managed Teams

You can manage you own teams using the GitHub UI or API. These GitHub docs explain how you can setup and manage your own teams.

If you are self-managing a team that you use for repository access it must have:

  1. An approval process to grant membership.
  2. Membership reviewed at least every 6 months.
  3. Evidence to support (1) & (2) for audit purposes.