Was macht Antwort auf Code-Review-Anmerkung im PR?
Antworte auf eine Code-Review-Anmerkung in einem GitHub-PR und löse den Thread auf.
Eingaben
Leite alle Eingaben aus dem Gesprächskontext ab. Frage nur bei Unklarheit nach.
Eingabe 1 – PR-Nummer oder -URL. Der Pull-Request, auf den reagiert werden soll. Aus dem Kontext ableiten (z. B. eine zuvor angezeigte PR-URL oder einen Branch-Namen). Falls wirklich mehrdeutig, ausführen:
gh pr list --head "$(git rev-parse --abbrev-ref HEAD)" --json number,url --jq '.[0]'
Eingabe 2 – Die zu beantwortende Anmerkung.
Ein spezifischer Review-Fund – üblicherweise identifiziert durch Nummer (#2), Datei+Zeile oder zitierten Text aus der zuvor im Gespräch angezeigten Anmerkungstabelle.
Wenn keine Anmerkungstabelle im Gespräch vorhanden ist und die Fähigkeit dakubo-display-pr-remarks verfügbar ist, verwende sie, um die Tabelle zu erstellen. Falls nicht, frage den Benutzer nach der Anmerkung.
Eingabe 3 – Die Antwort. Die zu postende Antwort: eine Erklärung, Bestätigung oder Zusammenfassung der Korrektur. Aus dem Kontext ableiten (z. B. was gerade korrigiert oder besprochen wurde). Bei Unklarheit nachfragen.
Ablauf
1. Kommentar-ID auflösen
Inline-Review-Kommentare für den PR abrufen:
gh api repos/:owner/:repo/pulls/<PR>/comments --paginate \
--jq '.[] | {id, path, line: (.line // .original_line), body: .body[0:120]}'
Die Zielanmerkung anhand von Zeilennummer, Dateipfad oder Textausschnitt abgleichen. Die id notieren.
2. Antwort posten
gh api repos/:owner/:repo/pulls/<PR>/comments \
--method POST \
--field body="<answer>" \
--field in_reply_to=<comment_id>
3. Thread auflösen
Den Review-Thread finden, der diesen Kommentar enthält:
gh api graphql -f query='
{
repository(owner: "<owner>", name: "<repo>") {
pullRequest(number: <PR>) {
reviewThreads(first: 100) {
nodes {
id
isResolved
comments(first: 1) { nodes { databaseId } }
}
}
}
}
}'
Den Thread abgleichen, dessen comments.nodes[0].databaseId der ursprünglichen Kommentar-id entspricht (nicht der Antwort). Dann auflösen:
gh api graphql -f query='
mutation {
resolveReviewThread(input: { threadId: "<thread_node_id>" }) {
thread { isResolved }
}
}'
Ausgabe
Bestätigung: Antwort an Kommentar <id> in <file>:<line> gepostet, Thread aufgelöst. Ein Satz.
Was NICHT zu tun ist
– Keine Antwort erfinden – aus dem Kontext ableiten oder nachfragen. – Keinen Thread auflösen, ohne zuvor eine Antwort zu posten. – Den PR nicht erraten, wenn auf diesem Branch mehrere offen sind; nachfragen.