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[@]}"