Install the gh
command line github client, and login to your account:
brew install gh
gh auth login
This following scripts also require you to have jq
installed for json filtering/manipulation. brew install jq
if you don’t already have it.
Then, download a list of all your github projects
gh repo list <username or org> --no-archived -L 200 --source | cut -f 1 > github_projects.txt
You can add a --private
flag to only return private repos.
Fetch a list of all the Dependabot opened prs across all your projects, in ascending PR order:
cat github_projects.txt |
PAGER= xargs -n 1 -I "{}" gh pr list -l dependencies -R "{}" --json number,headRepository |
jq -s '.' |
jq '. | map(select(length > 0)) | map(.[])' |
jq -r 'map("gh pr merge " + (.number | tostring) + " -R \"$GITHUB_ACCOUNT/" + .headRepository.name + "\" -m") | .[]' |
tac > dependabot_merges.sh
GITHUB_ACCOUNT=<your gh username or org> bash dependabot_merges.sh