The Launchpad sink takes the completed AI review and publishes it directly to the merge proposal. It works in two steps: first it posts any inline comments against the numbered-diff line numbers in the active preview diff, then it posts a summary comment containing the overall verdict and a formatted list of general comments. The verdict is recorded as a Launchpad code-review vote so reviewers and CI can act on it immediately.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/goulinkh/code-review-harness/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Authentication
The sink authenticates using OAuth 1.0a HMAC-SHA1. Set the following environment variables before running:LP_CONSUMER_KEY defaults to "crh" when omitted. You can also supply credentials inline via LaunchpadSinkOptions (see Programmatic usage below); inline values override the environment variables.
Configuration
The sink accepts aLaunchpadSinkOptions object:
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Launchpad API merge proposal URL (same format as the provider). |
api | object | No | Pre-constructed LaunchpadApi instance. Overrides all OAuth options when provided. |
accessToken | string | No | OAuth access token. Falls back to LP_ACCESS_TOKEN. |
accessSecret | string | No | OAuth access secret. Falls back to LP_ACCESS_SECRET. |
consumerKey | string | No | OAuth consumer key. Falls back to LP_CONSUMER_KEY, then "crh". |
Verdict mapping
The agent produces a verdict string which the sink converts to the corresponding Launchpad code-review vote:| Agent verdict | Launchpad vote |
|---|---|
approve | Approve |
needs-work | Needs Fixing |
abstain | Abstain |
Inline comment behaviour
The sink reads thenumbered.diff file from the workspace to validate inline comment keys. Only keys that correspond to single numbered-diff line numbers are posted. Range keys (e.g. "5-10") and header-line keys are silently dropped.
Inline comments are posted in a single batch API call before the summary comment is posted, so both appear in the correct order on the merge proposal.
Usage
CLI
Programmatic
createLaunchpadSink is impure — it reads environment variables for OAuth config when credentials are not supplied inline.