Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

feat(review): read-only conversational /ask for non-write users

未关闭
#331 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
42/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
冷清
技术栈
github, java

调研方向

Start with ManualReviewAuthorizer, MaintainerReplyService, TriggerDetector, and WebhookController.maybeDispatchConversationalMention; trace how authorization and mention routing work, then review the related spend cap and pause behavior in #42. Done means the config, README, and tests cover read-only question routing while slash commands remain write-gated and the ask path creates no reviews, findings, or check runs.

由索引模型根据 Issue 内容生成。

描述

enhancement java
Problem Statement

Today all commands except /help require write access (CommentCommandService.HELP_TEXT, ManualReviewAuthorizer). Conversational @mention replies on PRs and review threads use the same authorizer (MaintainerReplyService → ManualReviewAuthorizer.isAuthorized), so read-only collaborators cannot ask questions without triggering spend-heavy review commands.

This is an intentional simplicity tradeoff (prevent drive-by AI spend) documented in PLAN.md → Simplicity tradeoffs, but teams with many read-only reviewers (docs, QA, security readers) want a question-only path that does not post findings, suggestions, check runs, or merge-blocking verdicts.

Proposed Solution

Add a read-only ask mode for conversational mentions (not slash commands):

  • Eligible users: any collaborator with read access (or higher) on the repo — confirmed via GitHub collaborator permission API (same pattern as write check in ManualReviewAuthorizer, but accept read/triage/write/admin).
  • Trigger: bare @bot … mention on a PR comment or review thread (WebhookController.maybeDispatchConversationalMention / review-thread path) where the body is a question (no command verb like review, describe, etc. — reuse TriggerDetector command detection to reject command-shaped mentions).
  • Behavior: single conversational reply (MaintainerReplyService) — no check run, no inline findings, no REQUEST_CHANGES, no label mutations. Optional disclosure footer: "Read-only ask — for a full review, a maintainer with write access can run /review."
  • Spend controls: honor #42 caps and /pause; consider a separate lower token budget config for ask-only replies.
  • 👀 ack: if #315 lands first, read-only asks should not get 👀 (per #315 scope: commands only) — document clearly.

Config knob, e.g. thrillhousebot.review.read-only-ask-enabled (default: false to preserve current fail-closed behavior).

Related issues
  • #315 — 👀 on commands only (explicitly excludes conversational asks)
  • #322–#323 — other simplicity-tradeoff knobs (same milestone theme)
  • #42 — spend cap
  • #50 — model config / budgets
Acceptance criteria
  • Read-only collaborator can get a conversational answer when read-only-ask-enabled=true
  • Read-only user still cannot run /review, /describe, or other write-gated slash commands
  • Ask path never creates or updates check runs, PR reviews, or inline finding comments
  • Write users unchanged — existing authorized conversational + command behavior
  • Config + README documented; tests for auth gate and command-vs-ask routing
Alternatives considered
  • Allow /ask slash command — clearer UX but expands command surface; mention-only keeps parity with "ask the bot a question" flow.
  • Open conversational replies to everyone — rejected; still need collaborator check to limit spam.
Priority

Important — simplicity tradeoff evolution; target v0.5.0 with other configurability work (#322, #324).

Code of Conduct
  • I have searched for existing issues and this is not a duplicate.
主要语言
Java
星标
35
派生
7
平均合并
7 小时 7 分钟
30 天内合并 PR
225

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

devops-thiago/ThrillhouseBot 的其他 Issue

查看 devops-thiago/ThrillhouseBot 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。