Files
ProxmoxVE/.github/workflows/lock-issue.yaml
2026-01-29 14:29:19 +01:00

69 lines
2.2 KiB
YAML
Generated

name: Lock closed issues
on:
issues:
types: [closed]
pull_request:
types: [closed]
schedule:
- cron: "0 0 * * *" # Run daily at midnight for backlog
workflow_dispatch:
permissions:
issues: write
pull-requests: write
concurrency:
group: lock-threads
jobs:
# Lock immediately when issue/PR is closed (new issues get comment)
lock-on-close:
if: github.event_name == 'issues' || github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Lock issue/PR after close
uses: actions/github-script@v7
with:
script: |
const createdAt = new Date(context.payload.issue?.created_at || context.payload.pull_request?.created_at);
const cutoffDate = new Date('2026-01-27T00:00:00Z');
const isNew = createdAt >= cutoffDate;
const number = context.payload.issue?.number || context.payload.pull_request?.number;
const isIssue = !!context.payload.issue;
// Add comment only for new issues/PRs
if (isNew) {
const comment = isIssue
? 'This issue has been automatically locked. Please open a new issue for related bugs and reference this issue if needed.'
: 'This pull request has been automatically locked. Please open a new issue for related bugs.';
await github.rest.issues.createComment({
...context.repo,
issue_number: number,
body: comment
});
}
// Lock the issue/PR
await github.rest.issues.lock({
...context.repo,
issue_number: number,
lock_reason: 'resolved'
});
# Scheduled run for backlog (old issues without comment)
lock-backlog:
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v6
with:
github-token: ${{ github.token }}
issue-inactive-days: 1
issue-lock-reason: "resolved"
issue-comment: ""
pr-inactive-days: 1
pr-lock-reason: "resolved"
pr-comment: ""