Skip to content

Latest commit

 

History

History
112 lines (80 loc) · 2.36 KB

README.md

File metadata and controls

112 lines (80 loc) · 2.36 KB

TEAM-Link

This is not an official Google product.

Overview

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.)

How to use

Install

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

Prepare Config

Before running CLI, two config files are required.

Mapping Config File

This file contains the group info and user info needed for syncing.

Group mapping config

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>
        }
      }
    ]
}
User mapping config

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.

Team-Link Config

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 CLI

run the following command to sync membership between your source and target system:

tlctl sync run \
  -m mappings.textproto \
  -c teamlink_config.textproto

Use as Github Workflow

We support syncing membership from google groups to github using a workflow. The example you can follow is here