parent
8862239a11
commit
6c6f7021d1
1 changed files with 50 additions and 0 deletions
@ -0,0 +1,50 @@ |
||||
name: Close PRs with Feedback |
||||
on: |
||||
workflow_dispatch: |
||||
schedule: |
||||
- cron: '0 0 * * *' |
||||
jobs: |
||||
close-pr: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- name: Close PR if it has label "feedback left" and no changes in 7 days |
||||
uses: actions/github-script@v3 |
||||
with: |
||||
github-token: ${{ secrets.GITHUB_TOKEN }} |
||||
script: | |
||||
const { data: pullRequests } = await github.pulls.list({ |
||||
owner: context.repo.owner, |
||||
repo: context.repo.repo, |
||||
state: 'open', |
||||
base: 'master', |
||||
}); |
||||
|
||||
for (const pullRequest of pullRequests) { |
||||
const { data: labels } = await github.issues.listLabelsOnIssue({ |
||||
owner: context.repo.owner, |
||||
repo: context.repo.repo, |
||||
issue_number: pullRequest.number, |
||||
}); |
||||
|
||||
const feedbackLabel = labels.find((label) => label.name === 'feedback left'); |
||||
if (feedbackLabel) { |
||||
const lastUpdated = new Date(pullRequest.updated_at); |
||||
const sevenDaysAgo = new Date(); |
||||
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7); |
||||
|
||||
if (lastUpdated < sevenDaysAgo) { |
||||
await github.issues.createComment({ |
||||
owner: context.repo.owner, |
||||
repo: context.repo.repo, |
||||
issue_number: pullRequest.number, |
||||
body: 'Closing this PR because there has been no activity for the past 7 days. Feel free to reopen if you have any feedback.', |
||||
}); |
||||
await github.pulls.update({ |
||||
owner: context.repo.owner, |
||||
repo: context.repo.repo, |
||||
pull_number: pullRequest.number, |
||||
state: 'closed', |
||||
}); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue