|
|
|
name: Protobuf Janitor
|
|
|
|
|
|
|
|
on:
|
|
|
|
schedule:
|
|
|
|
# Run daily at 10 AM UTC (2 AM PDT)
|
|
|
|
- cron: 0 10 * * *
|
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
permissions: {}
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
stale-prs:
|
|
|
|
name: Close Stale Copybara PRs
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
|
|
contents: write # to allow deleting branches
|
|
|
|
pull-requests: write # to allow closing the PR
|
|
|
|
env:
|
|
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
GH_REPO: ${{ github.repository }}
|
|
|
|
steps:
|
|
|
|
- run: |
|
|
|
|
set -ex
|
|
|
|
STALE_PRS=$(gh pr list --author "app/copybara-service" --limit 500 \
|
|
|
|
--json "number" --search "updated:<=$(date --date="-7 day" +%F)" \
|
|
|
|
| jq ".[].number")
|
|
|
|
for pr in $STALE_PRS; do
|
|
|
|
echo "Closing #$pr..."
|
|
|
|
gh pr close --comment "Auto-closing Copybara pull request" --delete-branch "$pr"
|
|
|
|
done
|
|
|
|
|
|
|
|
stale-others:
|
|
|
|
name: Close stale non-copybara PRs and issues
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
|
|
issues: write # allow the action to comment on, add labels to, and close issues
|
|
|
|
pull-requests: write # allow the action to comment on, add labels to, and close PRs
|
|
|
|
steps:
|
|
|
|
- uses: actions/stale@b69b346013879cedbf50c69f572cd85439a41936
|
|
|
|
with:
|
|
|
|
stale-issue-message: >
|
|
|
|
We triage inactive PRs and issues in order to make it easier to find
|
|
|
|
active work. If this issue should remain active or becomes active
|
|
|
|
again, please add a comment.
|
|
|
|
|
|
|
|
|
|
|
|
This issue is labeled `inactive` because the last activity was over
|
|
|
|
90 days ago. This issue will be closed and archived after 14
|
|
|
|
additional days without activity.
|
|
|
|
close-issue-message: >
|
|
|
|
We triage inactive PRs and issues in order to make it easier to find
|
|
|
|
active work. If this issue should remain active or becomes active
|
|
|
|
again, please reopen it.
|
|
|
|
|
|
|
|
|
|
|
|
This issue was closed and archived because there has been no new
|
|
|
|
activity in the 14 days since the `inactive` label was added.
|
|
|
|
stale-pr-message: >
|
|
|
|
We triage inactive PRs and issues in order to make it easier to find
|
|
|
|
active work. If this PR should remain active, please add a comment.
|
|
|
|
|
|
|
|
|
|
|
|
This PR is labeled `inactive` because the last activity was over 90
|
|
|
|
days ago. This PR will be closed and archived after 14 additional
|
|
|
|
days without activity.
|
|
|
|
close-pr-message: >
|
|
|
|
We triage inactive PRs and issues in order to make it easier to find
|
|
|
|
active work. If this PR should remain active or becomes active
|
|
|
|
again, please reopen it.
|
|
|
|
|
|
|
|
|
|
|
|
This PR was closed and archived because there has been no new
|
|
|
|
activity in the 14 days since the `inactive` label was added.
|
|
|
|
stale-issue-label: 'inactive'
|
|
|
|
stale-pr-label: 'inactive'
|
|
|
|
exempt-issue-labels: 'help wanted'
|
|
|
|
days-before-stale: 90
|
|
|
|
days-before-close: 14
|
|
|
|
operations-per-run: 100
|