Decide whether a Run triggered by a label the App's own Attempt set needs approval
メンテナーはふだん 1 日以内に返信
関連するプルリクエストがすでにマージされています。
- #745 @usine-phildl による — マージ済み
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 28/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- github, typescript
調査の方向性
Start with ADR 0007 and ADR 0022, then read ADR 0011's amendment and the GraphQL timeline slice mentioned in the issue. Compare the three proposed policies and document a decision; done means the security review concern has a chosen resolution, with any follow-up implementation scope recorded.
索引モデルが issue の本文から書いたものです。
説明
Since #386 a Loop can run with permissions: read: its token has contents: read and keeps issues: write and pull_requests: write, so a review Agent still posts reviews and comments and moves labels. Moving labels is how a review Loop hands work on (review-passed to finish-pr), so a read Attempt can start a write Run by design. ADR 0011's 2026-10-19 amendment and the loop file reference say so.
What nothing records today is who set the trigger label. A label the operator set on the Board and a label the App's own Attempt set look the same to polling (ADR 0007: the Event is the Item's content), so a Loop with approval: none opens a Run either way. A misbehaving or prompt-injected review Agent could therefore chain into a write Run without a person in the loop, on a repository that may be public.
Options to weigh, not to build yet:
- Keep it as is. The cycle budget (ADR 0022) bounds the chain, and the operator chose
approval: noneon the write Loop knowing review Loops feed it. - Record the label's actor from the Item's timeline (the GraphQL slice already carries label events with their actor) and expose it to
if:expressions, so a Loop author can writeapproval: requiredfor App-set labels only, or refuse them. - Require approval for any Run whose trigger label was last set by the App's own bot login, as an engine rule.
Option 2 keeps the decision with the Loop author and uses an open mechanism rather than a new per-type rule. Raised by the security review of #386 on 2026-10-19; related to #226, #231, #243.
Decisions (2026-10-28)
Expose the label's actor to if: and let loop authors decide; no engine rule and no new per-type setting.
- Add, for each current label of an item, the actor and time of its last
LabeledEventto the polling slice and theif:payload (packages/github/src/polling/payload.ts,packages/config/src/payload-slices.ts), for exampleitem.labelEvents["ready-for-agent"].actor.loginand.actor.type(BotorUser). Fetch it in the same polling query; measure the extra GraphQL cost in the pull request. - Document the fields in the expressions reference, with an example
if:that requires approval when the App itself set the label. - Keep the cycle budget as the bound it is today.
- 主要言語
- TypeScript
- スター
- 1
- フォーク
- 0
- 平均マージ
- 4時間 26分
- マージ済み PR(30日)
- 280
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
basaltbytes/usine のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
basaltbytes/usine#802 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
basaltbytes/usine#801 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
basaltbytes/usine#800 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 10/100
basaltbytes/usine#799 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
basaltbytes/usine#798 ·
メンテナーはふだん 1 日以内に返信
basaltbytes/usine の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
code-yeongyu/senpi#5262 ·
メンテナーはふだん 1 日以内に返信
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
lingdojo/kana-dojo#33420 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] inspect_schema matches named container case-insensitively without preferring exact match対応中かも @Maaz2212 が今日担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
libredb/libredb-studio#2128 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Yeachan-Heo/gajae-code#7474 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
status: needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
mastra-ai/mastra#29108 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信