asyncapi / asyncapi/.github

Create Repository Settings Keeper

Open
#137 20 comments 2 reactions 0 assignees View on GitHub
area/ci-cd enhancement stale
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.