# PR#97: A Colleague's Pull Request Is Neither to Merge Nor Stuck for the User Version: minor > **WARNING:** This document describes only the change applied in this PR. > It may already be outdated once the next PR is merged. > Historic PR documentation is not maintained along with new PRs; treat it as a snapshot. ## Related Links - [werkregie PR#94](https://git.javagil.de/mi/werkregie/pulls/94), its follow-up `TODO.colleague`. ## Problem werkregie knows two kinds of pull requests: the user's own and every other one, which it treats as an agent's. On Hostsharing's Gitea, a colleague's pull request, e.g. by `hsh-stefanbegerad`, then shows Mergen when it is approved and green, and Festgefahren on RED or after a conflict of 30 min. The colleague merges and rebases it, not the user. ## Non-Goals - No change for the user's own pull request or for an agent's. - No change of "Agent arbeitet" (werkregie PR#96) and of the message to the author session of a stuck pull request: they come from the sessions of the user's agents, not from the author of the pull request. ## Specification ### Feature: a pull request is the user's own, an agent's, or a colleague's #### Scenario#97.01: a colleague's approved and green pull request … so that the user does not merge what the colleague merges. - **Given** an open pull request by `hsh-stefanbegerad`, who is not in `agents`, approved by `ai-reviewer` and by the user, with all checks green and no conflict - **When** werkregie reads the pull request - **Then** "Du bist dran" shows it not under Mergen, and its marker is Von dir approved ##### Verified by - [GiteaSourceTest "a colleague's pull request is never to merge"](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/GiteaSourceTest.kt) - [GiteaSourceFetchTest "the open pull requests of the user, each with its statuses, reviews and flags"](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/GiteaSourceFetchTest.kt) #### Scenario#97.02: a colleague's pull request in conflict or RED … so that the user does not chase the colleague's work as a stuck agent. - **Given** an open pull request by a colleague, in conflict for 3 h without a new commit, or RED for 2 h - **When** werkregie reads the pull request - **Then** it shows no Festgefahren, and werkregie asks Gitea nothing about since when the conflict waits ##### Verified by - [GiteaSourceTest "a colleague's pull request is never stuck"](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/GiteaSourceTest.kt) - [GiteaSourceFetchTest "the open pull requests of the user, each with its statuses, reviews and flags"](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/GiteaSourceFetchTest.kt) #### Scenario#97.03: a colleague's pull request waits for the user's review … so that the user still reviews the colleague's work. - **Given** an open pull request by a colleague with werkrevisor's YELLOW, or without werkrevisor - **When** werkregie reads the pull request - **Then** "Du bist dran" shows it under Dein Approval, as before ##### Verified by - [GiteaSourceTest "a colleague's pull request waits for the user's approval as an agent's does"](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/GiteaSourceTest.kt) #### Scenario#97.04: an agent with another login … so that an agent's pull request keeps Mergen on each Gitea instance. - **Given** the Gitea entry with `agents: [claude-code, hsh-claude-code]` - **And** a pull request by `HSH-Claude-Code`, approved and with all checks green - **When** werkregie reads the pull request - **Then** "Du bist dran" shows it under Mergen ##### Verified by - [GiteaSourceTest "the agents are the configured logins, regardless of case"](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/GiteaSourceTest.kt) - [GiteaSourceFetchTest "the open pull requests of the user, each with its statuses, reviews and flags"](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/GiteaSourceFetchTest.kt) ## Solution `GiteaConfig` gets `agents`, by default `[claude-code]`, next to `reviewBots`; the case of a login does not count. `GiteaSource` tells the user's own pull request (author is the token's user, as before), an agent's (author in `agents`, ignoring case) and a colleague's (any other author). A colleague's pull request gets only Dein Approval and Von dir approved; no Mergen, no Festgefahren, and so no request for `conflictSince`. `Authors.working` and `Authors.attach` stay unchanged. `attach` acts only on Festgefahren, which a colleague's pull request no longer has. `working` acts on Dein Approval of any pull request, but only where a session of this werkregie wrote on its branch within 10 min; such a session changes the colleague's branch on behalf of the user, so the approval waits for it as for an agent's. ## Release Notes A colleague's pull request no longer shows Mergen or Festgefahren; the colleague merges and rebases it. `agents` in a Gitea entry names the logins of the coding agents, by default `[claude-code]`. ## Open Questions - [x] Which login does the coding agent use on dev.hostsharing.net? `claude-code`, as the user answered; the default fits, and the server's `dashboard.yml` needs no change.