Skip to content

Weekly PR Auto Merge #117

Weekly PR Auto Merge

Weekly PR Auto Merge #117

Workflow file for this run

name: "Weekly PR Auto Merge"
on:
schedule:
- cron: '40 12 * * 0'
- cron: '45 12 * * 0'
- cron: '50 12 * * 0'
- cron: '55 12 * * 0'
workflow_dispatch:
jobs:
merge:
name: "Auto Merge at Sunday Night"
runs-on: "ubuntu-latest"
steps:
- name: "Merge pull request"
uses: "actions/github-script@v6"
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const query = `query($owner:String!, $name:String!) {
repository(owner: $owner, name: $name) {
pullRequests(last: 1, states: OPEN) {
edges {
node {
number
headRefName
baseRefName
author {
login
}
repository {
name
}
mergeable
labels(first: 10) {
nodes {
name
}
}
}
}
}
}
}`
const variables = {
owner: context.repo.owner,
name: context.repo.repo,
}
const {repository:{pullRequests:{edges: list}}} = await github.graphql(query, variables)
for( let {node} of list) {
try {
if(node.mergeable === "CONFLICTING") {
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: node.number,
state: "closed"
})
} else {
await github.rest.pulls.merge({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: node.number,
merge_method: "merge"
})
}
} catch (e) {
console.log("error", e);
}
}