Community health files and org-wide tooling for the feincms GitHub organization.
Finds all open pull requests from pre-commit.ci and dependabot across every repo in the org and squash-merges the ones that are green (all checks passed) and conflict-free. PRs that are still running CI, failing, or have merge conflicts are skipped and printed so they can be handled separately. PRs in repos you don't have push permission on are skipped as well.
$ ./scripts/merge-bot-prs.sh # preview only (default)
$ ./scripts/merge-bot-prs.sh --apply # actually mergeRequires the gh CLI (authenticated, repo scope)
and jq.
Adds .github/dependabot.yml to every repo in the org that doesn't already
have one, picking ecosystems (github-actions, pip, npm) based on what's
actually present in the repo (workflow files, setup.py/setup.cfg/
pyproject.toml, package.json). Repos with no recognizable ecosystem are
skipped. Commits the file directly to each repo's default branch.
$ ./scripts/add-dependabot-config.sh # preview only (default)
$ ./scripts/add-dependabot-config.sh --apply # actually create the filesMakes repository settings consistent across every non-archived repo of the
feincms and feinheit owners. The desired settings are listed in the
SETTINGS array at the top of the script as field=value pairs using the
REST API field names
(currently only delete_branch_on_merge=true). Only settings which differ are
changed; repos you don't have admin permission on are skipped.
$ ./scripts/normalize-repo-settings.sh # preview only (default)
$ ./scripts/normalize-repo-settings.sh --apply # actually change the settings