Github organisation governance
This is a WIP!
Status | In progress |
---|---|
Impact | High / Medium / Low |
Driver | @Ruth Cheesley |
Approver |
|
Contributors | @Norman Pracht (Unlicensed) @Mohit Aghera @Alan Hartless @Jan Linhart |
Informed | @Nick Veenhof (Deactivated) |
Due date | Apr 25, 2021 |
Outcome |
Background
With the increasing number of repositories that we have in the main organisation we need to have some centralised way of managing them to ensure that they all stay in sync, use the same rules, have the same security settings, and use a common set of labels across all repositories.
The aim of this document is to firstly document all of the repositories we have and secondly set out what rules and settings we will be applying, and perhaps more importantly, what repositories will be breaking from this structure and the reasons why.
The organisation will be done using a bot which references a central organizer.yaml file in the .Github repo for the org: https://organizer.gitconsensus.com
Relevant data
List of current repos
Used this tool to grab a list of all repos as of 24/04/2021 which I have uploaded to Drive:
https://docs.google.com/spreadsheets/d/1wbc4t5CiQebXKDtlH3WholI42Uz6fDiv1LI63QOejh8/edit?usp=sharing
I have grouped them in the following types of repos:
Core
Documentation
Integration
Several of these are managed by community members and will have their own permissions that need to be set up
Language packs
Plugin
These need to have the same semantic versioning as core
Tools
These are tools that are used by the project or things like Docker
Theme
These need to have the same semantic versioning as core
Website
I have specifically separated out the plugins and integrations because they are two different things but they are commonly confused. I think that we may need to make this clearer in the name of the repos, with plugin = installed in Mautic and integration = installed in third party system?
List of current labels on mautic/mautic
Used gh api /repos/elastic/$repo/labels --paginate
to get a list.
https://docs.google.com/spreadsheets/d/1A7Mxcqo4h8ZA18rbGi0awEmIFC8KD-322ztQxE4TSd8/edit?usp=sharing
List of teams / members
Use this gist to get the list of teams and members:
https://docs.google.com/spreadsheets/d/1sGUGnv19qJ3CP_rKUuNdvipzLaI5bqNnPQuPHRWr14c/edit?usp=sharing
Proposed groupings of repos & team permissions
We can group repos together so that they get the same set of rules, rather than having to set them individually. I propose that we group them as in the spreadsheet above with the addition of a group called security.
We can set the permissions by team using the org file - I have set the suggested permission levels in the spreadsheet.