# Connect GitHub — triage to Prodpeek Profile: `github/triage-read` · connection kind: `http` · tier 1 Credential: Fine-grained personal access token Suggested URL: `https://api.githubcopilot.com/mcp/` Issues and pull requests, without the code. The narrower of the two GitHub profiles — pick this one when the agent triages rather than reads source. ## What you must not do You cannot create this credential on the user's behalf — it needs their login and, usually, an approval step. Walk them through it and verify the result. Never ask them to paste the credential into the chat; it goes straight into Prodpeek's console, which encrypts it at rest. If the user wants the agent to read source as well, do not widen this token — create a second connection on github/code-read. Two profiles, two verdicts. ## Grant exactly these permissions - `Repository access → Only select repositories → pick ONE` — The token is the only thing that makes a connection repo-specific — the MCP endpoint is one URL for every repository and the repo is an argument. - `Repository permissions → Issues → Read-only` — Listing and reading issues. - `Repository permissions → Pull requests → Read-only` — Listing and reading pull requests. - `Repository permissions → Metadata → Read-only` — Required by GitHub whenever another repository permission is set. ## Refuse these, and say why if the user asks for them - `Contents (any level)` — This profile is deliberately not about the code. If you want file contents and history, use github/code-read instead of widening this token — the two profiles exist so the choice is visible. - `Any permission set to Read and write` — The profile denies create_pull_request and merge_pull_request; a token that cannot perform them means the denial holds regardless. - `Secret scanning alerts` — Those alerts contain the detected secrets themselves. - `A classic PAT` — Classic tokens scope to accounts, not repositories, and `repo` includes write. ## Verify before the credential is used - Exactly one repository under Repository access. - Issues and Pull requests are Read-only; Contents is No access. - Expiry is set. ## Then, in Prodpeek 1. Services → Add a service → choose the profile `github/triage-read`. 2. Connection kind `http`, URL `https://api.githubcopilot.com/mcp/`. 3. Paste the credential. It is encrypted in the store and never shown again. 4. Run **Test connection**. It lists every tool the upstream advertises and how the profile classifies each one. Anything under "not in the policy" is denied by default — report that list rather than assuming it is fine. ## Full human walkthrough ## Which GitHub profile do I want? `github/triage-read` reads issues and pull request metadata. `github/code-read` reads the code — files, history, diffs — and is Tier 2 because repository contents can carry committed secrets. If you want both, make two connections with two tokens rather than one broad token bound to the wider profile. The point of separate profiles is that "this connection may read our source" stays a decision someone made, visible on the services page, rather than a side effect of how a token was scoped months ago. ## Steps The token flow is identical to `github/code-read`; only the permissions differ. 1. **Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.** 2. Name it `prodpeek-triage-` and set an expiry. 3. **Repository access → Only select repositories**, and pick one. 4. **Repository permissions**: Issues → Read-only, Pull requests → Read-only. Leave **Contents at No access** — that is the line between the two profiles. 5. Copy the token, then in Prodpeek: **Services → Add a service → GitHub — triage read**, paste it, and **Test connection**.