Create Repository Settings Keeper
- Dominant language
- No language data
- Stars
- 36
- Forks
- 91
- PR merge metrics
- No merged PRs in 30d
Description
#### 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
Contributor guide
Research direction
Start by reviewing repository-settings.md and the proposed .projects.settings.keeper format, then map the listed settings to GitHub Actions and GitHub REST API capabilities. Done means the application can apply the configured repository settings, branch protections, workflows, integrations, and CODEOWNERS-based maintainers across a repository.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, github-actions, javascript, yaml
- Domain
- developer-experience, devops, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100