Skip to content

[FEAT] Find a way to enforce the same settings for all repositories of the GitHub organization  #25

@tbouffard

Description

@tbouffard

Is your feature request related to a problem? Please describe.
There are a lot of things we want to make consistent across all repositories.
Currently, except default labels that can be configured at organization level, there is no way to ensure all repositories share the same settings.
We a new settings is made available by GitHub, we have to manually activate it in all repositories

Describe the solution you'd like
I would like we find ways to automate the settings synchronization.

GitHub provides API and some GitHub Actions exist to handle such situation.
We probably need to provide some level of flexibility: some settings must be set everywhere, some depend on the repository. So, we should provide a way to configure the settings to be applied to a given repository.
The settings should be apply periodically (with GH actions).

Describe alternatives you've considered
Continue to do it manually.
This is error prone, we are missing some settings and this is painful. We have more and more repositories and this is unmaintainable.

Additional context
Minimal list of settings to synchronize for "Pull Request"

  • only allow "squash and merge" with default to “PR title + description”
  • Always suggest updating pull request branches
  • enable auto-merge
  • Limit how many branches and tags can be updated in a single push

Some other settings depends on the repository like projects or discussions activation.

This also involves some administrative GitHub workflow like the one that ensures PR titles follow "conventional commits": currently, we have to manually create the workflow in all repositories. See Enforce Conventional Commits for PR title for more details

Possible solutions

NOTE: non exhaustive list, it is enriched periodically

various sources

from Homebrew

label synchronization

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions