• Will Chen's avatar
    Add workflow to handle comments on closed issues (#2409) · 2efeb832
    Will Chen 提交于
    ## Summary
    - Adds a GitHub workflow that uses Claude Code to intelligently handle
    comments on closed issues
    - If the original issue author comments expressing the issue persists or
    has questions, automatically re-opens the issue
    - If someone other than the original author comments, directs them to
    open a new issue
    
    ## Test plan
    - Comment on a closed issue as the original author with something like
    "This is still happening" - should re-open the issue
    - Comment on a closed issue as someone else - should receive a message
    to open a new issue
    - Comment on a closed issue as the original author with just "Thanks!" -
    should not trigger any action
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2409">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Medium Risk**
    > Adds a new GitHub Action that runs on untrusted issue comments and can
    reopen issues / post replies, so misclassification or prompt/permission
    issues could cause unwanted issue churn or spam despite restricted `gh`
    commands.
    > 
    > **Overview**
    > Introduces a new `closed-issue-comment.yml` workflow triggered on
    `issue_comment` creation for **closed issues only** (excluding PRs),
    running in the `ai-bots` environment with `issues: write`.
    > 
    > The job invokes `anthropics/claude-code-base-action@v1` with a
    constrained toolset to either **reopen and acknowledge** when the
    commenter is the original issue author and indicates the issue isn’t
    resolved, or **reply with guidance to open a new issue** when the
    commenter is not the original author; it explicitly treats
    `COMMENT_BODY` as untrusted input.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    0fb668683350ab3f205d4e627ba0a548d4caf5a7. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Adds a GitHub workflow to handle comments on closed issues. It reopens
    when the original author says the problem persists, and asks non-authors
    to open a new issue.
    
    - **New Features**
    - Triggers on comments for closed issues only (not PRs), with minimal
    permissions and restricted tools; treats comment text as untrusted
    input.
    - If the original author signals the issue isn’t resolved or has
    follow-up questions, reopens and replies; otherwise does nothing.
    - If the commenter isn’t the original author, replies asking them to
    open a new issue.
    
    <sup>Written for commit 0fb668683350ab3f205d4e627ba0a548d4caf5a7.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    ---------
    Co-authored-by: 's avatarClaude Opus 4.5 <noreply@anthropic.com>
    2efeb832
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
makers 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxfmtrc.json 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
AGENTS.md 正在载入提交数据...
CLA.md 正在载入提交数据...
CLAUDE.md 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
lint-staged.config.js 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...
windowsSign.ts 正在载入提交数据...