Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/triage-author-reply.yml
Original file line number Diff line number Diff line change
@@ -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[@]}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Major · Functional Correctness · Heavy lift

Supported by static analysis

Script executed:

set -eu
printf '%s\n' '--- changed files and diff ---'
git diff --stat 65935f1ae3462a5622dfafc663540b381c41f99c b220ec138e24bc1e0f169b7068755bfe437499a2
git diff -- .github/workflows/triage-author-reply.yml .github/workflows/triage-close-awaiting-response.yml .github/workflows/triagelabel.yml 65935f1ae3462a5622dfafc663540b381c41f99a2 b220ec138e24bc1e0f169b7068755bfe437499a2
printf '%s\n' '--- author reply workflow ---'
nl -ba .github/workflows/triage-author-reply.yml
printf '%s\n' '--- close workflow ---'
nl -ba .github/workflows/triage-close-awaiting-response.yml
printf '%s\n' '--- all awaiting/reopen/closed-comment references ---'
rg -n -i -F --glob '.github/workflows/**' -e 'awaiting-response' -e 'reopen' -e 'issue_comment' -e 'close-issue' -e 'state: open' -e 'state: closed' .github/workflows || test "$?" -eq 1
printf '%s\n' '--- all workflow files ---'
rg --files .github/workflows

Repository: NVIDIA/cuda-python

Length of output: 6736


important: Reopen automatically closed issues after an author reply.

When an author replies after triage-close-awaiting-response.yml closes an issue, this workflow removes the labels but leaves the issue closed. This contradicts the close message and prevents the issue from returning to the triage queue.

Reopen issues closed by this automation after the author replies, or route those replies to a process that can review and reopen them.

43 changes: 43 additions & 0 deletions .github/workflows/triage-close-awaiting-response.yml
Original file line number Diff line number Diff line change
@@ -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
Comment on lines +33 to +34

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor · Functional Correctness · Quick win

important: Disable stale-label removal for PRs.

If an open PR has a stale label and receives activity, actions/stale can remove that label despite these -1 settings. The action processes already-stale PRs before checking the close timer. (raw.githubusercontent.com)

Set remove-pr-stale-when-updated: false to keep this issue workflow from changing PR labels.

As per path instructions, review GitHub automation for “status and check behavior.”

Source: Path instructions

Comment on lines +33 to +34

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

— codex GPT-6 on behalf of Ralf —

These -1 values disable marking and closing PRs, but the pinned action still processes already-stale PRs and can remove their stale label after activity. Please also set remove-pr-stale-when-updated: false so this workflow leaves PR labels unchanged.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Andy-Jost, did you see this finding?

It'd be good to know what you think about it; that'll help me figure out what codex findings need more scrutiny. E.g. was the finding completely off, or too edge-casy?

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.
4 changes: 2 additions & 2 deletions .github/workflows/triagelabel.yml
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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
Expand Down
Loading