diff --git a/.github/workflows/triage-author-reply.yml b/.github/workflows/triage-author-reply.yml new file mode 100644 index 00000000000..fb3595411cc --- /dev/null +++ b/.github/workflows/triage-author-reply.yml @@ -0,0 +1,42 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 + +# When the author of an issue labeled "awaiting-response" comments, remove that label (and +# "stale", if present) so that the issue returns to the triage queue. + +name: "Triage: remove awaiting-response on author reply" + +on: + issue_comment: + types: + - created + +permissions: {} + +jobs: + remove-awaiting-response: + if: >- + ${{ + (github.repository_owner == 'nvidia' || github.repository_owner == 'nvidia-dev') && + !github.event.issue.pull_request && + github.event.comment.user.login == github.event.issue.user.login && + contains(github.event.issue.labels.*.name, 'awaiting-response') + }} + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - name: Remove awaiting-response + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + NUMBER: ${{ github.event.issue.number }} + HAS_STALE: ${{ contains(github.event.issue.labels.*.name, 'stale') }} + run: | + set -euo pipefail + args=(--remove-label awaiting-response) + if [[ "$HAS_STALE" == "true" ]]; then + args+=(--remove-label stale) + fi + gh issue edit "$NUMBER" "${args[@]}" diff --git a/.github/workflows/triage-close-awaiting-response.yml b/.github/workflows/triage-close-awaiting-response.yml new file mode 100644 index 00000000000..5dae438e31a --- /dev/null +++ b/.github/workflows/triage-close-awaiting-response.yml @@ -0,0 +1,43 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 + +# Close issues that wait on their reporter. An issue labeled "awaiting-response" with no +# activity for 7 days gets a warning and the "stale" label; 7 days after the warning it closes +# as not planned. Any activity removes "stale" and restarts the clock. Pull requests are never +# touched. + +name: "Triage: close issues awaiting response" + +on: + schedule: + - cron: "17 6 * * *" + workflow_dispatch: + +permissions: {} + +jobs: + close-awaiting-response: + if: ${{ github.repository_owner == 'nvidia' || github.repository_owner == 'nvidia-dev' }} + runs-on: ubuntu-latest + permissions: + actions: write + issues: write + steps: + - name: Warn and close issues awaiting response + uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 + with: + only-issue-labels: awaiting-response + days-before-issue-stale: 7 + days-before-issue-close: 7 + days-before-pr-stale: -1 + days-before-pr-close: -1 + stale-issue-label: stale + close-issue-reason: not_planned + stale-issue-message: >- + This issue has waited 7 days for the information we asked for. + It will close in 7 days unless there is a reply. + Comment here to keep it open. + close-issue-message: >- + Closing because we did not hear back. + Comment here with the requested information and we'll reopen it. diff --git a/.github/workflows/triagelabel.yml b/.github/workflows/triagelabel.yml index a1e7eafe190..5b6a6eaad6c 100644 --- a/.github/workflows/triagelabel.yml +++ b/.github/workflows/triagelabel.yml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 @@ -12,7 +12,7 @@ on: jobs: triage: - if: ${{ github.repository_owner == 'nvidia' }} + if: ${{ github.repository_owner == 'nvidia' || github.repository_owner == 'nvidia-dev' }} runs-on: ubuntu-latest permissions: issues: write