From 06eea3eb1d1319ce5e1c5716389792e7681bb669 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 13:24:05 +0100 Subject: [PATCH 01/10] chore: add stale bot for issue and PR hygiene Closes #2771 Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..d8c1f0aa3 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,37 @@ +name: Stale Issues and PRs + +on: + schedule: + - cron: '30 1 * * *' + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 + with: + days-before-stale: 90 + days-before-close: 14 + stale-issue-label: stale + stale-pr-label: stale + exempt-issue-labels: pinned,security + exempt-pr-labels: pinned,security + stale-issue-message: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed in 14 days if no further activity occurs. + If this issue is still relevant, please leave a comment or remove the stale label. + stale-pr-message: > + This pull request has been automatically marked as stale because it has not had + recent activity. It will be closed in 14 days if no further activity occurs. + If this pull request is still relevant, please leave a comment or remove the stale label. + close-issue-message: > + This issue was closed because it has been inactive for more than 3 months. + Feel free to reopen if it is still relevant. + close-pr-message: > + This pull request was closed because it has been inactive for more than 3 months. + Feel free to reopen if it is still relevant. From d83dcc6dbcc53ad6d1807445bc754a476db464f3 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 13:52:16 +0100 Subject: [PATCH 02/10] chore: update stale bot to follow GitHub docs pattern Move permissions to job level, exclude PRs, and explicitly pass repo-token for compatibility with restricted workflow permissions. Closes #2771 Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index d8c1f0aa3..b7a629504 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,37 +1,29 @@ -name: Stale Issues and PRs +name: Close inactive issues on: schedule: - cron: '30 1 * * *' workflow_dispatch: -permissions: - issues: write - pull-requests: write - jobs: - stale: + close-issues: runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write steps: - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 with: - days-before-stale: 90 - days-before-close: 14 + days-before-issue-stale: 90 + days-before-issue-close: 14 stale-issue-label: stale - stale-pr-label: stale - exempt-issue-labels: pinned,security - exempt-pr-labels: pinned,security stale-issue-message: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed in 14 days if no further activity occurs. - If this issue is still relevant, please leave a comment or remove the stale label. - stale-pr-message: > - This pull request has been automatically marked as stale because it has not had - recent activity. It will be closed in 14 days if no further activity occurs. - If this pull request is still relevant, please leave a comment or remove the stale label. + This issue is stale because it has been open for 90 days with no activity. + It will be closed in 14 days if no further activity occurs. close-issue-message: > - This issue was closed because it has been inactive for more than 3 months. - Feel free to reopen if it is still relevant. - close-pr-message: > - This pull request was closed because it has been inactive for more than 3 months. + This issue was closed because it has been inactive for 14 days since being marked as stale. Feel free to reopen if it is still relevant. + days-before-pr-stale: -1 + days-before-pr-close: -1 + exempt-issue-labels: pinned,security + repo-token: ${{ secrets.GITHUB_TOKEN }} From 675e3a94cbc50c28f52a933485c1d8acab9bbdda Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:32:02 +0100 Subject: [PATCH 03/10] chore: use PAT_STALE_ACTION secret instead of GITHUB_TOKEN Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index b7a629504..699b96281 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -26,4 +26,4 @@ jobs: days-before-pr-stale: -1 days-before-pr-close: -1 exempt-issue-labels: pinned,security - repo-token: ${{ secrets.GITHUB_TOKEN }} + repo-token: ${{ secrets.PAT_STALE_ACTION }} From c4c67ee5f720407b8b9b7d5ebbed757498e2de4b Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:35:50 +0100 Subject: [PATCH 04/10] chore: add actions and contents write permissions to stale workflow Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 699b96281..c5b52de14 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -9,6 +9,8 @@ jobs: close-issues: runs-on: ubuntu-latest permissions: + actions: write + contents: write # only for delete-branch option issues: write pull-requests: write steps: From f7738153d50d2dbf42043cbf363e7b8543302e6b Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:37:33 +0100 Subject: [PATCH 05/10] chore: upgrade stale action to v10 and use default github token Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index c5b52de14..5bd8f37cc 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,7 +14,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 + - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 with: days-before-issue-stale: 90 days-before-issue-close: 14 @@ -28,4 +28,3 @@ jobs: days-before-pr-stale: -1 days-before-pr-close: -1 exempt-issue-labels: pinned,security - repo-token: ${{ secrets.PAT_STALE_ACTION }} From 67583e06c191e11da19eac37e997a395284e7104 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:38:11 +0100 Subject: [PATCH 06/10] chore: enable stale handling for pull requests Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 5bd8f37cc..431df8b1c 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,4 +1,4 @@ -name: Close inactive issues +name: Close inactive issues and pull requests on: schedule: @@ -25,6 +25,14 @@ jobs: close-issue-message: > This issue was closed because it has been inactive for 14 days since being marked as stale. Feel free to reopen if it is still relevant. - days-before-pr-stale: -1 - days-before-pr-close: -1 + days-before-pr-stale: 90 + days-before-pr-close: 14 + stale-pr-label: stale + stale-pr-message: > + This pull request is stale because it has been open for 90 days with no activity. + It will be closed in 14 days if no further activity occurs. + close-pr-message: > + This pull request was closed because it has been inactive for 14 days since being marked as stale. + Feel free to reopen if it is still relevant. exempt-issue-labels: pinned,security + exempt-pr-labels: pinned,security From bc14d955f360cd7507d13bcf582b7d1b68490b4b Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:38:54 +0100 Subject: [PATCH 07/10] chore: add pull_request trigger for testing Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 431df8b1c..721bc4216 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,6 +3,7 @@ name: Close inactive issues and pull requests on: schedule: - cron: '30 1 * * *' + pull_request: workflow_dispatch: jobs: From a1b9689ed8c9fa06cb405d4836e67940d24008db Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:39:53 +0100 Subject: [PATCH 08/10] chore: remove pull_request trigger Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 721bc4216..431df8b1c 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,7 +3,6 @@ name: Close inactive issues and pull requests on: schedule: - cron: '30 1 * * *' - pull_request: workflow_dispatch: jobs: From 09a8ca7a3d09158e933dd7f55d86390524623794 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:44:17 +0100 Subject: [PATCH 09/10] chore: simplify stale workflow config and remove unnecessary permissions Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 431df8b1c..1249a172a 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -9,25 +9,21 @@ jobs: close-issues: runs-on: ubuntu-latest permissions: - actions: write - contents: write # only for delete-branch option issues: write pull-requests: write steps: - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 with: - days-before-issue-stale: 90 - days-before-issue-close: 14 + days-before-stale: 90 + days-before-close: 14 stale-issue-label: stale + stale-pr-label: stale stale-issue-message: > This issue is stale because it has been open for 90 days with no activity. It will be closed in 14 days if no further activity occurs. close-issue-message: > This issue was closed because it has been inactive for 14 days since being marked as stale. Feel free to reopen if it is still relevant. - days-before-pr-stale: 90 - days-before-pr-close: 14 - stale-pr-label: stale stale-pr-message: > This pull request is stale because it has been open for 90 days with no activity. It will be closed in 14 days if no further activity occurs. From bd9fe5cd6228bb0d7af2b6435a0881f5fcfacd50 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Mon, 23 Feb 2026 16:45:46 +0100 Subject: [PATCH 10/10] chore: use default stale timings (60 days stale, 7 days close) Signed-off-by: Miguel Martinez --- .github/workflows/stale.yml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 1249a172a..b28cd78ff 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,21 +14,17 @@ jobs: steps: - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 with: - days-before-stale: 90 - days-before-close: 14 - stale-issue-label: stale - stale-pr-label: stale stale-issue-message: > - This issue is stale because it has been open for 90 days with no activity. - It will be closed in 14 days if no further activity occurs. + This issue is stale because it has been open for 60 days with no activity. + It will be closed in 7 days if no further activity occurs. close-issue-message: > - This issue was closed because it has been inactive for 14 days since being marked as stale. + This issue was closed because it has been inactive for 7 days since being marked as stale. Feel free to reopen if it is still relevant. stale-pr-message: > - This pull request is stale because it has been open for 90 days with no activity. - It will be closed in 14 days if no further activity occurs. + This pull request is stale because it has been open for 60 days with no activity. + It will be closed in 7 days if no further activity occurs. close-pr-message: > - This pull request was closed because it has been inactive for 14 days since being marked as stale. + This pull request was closed because it has been inactive for 7 days since being marked as stale. Feel free to reopen if it is still relevant. exempt-issue-labels: pinned,security exempt-pr-labels: pinned,security