github actions for teams manage
- Create team if not exist
- Set parent team
- Add member
- Manage repositories and set permission
- Manage projects and set permission
inputs:
app_id:
description: "github app id"
required: true
installationId:
description: "github app installationId"
required: true
private_key:
description: "github app private key"
required: true
config_file:
description: "manager config file"
required: true
generate_yaml:
description: "generate Yaml for org"
required: false
default: false
update_teams:
description: "update teams settings by local yaml for org"
required: false
default: true
- Create and Install GitHub App in organization settings
- Get AppID (App setting -> General) and InstallationID (App setting -> Advanced -> Recent Deliveries -> Payload)
- Generate GitHub App Private Key and upload to organization secrets
- Add
.github/workflows/teams-manager.yml
to organization repository
name: teams-manager
on:
push:
paths:
- ".github/workflows/teams-manager.yml"
- "teams.yaml"
workflow_dispatch:
jobs:
update-teams:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: update teams
uses: linuxdeepin/action-teams-manager@master
with:
app_id: $app_id
installationId: $installation_id
private_key: ${{ secrets.APP_PRIVATE_KEY }}
config_file: teams.yaml
Add teams.yaml
config file to repository
teams:
Team1: # team name
parent_team: "ParentTeam1" # parent team name
members: # team members
- member1 # member username
- member2 # member username
repositories_permissions:
# permissions = ["pull", "push", "admin", "maintain", "triage"];
- triage:
- repository1 # repository name
- maintain:
- "*" # all repositories
- repository2 # repository name
projects_permissions:
# permissions = ["read", "write", "admin"];
- admin:
- project1 # project name
- project2
- read:
- project2