Skip to content

linuxdeepin/action-teams-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

action-teams-manager

github actions for teams manage

Features

  1. Create team if not exist
  2. Set parent team
  3. Add member
  4. Manage repositories and set permission
  5. Manage projects and set permission

Input

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

Uses

  1. Create and Install GitHub App in organization settings
  2. Get AppID (App setting -> General) and InstallationID (App setting -> Advanced -> Recent Deliveries -> Payload)
  3. Generate GitHub App Private Key and upload to organization secrets
  4. 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

About

Manager the teams by github action

Resources

Stars

Watchers

Forks

Packages

No packages published