67 lines
2.3 KiB
YAML
67 lines
2.3 KiB
YAML
|
name: "prautomerge"
|
||
|
|
||
|
on:
|
||
|
workflow_run:
|
||
|
workflows: ["prbuild"]
|
||
|
types:
|
||
|
- completed
|
||
|
|
||
|
permissions:
|
||
|
contents: write
|
||
|
pull-requests: write
|
||
|
|
||
|
jobs:
|
||
|
Dependabot-Automerge:
|
||
|
runs-on: ubuntu-latest
|
||
|
# Contains workaround to execute if dependabot updates the PR by checking for the base branch in the linked PR
|
||
|
# The the github.event.workflow_run.event value is 'push' and not 'pull_request'
|
||
|
# dont work with multiple workflows when last returns success
|
||
|
if: >-
|
||
|
github.event.workflow_run.conclusion == 'success'
|
||
|
&& github.actor == 'dependabot[bot]'
|
||
|
&& github.event.sender.login == 'dependabot[bot]'
|
||
|
&& github.event.sender.type == 'Bot'
|
||
|
&& (github.event.workflow_run.event == 'pull_request'
|
||
|
|| (github.event.workflow_run.event == 'push' && github.event.workflow_run.pull_requests[0].base.ref == github.event.repository.default_branch ))
|
||
|
steps:
|
||
|
- name: Approve Changes and Merge changes if label 'dependencies' is set
|
||
|
uses: actions/github-script@v5
|
||
|
with:
|
||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||
|
script: |
|
||
|
console.log(context.payload.workflow_run);
|
||
|
|
||
|
var labelNames = await github.paginate(
|
||
|
github.issues.listLabelsOnIssue,
|
||
|
{
|
||
|
repo: context.repo.repo,
|
||
|
owner: context.repo.owner,
|
||
|
issue_number: context.payload.workflow_run.pull_requests[0].number,
|
||
|
},
|
||
|
(response) => response.data.map(
|
||
|
(label) => label.name
|
||
|
)
|
||
|
);
|
||
|
|
||
|
console.log(labelNames);
|
||
|
|
||
|
if (labelNames.includes('dependencies')) {
|
||
|
console.log('Found label');
|
||
|
|
||
|
await github.pulls.createReview({
|
||
|
repo: context.repo.repo,
|
||
|
owner: context.repo.owner,
|
||
|
pull_number: context.payload.workflow_run.pull_requests[0].number,
|
||
|
event: 'APPROVE'
|
||
|
});
|
||
|
console.log('Approved PR');
|
||
|
|
||
|
await github.pulls.merge({
|
||
|
repo: context.repo.repo,
|
||
|
owner: context.repo.owner,
|
||
|
pull_number: context.payload.workflow_run.pull_requests[0].number,
|
||
|
});
|
||
|
|
||
|
console.log('Merged PR');
|
||
|
}
|