github.com/abayer/test-infra@v0.0.5/prow/cmd/peribolos/README.md (about)

     1  # Not implemented
     2  
     3  WARNING: none of this code works yet. Implementation will follow later
     4  
     5  # Peribolos Documentation
     6  
     7  Peribolos allows the org settings, teams and memberships to be declared in a yaml file. Github is then updated to match the declared configuration.
     8  
     9  ### Etymology
    10  
    11  A [peribolos] is a wall that encloses a court in Greek/Roman architecture.
    12  
    13  ## Org configuration
    14  
    15  Extend the primary prow [`config.yaml`] document to include a top-level `orgs` key that looks like the following:
    16  
    17  ```yaml
    18  orgs:
    19    this-org:
    20      # org settings
    21      company: foo
    22      email: foo
    23      name: foo
    24      description: foo
    25      has_organization_projects: true
    26      has_repository_projects: true
    27      default_repository_permission: read
    28      members_can_create_repositories: false
    29  
    30      # org member settings
    31      members:
    32      - anne
    33      - bob
    34      admins:
    35      - carl
    36  
    37      # team settings
    38      teams:
    39        node:
    40          # team config
    41          description: people working on node backend
    42          privacy: closed
    43          previously:
    44          - backend  # If a backend team exists, rename it to node
    45  
    46          # team members
    47          members:
    48          - anne
    49          maintainers:
    50          - jane
    51        another-team:
    52          ...
    53        ...
    54    that-org:
    55      ...
    56  ```
    57  
    58  This config will:
    59  * Ensure the org settings match the following:
    60    - Set the company, email, name and descriptions fields for the org to foo
    61    - Allow projects to be created at the org and repo levels
    62    - Give everyone read access to repos by default
    63    - Disallow members from creating repositories
    64  * Ensure the following memberships exist:
    65    - anne and bob are members, carl is an admin
    66  * Configure the node and another-team in the following manner:
    67    - Set node's description and privacy setting.
    68    - Rename the backend team to node
    69    - Add anne as a member and jane as a maintainer to node
    70    - Similar things for another-team (details elided)
    71  
    72  Note that any fields missing from the config will not be managed by peribolos. So if description is missing from the org setting, the current value will remain.
    73  
    74  For more details please see GitHub documentation around [edit org], [update org membership], [edit team], [update team membership].
    75  
    76  
    77  [`config.yaml`]: /prow/config.yaml
    78  [edit team]: https://developer.github.com/v3/teams/#edit-team
    79  [edit org]: https://developer.github.com/v3/orgs/#edit-an-organization
    80  [peribolos]: https://en.wikipedia.org/wiki/Peribolos
    81  [update org membership]: https://developer.github.com/v3/orgs/members/#add-or-update-organization-membership
    82  [update team membership]: https://developer.github.com/v3/teams/members/#add-or-update-team-membership