Skip to content

Commit

Permalink
Added delete-merged-branches.nu (#255)
Browse files Browse the repository at this point in the history
Co-authored-by: Yethal <nosuchemail@email.com>
  • Loading branch information
Yethal and Yethal committed Jun 23, 2022
1 parent d121e98 commit 7d5c2f0
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 1 deletion.
2 changes: 1 addition & 1 deletion github/branch-protections/branch-protections.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup Nu
uses: hustcer/setup-nu@main
with:
version: '0.63.0'
version: '0.64.0'
- run: ./branch-protections.nu
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
9 changes: 9 additions & 0 deletions github/merged-branches/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Merged Branches

### Definition

Do your developers often forget to delete their branches after merging PRs? Are you tired of manually going into every repository and deleting them? Don't! Let nushell do it for you!

### Setup
1. Create a repo in your organization account to store the github action
1. Push both the attached script and the github action to the repo
15 changes: 15 additions & 0 deletions github/merged-branches/merged-branches.nu
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env nu
gh api $"orgs/($env.OWNER)/repos"
|from json
|each {|repo|
gh api $"repos/($env.OWNER)/($repo.name)/pulls?state=closed"
|from json
|if ($in|length) > 0 {
each {|pull|
print $"Removing branch ($pull.head.ref) from repo ($repo.name)"
gh api -X DELETE $"repos/($env.OWNER)/($repo.name)/git/refs/heads/($pull.head.ref)"
}
} else {
print $"Repo ($repo.name) has no branches to delete"
}
}
25 changes: 25 additions & 0 deletions github/merged-branches/merged-branches.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: Delete merged branches from all repositories
'on':
schedule:
- cron: '0 * * * *'
workflow_dispatch:

defaults:
run:
shell: nu {0}

jobs:
delete-merged-branches:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Nu
uses: hustcer/setup-nu@main
with:
version: '0.64.0'
- run: ./merged-branches.nu
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OWNER: ${{ github.repository_owner }}

0 comments on commit 7d5c2f0

Please sign in to comment.