All skills
github avatar

/github-issues

@5c41b09 official
by githubgithub/awesome-copilot40k stars
5,040

Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, manage repository labels, set issue fields (dates, priority, custom fields), set issue types, manage issue workflows, link issues, add dependencies, or track blocked-by/blocking relationships. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", "set the priority", "set the start date", "create a label", "rename a label", "list repo labels", "link issues", "add dependency", "blocked by", "blocking", or any GitHub issue management task.

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/github-issues

This session only. Nothing lands on disk.

SKILL.md

≈176 tokens always: the name and description. ≈2.1k when used: this file. ≈11k more on demand in 10 files.

GitHub Issues

Manage GitHub issues using the @modelcontextprotocol/server-github MCP server.

Available Tools

MCP Tools (read operations)

Tool Purpose
mcp__github__issue_read Read issue details, sub-issues, comments, labels (methods: get, get_comments, get_sub_issues, get_labels)
mcp__github__list_issues List and filter repository issues by state, labels, date
mcp__github__search_issues Search issues across repos using GitHub search syntax
mcp__github__projects_list List projects, project fields, project items, status updates
mcp__github__projects_get Get details of a project, field, item, or status update
mcp__github__projects_write Add/update/delete project items, create status updates

MCP Tools (write operations)

Tool Purpose
mcp__github__issue_write Create or update an issue (methods: create, update). Supports title, body, type, labels, assignees, milestone, and issue fields
mcp__github__add_issue_comment Add a comment or a reaction to an issue
mcp__github__sub_issue_write Add, remove, or reprioritize a sub-issue

CLI / REST API (write operations)

gh api performs the same writes and is the form used in the examples below. Reach for it when the MCP server is not connected, or when you need a REST field the MCP tools do not expose.

Operation Command
Create issue gh api repos/{owner}/{repo}/issues -X POST -f title=... -f body=...
Update issue gh api repos/{owner}/{repo}/issues/{number} -X PATCH -f title=... -f state=...
Add comment gh api repos/{owner}/{repo}/issues/{number}/comments -X POST -f body=...
Close issue gh api repos/{owner}/{repo}/issues/{number} -X PATCH -f state=closed
Set issue type Include -f type=Bug in the create call (REST API only, not supported by gh issue create CLI)

Note: gh issue create works for basic issue creation but does not support the --type flag. Use gh api when you need to set issue types.

Workflow

  1. Determine action: Create, update, or query?
  2. Gather context: Get repo info, existing labels, milestones if needed
  3. Structure content: Use appropriate template from references/templates.md
  4. Execute: Use MCP tools for reads, gh api for writes
  5. Confirm: Report the issue URL to user

Creating Issues

Use gh api to create issues. This supports all parameters including issue types.

gh api repos/{owner}/{repo}/issues \
  -X POST \
  -f title="Issue title" \
  -f body="Issue body in markdown" \
  -f type="Bug" \
  --jq '{number, html_url}'

Optional Parameters

Add any of these flags to the gh api call:

-f type="Bug"                    # Issue type (Bug, Feature, Task, Epic, etc.)
-f 'labels[]=bug'                # Labels (repeat for multiple)
-f 'assignees[]=username'        # Assignees (repeat for multiple)
-f milestone=1                   # Milestone number

Quote the whole name[]=value pair. [] is a glob pattern in zsh, the default shell on macOS, so an unquoted -f labels[]=bug never reaches gh:

zsh: no matches found: labels[]=bug

Issue types are organization-level metadata. To discover available types, use:

gh api graphql -f query='{ organization(login: "ORG") { issueTypes(first: 10) { nodes { name } } } }' --jq '.data.organization.issueTypes.nodes[].name'

Prefer issue types over labels for categorization. When issue types are available (e.g., Bug, Feature, Task), use the type parameter instead of applying equivalent labels like bug or enhancement. Issue types are the canonical way to categorize issues on GitHub. Only fall back to labels when the org has no issue types configured.

Title Guidelines

  • Be specific and actionable
  • Keep under 72 characters
  • When issue types are set, don't add redundant prefixes like [Bug]
  • Examples:
    • Login fails with SSO enabled (with type=Bug)
    • Add dark mode support (with type=Feature)
    • Add unit tests for auth module (with type=Task)

Body Structure

Always use the templates in references/templates.md. Choose based on issue type:

User Request Template
Bug, error, broken, not working Bug Report
Feature, enhancement, add, new Feature Request
Task, chore, refactor, update Task

Updating Issues

Use gh api with PATCH:

gh api repos/{owner}/{repo}/issues/{number} \
  -X PATCH \
  -f state=closed \
  -f title="Updated title" \
  --jq '{number, html_url}'

Only include fields you want to change. Available fields: title, body, state (open/closed), labels, assignees, milestone.

Examples

Example 1: Bug Report

User: "Create a bug issue - the login page crashes when using SSO"

Action:

gh api repos/github/awesome-copilot/issues \
  -X POST \
  -f title="Login page crashes when using SSO" \
  -f type="Bug" \
  -f body="## Description
The login page crashes when users attempt to authenticate using SSO.

## Steps to Reproduce
1. Navigate to login page
2. Click 'Sign in with SSO'
3. Page crashes

## Expected Behavior
SSO authentication should complete and redirect to dashboard.

## Actual Behavior
Page becomes unresponsive and displays error." \
  --jq '{number, html_url}'

Example 2: Feature Request

User: "Create a feature request for dark mode with high priority"

Action:

gh api repos/github/awesome-copilot/issues \
  -X POST \
  -f title="Add dark mode support" \
  -f type="Feature" \
  -f 'labels[]=high-priority' \
  -f body="## Summary
Add dark mode theme option for improved user experience and accessibility.

## Motivation
- Reduces eye strain in low-light environments
- Increasingly expected by users

## Proposed Solution
Implement theme toggle with system preference detection.

## Acceptance Criteria
- [ ] Toggle switch in settings
- [ ] Persists user preference
- [ ] Respects system preference by default" \
  --jq '{number, html_url}'

Common Labels

Use these standard labels when applicable:

Label Use For
bug Something isn't working
enhancement New feature or improvement
documentation Documentation updates
good first issue Good for newcomers
help wanted Extra attention needed
question Further information requested
wontfix Will not be addressed
duplicate Already exists
high-priority Urgent issues

Tips

  • Always confirm the repository context before creating issues
  • Ask for missing critical information rather than guessing
  • Link related issues when known: Related to #123
  • For updates, fetch current issue first to preserve unchanged fields

Extended Capabilities

The following features require REST or GraphQL APIs beyond the basic MCP tools. Each is documented in its own reference file so the agent only loads the knowledge it needs.

Capability When to use Reference
Advanced search Complex queries with boolean logic, date ranges, cross-repo search, issue field filters (field.name:value) references/search.md
Sub-issues & parent issues Breaking work into hierarchical tasks references/sub-issues.md
Milestones Create, read, update, close, reopen, delete milestones and manage milestone issues references/milestones.md
Labels Discover, create, rename, recolor, and delete repository labels; add or replace labels on an issue references/labels.md
Issue dependencies Tracking blocked-by / blocking relationships references/dependencies.md
Issue types (advanced) GraphQL operations beyond MCP list_issue_types / type param references/issue-types.md
Projects V2 Project boards, progress reports, field management references/projects.md
Issue fields Custom metadata: dates, priority, text, numbers (private preview) references/issue-fields.md
Images in issues Embedding images in issue bodies and comments via CLI references/images.md

Source: SKILL.md on GitHub

2 warnings16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill enables management of GitHub issues, labels, projects, and milestones through the GitHub CLI and MCP server. It is safe for its intended use as a developer tool, despite the inherent surface for indirect prompt injection when processing GitHub content.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM · 1 issue

  • Runlayer6mo

    3/9 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 5c41b09. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 18 hours ago.

Activeupdated last month
  • MCP
  • github
  • issues
  • bug-tracking
  • task-management
  • rest-api
  • graphql
  • workflow-automation

README badge

README badge for github/awesome-copilot/github-issues

Manage GitHub issues using MCP tools and `gh api` commands: create, update, search, and organize issues with labels, assignees, milestones, and issue types. Handles bug reports, feature requests, tasks, sub-issues, dependencies, and project board operations across GitHub repositories.

Generated from the current SKILL.md.

Does this skill work with GitHub's REST API or only MCP tools?
It uses both. Read operations (listing, searching, reading issues) go through MCP tools. Write operations (creating, updating, closing issues) use the GitHub CLI (`gh api`) because the MCP server doesn't support writes yet.
Can I set issue types when creating an issue?
Yes, using `gh api` with the `-f type=` flag. The `gh issue create` CLI does not support the `--type` flag, so you must use the REST API directly.
Does this skill support custom issue fields like dates and priority?
Yes, custom fields are available through the REST API, but they are documented separately in the skill's extended capabilities. The basic workflow focuses on core fields like title, body, labels, and assignees.
Can I link issues or set up blocking/dependency relationships?
Yes, the skill supports linking issues and tracking blocked-by/blocking relationships, but these operations are documented in separate reference files within the skill.

Generated from the current SKILL.md. These answers refresh after source changes.