Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat(issue_graph): Add focus parameter, cross-repo support, and status extraction#1511

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
Copilot wants to merge11 commits intomain
base:main
Choose a base branch
Loading
fromcopilot/add-issue-graph-tool
Open
Show file tree
Hide file tree
Changes fromall commits
Commits
Show all changes
11 commits
Select commitHold shift + click to select a range
8eccce2
Initial plan
CopilotDec 1, 2025
00b2390
Add issue_graph tool for visualizing issue/PR relationships
CopilotDec 1, 2025
7bba72a
Address code review feedback and add tool interaction docs
CopilotDec 1, 2025
91e4934
Add issue_graph to server instructions for cross-tool workflows
CopilotDec 1, 2025
4dcc5b6
fix(issue_graph): eliminate double API call, add timeout, fix edge ou…
SamMorrowDrumsDec 1, 2025
e15b16e
Add timeline crawling to discover cross-referenced issues
SamMorrowDrumsDec 1, 2025
5353b6b
Remove JSON output to reduce token usage
SamMorrowDrumsDec 1, 2025
c984ad9
Improve output format clarity and remove JSON
SamMorrowDrumsDec 1, 2025
36824fc
Add ConnectIssueGraph prompt for finding and connecting missing issue…
SamMorrowDrumsDec 1, 2025
8eca4aa
feat(issue_graph): Add focus parameter, cross-repo support, and statu…
SamMorrowDrumsDec 1, 2025
587f09a
chore: revert docs/remote-server.md changes
SamMorrowDrumsDec 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletionsREADME.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -717,6 +717,12 @@ The following sets of tools are available:
- `owner`: Repository owner (username or organization name) (string, required)
- `repo`: Repository name (string, required)

- **issue_graph** - Get issue relationship graph
- `focus`: Which node type to focus on: 'provided' (default) uses the specified issue/PR, 'epic' shifts focus to the nearest epic in the hierarchy, 'batch' shifts focus to the nearest batch/parent issue (string, optional)
- `issue_number`: Issue or pull request number to build the graph from (number, required)
- `owner`: Repository owner (string, required)
- `repo`: Repository name (string, required)

- **issue_read** - Get issue details
- `issue_number`: The number of the issue (number, required)
- `method`: The read operation to perform on a single issue.
Expand Down
13 changes: 4 additions & 9 deletionsdocs/remote-server.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,7 +19,7 @@ Below is a table of available toolsets for the remote GitHub MCP Server. Each to
<!-- START AUTOMATED TOOLSETS -->
| Name | Description | API URL | 1-Click Install (VS Code) | Read-only Link | 1-Click Read-only Install (VS Code) |
|----------------|--------------------------------------------------|-------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|Default |["Default" toolset](../README.md#default-toolset) | https://api.githubcopilot.com/mcp/ | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D) | [read-only](https://api.githubcopilot.com/mcp/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Freadonly%22%7D) |
|all |All available GitHub MCP tools | https://api.githubcopilot.com/mcp/ | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D) | [read-only](https://api.githubcopilot.com/mcp/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Freadonly%22%7D) |
Copy link

CopilotAIDec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This change from "Default" to "all" appears to be unrelated to theissue_graph feature. If this is an intentional change, it should be in a separate PR or explained in the PR description.

Suggested change
|all| All available GitHub MCP tools|https://api.githubcopilot.com/mcp/|[Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D)|[read-only](https://api.githubcopilot.com/mcp/readonly)|[Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Freadonly%22%7D)|
|Default| All available GitHub MCP tools|https://api.githubcopilot.com/mcp/|[Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D)|[read-only](https://api.githubcopilot.com/mcp/readonly)|[Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Freadonly%22%7D)|

Copilot uses AI. Check for mistakes.
| Actions | GitHub Actions workflows and CI/CD operations | https://api.githubcopilot.com/mcp/x/actions | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-actions&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Factions%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/actions/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-actions&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Factions%2Freadonly%22%7D) |
| Code Security | Code security related tools, such as GitHub Code Scanning | https://api.githubcopilot.com/mcp/x/code_security | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-code_security&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcode_security%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/code_security/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-code_security&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcode_security%2Freadonly%22%7D) |
| Dependabot | Dependabot tools | https://api.githubcopilot.com/mcp/x/dependabot | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-dependabot&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fdependabot%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/dependabot/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-dependabot&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fdependabot%2Freadonly%22%7D) |
Expand DownExpand Up@@ -53,23 +53,18 @@ These toolsets are only available in the remote GitHub MCP Server and are not in

### Optional Headers

The Remote GitHub MCP server has optional headers equivalent to the Local server env vars or flags:
The Remote GitHub MCP server has optional headers equivalent to the Local server env vars:

- `X-MCP-Toolsets`: Comma-separated list of toolsets to enable. E.g. "repos,issues".
- Equivalent to `GITHUB_TOOLSETS` env varor `--toolsets` flagfor Local server.
- Equivalent to `GITHUB_TOOLSETS` env var for Local server.
- If the list is empty, default toolsets will be used. Invalid or unknown toolsets are silently ignored without error and will not prevent the server from starting. Whitespace is ignored.
- `X-MCP-Tools`: Comma-separated list of tools to enable. E.g. "get_file_contents,issue_read,pull_request_read".
- Equivalent to `GITHUB_TOOLS` env var or `--tools` flag for Local server.
- Invalid tools will throw an error and prevent the server from starting. Whitespace is ignored.
- `X-MCP-Readonly`: Enables only "read" tools.
- Equivalent to `GITHUB_READ_ONLY` env var for Local server.
- If this header is empty, "false", "f", "no", "n", "0", or "off" (ignoring whitespace and case), it will be interpreted as false. All other values are interpreted as true.
- `X-MCP-Lockdown`: Enables lockdown mode, hiding public issue details created by users without push access.
- Equivalent to `GITHUB_LOCKDOWN_MODE` env var for Local server.
- If this header is empty, "false", "f", "no", "n", "0", or "off" (ignoring whitespace and case), it will be interpreted as false. All other values are interpreted as true.

> **Looking for examples?** See the [Server Configuration Guide](./server-configuration.md) for common recipes like minimal setups, read-only mode, and combining tools with toolsets.

Example:

```json
Expand DownExpand Up@@ -104,4 +99,4 @@ Example:
"type": "http",
"url": "https://api.githubcopilot.com/mcp/x/issues/readonly"
}
```
```
28 changes: 28 additions & 0 deletionse2e-repos-to-delete.txt
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1763999268062
github-mcp-server-e2e-TestPullRequestReviewDeletion-1763997844489
github-mcp-server-e2e-TestRequestCopilotReview-1763997844386
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1763997844435
github-mcp-server-e2e-TestDirectoryDeletion-1763997844380
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1763997844451
github-mcp-server-e2e-TestTags-1763997844521
github-mcp-server-e2e-TestFileDeletion-1763997844358
github-mcp-server-e2e-TestAssignCopilotToIssue-1763997844406
github-mcp-server-e2e-TestFileDeletion-1747747995640
github-mcp-server-e2e-TestDirectoryDeletion-1747747995296
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1747747995307
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1747747995463
github-mcp-server-e2e-TestPullRequestReviewDeletion-1747747995436
github-mcp-server-e2e-TestTags-1747747995443
github-mcp-server-e2e-TestDirectoryDeletion-1747747769514
github-mcp-server-e2e-TestFileDeletion-1747747769467
github-mcp-server-e2e-TestPullRequestReviewDeletion-1747747769267
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1747747769413
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1747747769265
github-mcp-server-e2e-TestTags-1747747769255
github-mcp-server-e2e-TestFileDeletion-1747747690008
github-mcp-server-e2e-TestDirectoryDeletion-1747747690012
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1747747689930
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1747747690146
github-mcp-server-e2e-TestRequestCopilotReview-1747747689966
github-mcp-server-e2e-TestPullRequestReviewDeletion-1747747689922
github-mcp-server-e2e-TestTags-1747747690217
Comment on lines +1 to +28
Copy link

CopilotAIDec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This file listing temporary e2e test repositories appears to be unrelated to theissue_graph feature. According to the.gitignore, this type of file should typically not be committed to the repository. Consider removing this from the PR or explain its relevance to the issue_graph feature.

Suggested change
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1763999268062
github-mcp-server-e2e-TestPullRequestReviewDeletion-1763997844489
github-mcp-server-e2e-TestRequestCopilotReview-1763997844386
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1763997844435
github-mcp-server-e2e-TestDirectoryDeletion-1763997844380
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1763997844451
github-mcp-server-e2e-TestTags-1763997844521
github-mcp-server-e2e-TestFileDeletion-1763997844358
github-mcp-server-e2e-TestAssignCopilotToIssue-1763997844406
github-mcp-server-e2e-TestFileDeletion-1747747995640
github-mcp-server-e2e-TestDirectoryDeletion-1747747995296
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1747747995307
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1747747995463
github-mcp-server-e2e-TestPullRequestReviewDeletion-1747747995436
github-mcp-server-e2e-TestTags-1747747995443
github-mcp-server-e2e-TestDirectoryDeletion-1747747769514
github-mcp-server-e2e-TestFileDeletion-1747747769467
github-mcp-server-e2e-TestPullRequestReviewDeletion-1747747769267
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1747747769413
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1747747769265
github-mcp-server-e2e-TestTags-1747747769255
github-mcp-server-e2e-TestFileDeletion-1747747690008
github-mcp-server-e2e-TestDirectoryDeletion-1747747690012
github-mcp-server-e2e-TestPullRequestAtomicCreateAndSubmit-1747747689930
github-mcp-server-e2e-TestPullRequestReviewCommentSubmit-1747747690146
github-mcp-server-e2e-TestRequestCopilotReview-1747747689966
github-mcp-server-e2e-TestPullRequestReviewDeletion-1747747689922
github-mcp-server-e2e-TestTags-1747747690217
# (delete the file)

Copilot uses AI. Check for mistakes.
39 changes: 39 additions & 0 deletionspkg/github/__toolsnaps__/issue_graph.snap
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
{
"annotations": {
"title": "Get issue relationship graph",
"readOnlyHint": true
},
"description": "**PRIMARY TOOL FOR ISSUE/PR/PROJECT STATUS** - Returns the entire work hierarchy in ONE call. Use this FIRST before issue_read or other tools.\n\nFASTEST PATH TO PROJECT STATUS: One call returns all related issues, PRs, and their states - no need for multiple API calls.\n\nMUST USE THIS TOOL FIRST WHEN USER ASKS:\n- \"update on...\" / \"status of...\" / \"progress on...\" / \"tell me about...\"\n- \"what's happening with...\" / \"how is... going\" / \"state of...\"\n- \"project status\" / \"overall progress\" / \"how is the epic going\"\n- \"epic\" / \"parent issue\" / \"sub-issues\" / \"blocking\" / \"depends on\"\n- ANY request for status on work that might span multiple issues\n\nDO NOT use issue_read or list_issues first for status questions - issue_graph returns everything in one call.\n\nReturns a comprehensive view including:\n- Node types: epic (large initiatives), batch (parent issues), task (regular issues), pr (pull requests)\n- Full hierarchy: epic → batch → task → PR relationships across the ENTIRE project\n- Sub-issues and \"closes/fixes\" references\n- Cross-references and related work\n- Status updates extracted from issue bodies and comments\n- Open/closed/merged state of ALL related items\n\nUse focus=\"epic\" to automatically find and focus on the parent epic of any issue.",
"inputSchema": {
"properties": {
"focus": {
"description": "Which node type to focus on: 'provided' (default) uses the specified issue/PR, 'epic' shifts focus to the nearest epic in the hierarchy, 'batch' shifts focus to the nearest batch/parent issue",
"enum": [
"provided",
"epic",
"batch"
],
"type": "string"
},
"issue_number": {
"description": "Issue or pull request number to build the graph from",
"type": "number"
},
"owner": {
"description": "Repository owner",
"type": "string"
},
"repo": {
"description": "Repository name",
"type": "string"
}
},
"required": [
"owner",
"repo",
"issue_number"
],
"type": "object"
},
"name": "issue_graph"
}
2 changes: 1 addition & 1 deletionpkg/github/__toolsnaps__/issue_read.snap
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,7 +3,7 @@
"title": "Get issue details",
"readOnlyHint": true
},
"description": "Get information about aspecific issue in a GitHub repository.",
"description": "Getdetailedinformation about asingle issue: full body, comments, sub-issues, or labels.\n\n**USE issue_graph INSTEAD when user asks about:**\n- Status, updates, or progress on issues/PRs/epics\n- Project overview or how work is going\n- Parent issues, sub-issues, or work hierarchy\n- Related or blocking issues\n\nissue_read is for: reading the full issue body, fetching comments, listing sub-issues of a known parent, or getting label details - AFTER you already know which specific issue you need.",
"inputSchema": {
"properties": {
"issue_number": {
Expand Down
32 changes: 31 additions & 1 deletionpkg/github/instructions.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,7 +63,37 @@ Before creating a pull request, search for pull request templates in the reposit
case "issues":
return `## Issues

Check 'list_issue_types' first for organizations to use proper issue types. Use 'search_issues' before creating new issues to avoid duplicates. Always set 'state_reason' when closing issues.`
**CRITICAL: For ANY question about issue/PR/epic status, updates, or progress - ALWAYS call 'issue_graph' FIRST before any other tool.**

'issue_graph' is the FASTEST PATH to project status - one call returns the entire work hierarchy (epic → batches → tasks → PRs) instead of multiple separate API calls.

Trigger phrases that REQUIRE 'issue_graph' as the FIRST tool call:
- "update on..." / "status of..." / "progress on..." / "tell me about..."
- "what's happening with..." / "how is... going" / "state of..."
- "project status" / "how is the project going" / "overall progress"
- "epic" / "parent issue" / "sub-issues" / "blocking" / "depends on"
- ANY issue/PR number reference when asking for status or updates

Example: User asks "give me an update on issue #123" → Call issue_graph(owner, repo, 123) FIRST.
Example: User asks "what's the status of the project" → Call issue_graph with the epic/tracking issue number.

The 'issue_graph' tool returns in ONE call:
- Full hierarchy: epic → batch → task → PR relationships across the entire project
- All sub-issues and "closes/fixes" references
- Status updates extracted from issue bodies/comments
- Cross-references and related work
- Open/closed state of all related items

Use focus="epic" to automatically find and focus on the parent epic of any issue.

ONLY AFTER calling 'issue_graph', use other tools:
- 'issue_read' for full details of specific issues identified in the graph
- 'search_issues' to find related issues not in the graph

For creating/modifying issues:
- Check 'list_issue_types' first for organizations to use proper issue types
- Use 'search_issues' before creating new issues to avoid duplicates
- Always set 'state_reason' when closing issues`
Comment on lines +66 to +96
Copy link

CopilotAIDec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

[nitpick] The instructions include many emphatic phrases like "CRITICAL", "ALWAYS", "MUST", "FIRST", etc. While these emphasize importance, they may be overly forceful. Consider whether a more balanced tone would be clearer and easier for LLMs to parse, while still conveying priority. The repetition of these strong directives across multiple sentences could potentially confuse rather than clarify.

Copilot uses AI. Check for mistakes.
case "discussions":
return `## Discussions

Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp