mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-16 17:42:30 +00:00
51 lines
1.3 KiB
YAML
51 lines
1.3 KiB
YAML
name: close-prs
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 22 * * *" # Daily at 10:00 PM UTC
|
|
workflow_dispatch:
|
|
inputs:
|
|
dry-run:
|
|
description: "Log matching PRs without closing them"
|
|
type: boolean
|
|
default: true
|
|
max-close:
|
|
description: "Maximum matching PRs to close"
|
|
type: string
|
|
required: false
|
|
default: "50"
|
|
|
|
jobs:
|
|
close:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 240
|
|
permissions:
|
|
contents: read
|
|
issues: write
|
|
pull-requests: write
|
|
steps:
|
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
|
|
|
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
|
|
with:
|
|
bun-version: latest
|
|
|
|
- name: Close old PRs without enough positive reactions
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
run: |
|
|
max_close="${{ inputs['max-close'] }}"
|
|
if [ -z "$max_close" ]; then
|
|
max_close="50"
|
|
fi
|
|
|
|
args=("--threshold" "2" "--age-months" "1" "--sleep-ms" "20000" "--max-close" "$max_close")
|
|
|
|
if [ "${{ github.event_name }}" = "schedule" ]; then
|
|
args+=("--execute")
|
|
elif [ "${{ inputs['dry-run'] }}" = "false" ]; then
|
|
args+=("--execute")
|
|
fi
|
|
|
|
bun script/github/close-prs.ts "${args[@]}"
|