Reason/Context
We have 60 repositories in AsyncAPI organization and it is impossible to stay in sync with settings across all repositories.
We have https://github.com/asyncapi/.github/blob/master/repository-settings.md but it is completely ignored, thus also no longer updated.
Description
We need an application that enables us to manage the settings of the GitHub repository through a config file stored in a given repository.
- Imagine you have a file in a repo that is called
.projects.settings.keeper
- it is a yaml file with structure that has info about:
discussions: true - that enables discussions tab for project
pr: ['squashandmerge'] - that enables only squash and merge on PRs
- there should be a list of branch protection settings and default workflows that should be blocking PRs
- there also are extra settings like
sonarcloud: true or coveralls: true that means the application should make sure sonarcloud or coveralls are enabled for a given project
- basing on CODEOWNERS the app adds given users as maintainers of the repo
- once
.projects.settings.keeper is created, global workflow synchronization is triggered to get default workflows into the repo
For GSoC participants
- you will write some JS code
- you will learn GitHub Actions and GitHub API
- you will play a lot with different REST APIs to integrate them together
Reason/Context
We have 60 repositories in AsyncAPI organization and it is impossible to stay in sync with settings across all repositories.
We have https://github.com/asyncapi/.github/blob/master/repository-settings.md but it is completely ignored, thus also no longer updated.
Description
We need an application that enables us to manage the settings of the GitHub repository through a config file stored in a given repository.
.projects.settings.keeperdiscussions: true- that enables discussions tab for projectpr: ['squashandmerge']- that enables only squash and merge on PRssonarcloud: trueorcoveralls: truethat means the application should make sure sonarcloud or coveralls are enabled for a given project.projects.settings.keeperis created, global workflow synchronization is triggered to get default workflows into the repoFor GSoC participants