Create group consistensy rules and detect consistensy errors at repositories of a group
Problem to solve
Groups (and subgroups) tend to have many repositories which share common files that they should be consistent among many or all of them (e.g. LICENSE, CONTRIBUTING, .gitlab/*_templates
). Depending on the scale of the group, this may be a lot of hustle for maintainers to manage and some overhead for new repositories, but this content is critical for community-friendly teams.
As a user who is responsible for a group's community, I want to be able to know what repositories of the group are not compliant with the community content I want to use, and ideally to have automated actions available in order to fix these inconsistencies.
Intended users
This is indented for the Community Manager/Delaney (Development Team Lead)
User experience goal
The user should be able to use the UI/API to see if all repositories of a group have the same LICENSE.
Extra: The user should be able to use the UI/API to apply a common LICENSE (or .gitlab/*_templates) file to many or all repositories of a group
Proposal
- The user should be able to choose predefined or define rules consistency rules
- The rules can be either about repository contents or configuration
- The nature of the rules can be either generic or specific (i.e. "Files must exist and have same contents" -The user adds file paths- or "Repositories must have same LICENSE file")
- Gitlab should be able to detect rules violation on the repository default branch
- The user is the responsible to solve, ignore or whitelist rules violation (inconsistencies)
Extra:
- Given that the rule is violated by an update, propose the user to auto-solve (i.e. When the rule is "same-content", create automated MRs at the other repositories )
- Given a new repository, propose the user to auto-solve *
* The use of a repository template that is being imported solves the new repo scenario, but the rest of the repositories must be updated by hand (event if that is a rebase) and depending the number of the repositories, the user may fail to do it consistently.
Further details
Right now I'm referring to standard community related files, but code related files (e.g. linter rules or for node projects .nvmrc
files ) are a potential target for consistency rules.
Potential conflict could be the a subgroup with different rules ()
Permissions and Security
The essential permissions are: Guest (read the files)
Extra (In the case of the automated MRs):
- Reporter: Create MRs as the user