This is not an official Google product.
Team-link is a tool for syncing your org membership between different systems.
Currently the supported source systems is:
The supported target system is:
- GitHub.
- GitLab (still in process.)
Team-link is implemented using go, and can be used as a cli tool. Run the following command to install team-link.
go install github.com/abcxyz/team-link/cmd/tlctl
Before running CLI, two config files are required.
This file contains the group info and user info needed for syncing.
This configs which group in source system is mapped to which group in the target system.
group_mappings {
mappings: [
{
google_groups: {
group_id: "groups/foo"
}
github: {
org_id: <abc>
team_id: <xyz>
}
}
]
}
This configs how user in source system is mapped to the target systm.
user_mappings {
mappings: [
{
source: "[email protected]"
target: "foo"
},
{
source: "[email protected]"
target: "foo"
}
]
}
For detailed the support config format, please refer to TeamLinkMappings.
This is where your define the config for source and target system, including how to authenticate, customized enterprise url etc.
For detailed format of teamlink config, please refer to TeamLinkConfig
Example:
source_config {
google_groups_config {}
}
target_config {
github_config {
enterprise_url: "https://github.com",
static_auth {
from_environment: "TEAM_LINK_GITHUB_TOKEN"
}
}
}
run the following command to sync membership between your source and target system:
tlctl sync run \
-m mappings.textproto \
-c teamlink_config.textproto
We support syncing membership from google groups to github using a workflow. The example you can follow is here