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