Skip to main content
Glama
saidsef

GitHub PR Issue Analyser

by saidsef

Github Update Pr

github_update_pr
Idempotent

Update selected pull request fields—title, body, base branch, state, or labels—without restating unspecified values; label changes may require a second call.

Instructions

Updates an existing pull request. Only the fields supplied are sent, the rest keep their current values, so a title can change without restating the body. Labels take a second call, since the pull request payload carries none. That call answers with the issue, which has no head, base or reviewers, so a labels-only update reads the pull request back.

Workflow and conventions: github_get_skill('pr-management').

Input Schema

NameRequiredDescriptionDefault
baseNoBranch to retarget the pull request onto
bodyNoReplacement body in Markdown. Omit to leave the current body alone
stateNoOmit to leave the state alone
titleNoReplacement title. Omit to leave the current title alone
labelsNoReplacement label set. Omit to keep the current labels, pass [] to strip them all. The 'mcp' tracking label is not re-added here
pr_numberYes
repo_nameYes
repo_ownerYes

Output Schema

NameRequiredDescriptionDefault
stateYes
titleYes
authorYes
mergedYes
commitsYes
base_refYes
head_refYes
head_shaYes
is_draftYes
additionsYes
deletionsYes
mergeableYes
created_atYes
updated_atYes
descriptionYes
changed_filesYes
mergeable_stateYes
requested_teamsYes
requested_reviewersYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv54.0.0
    • addedOutput schema / properties / additions
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / changed_files
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / commits
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / deletions
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / is_draft
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / mergeable
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / mergeable_state
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / merged
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "title",
      -  "description",
      -  "author",
      -  "created_at",
      -  "updated_at",
      -  "state",
      -  "head_sha",
      -  "head_ref",
      -  "base_ref",
      -  "requested_reviewers",
      -  "requested_teams"
      -]New value: +[
      +  "title",
      +  "description",
      +  "author",
      +  "created_at",
      +  "updated_at",
      +  "state",
      +  "is_draft",
      +  "merged",
      +  "mergeable",
      +  "mergeable_state",
      +  "head_sha",
      +  "head_ref",
      +  "base_ref",
      +  "requested_reviewers",
      +  "requested_teams",
      +  "commits",
      +  "additions",
      +  "deletions",
      +  "changed_files"
      +]
  2. Changed1 schema field changedv42.1.1
    • changedInput schema / properties / labels / description
      Previous value: -"Replacement label set. Omit to keep the current labels, pass [] to strip them all"New value: +"Replacement label set. Omit to keep the current labels, pass [] to strip them all. The 'mcp' tracking label is not re-added here"
  3. Addedv42.0.0

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses non-obvious behavior: only supplied fields are sent, labels require a second call, and a labels-only update reads the pull request back. These details materially help an agent predict side effects and avoid incorrect assumptions about the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation, then adds only the non-obvious label caveat and workflow pointer. Every sentence contributes operational value, and there is no redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of annotations, an output schema, and parameter descriptions, the description is complete enough for an agent to call the tool correctly. It covers the key mutation semantics and the labels edge case without needing to explain return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 63%, and the description adds meaningful semantics beyond the schema, especially for partial updates and labels handling. It explains that omitted fields stay unchanged and that labels behave differently, including how an empty array strips labels. It does not explain the required repo/pr identity parameters, though those are straightforward.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: it updates an existing pull request. It also clarifies the partial-update behavior, which distinguishes it from create/merge-style siblings. It does not explicitly distinguish itself from close siblings such as github_update_pr_branch or github_update_pr_comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through partial-update semantics and a labels caveat, and it points to github_get_skill('pr-management') for conventions. However, it does not explicitly say when to use this tool versus github_update_pr_branch, github_set_pr_draft, or github_merge_pr.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.