Skip to content

Commit

Permalink
Final update to dependabot-merger.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
nsingh-branch committed Aug 8, 2023
1 parent 1caee00 commit 6ff7f52
Showing 1 changed file with 70 additions and 9 deletions.
79 changes: 70 additions & 9 deletions .github/workflows/dependabot-merger.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: Merge Dependabot PRs
on:
schedule:
- cron: '0 9 * * 1' # Run this workflow every Monday at 9:00
- cron: "0 9 * * 1" # Run this workflow every Monday at 9:00
workflow_dispatch:

jobs:
merge:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
ref: master

Expand All @@ -23,10 +23,9 @@ jobs:
- name: Get current date and time
id: datetime
run: echo "::set-output name=date::$(date +'%m-%d-%Y-%H-%M')"
run: echo "date=$(date +'%m-%d-%Y-%H-%M')" >> $GITHUB_OUTPUT

- name: Create new branch based on date and time
id: create_new_branch
run: |
NEW_BRANCH="dependabot-test-${{ steps.datetime.outputs.date }}"
git checkout -b $NEW_BRANCH
Expand All @@ -36,21 +35,25 @@ jobs:
id: pr_list
run: |
PR_LIST=$(gh pr list --json number,headRefName --jq '.[] | "\(.number) \(.headRefName)"' | grep dependabot)
PR_LIST=$(echo "$PR_LIST" | tr -d '\r')
if [ -z "$PR_LIST" ]; then
echo "No PRs from dependabot found."
exit 0
fi
echo "::set-output name=numbers::$PR_LIST"
PR_COUNT=$(echo "$PR_LIST" | wc -l)
echo "$PR_COUNT PR's to be merged: $PR_LIST"
echo "$PR_COUNT PR's to be merged."
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "prs<<$EOF" >> $GITHUB_OUTPUT
echo "$PR_LIST" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
- name: Merge PRs into new branch
run: |
NEW_BRANCH="dependabot-test-${{ steps.datetime.outputs.date }}"
git checkout $NEW_BRANCH
PR_LIST=$(gh pr list --json number,headRefName --jq '.[] | "\(.number) \(.headRefName)"' | grep dependabot)
PR_LIST=$(echo "$PR_LIST" | tr -d '\r')
echo "::set-output name=numbers::$PR_LIST"
PR_LIST="${{ steps.pr_list.outputs.prs }}"
while IFS= read -r line; do
IFS=' ' read -r PR_NUMBER BRANCH_NAME <<< "$line"
echo "Merging PR #$PR_NUMBER from branch $BRANCH_NAME into $NEW_BRANCH..."
Expand All @@ -65,3 +68,61 @@ jobs:
run: |
echo "Merging process completed successfully!"
echo "New branch name: dependabot-test-${{ steps.datetime.outputs.date }}"
- name: Generate PR links
id: pr_links
run: |
PR_LIST="${{ steps.pr_list.outputs.prs }}"
PR_LINKS=""
while IFS= read -r line; do
IFS=' ' read -r PR_NUMBER BRANCH_NAME <<< "$line"
PR_URL="https://github.com/${GITHUB_REPOSITORY}/pull/$PR_NUMBER"
PR_LINKS+="\n• <$PR_URL|#${PR_NUMBER}: ${BRANCH_NAME}>"
done <<< "$PR_LIST"
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "pr_links<<$EOF" >> $GITHUB_OUTPUT
echo "$PR_LINKS" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
- name: Post to a Slack channel
uses: slackapi/[email protected]
with:
channel-id: "C03RTLRKJQP"
payload: |
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "⚡️ New iOS Dependabot Testing Branch",
"emoji": true
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Included PRs:*${{ steps.pr_links.outputs.pr_links }}"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Checkout Test Branch",
"emoji": true
},
"value": "branch-button",
"url": "https://github.com/${{ github.repository }}/tree/dependabot-test-${{ steps.datetime.outputs.date }}",
"action_id": "link-action"
}
]
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_SDK_BOT_TOKEN }}

0 comments on commit 6ff7f52

Please sign in to comment.