issue-fields-migration
Helps your agent organize metadata in GitHub projects. It migrates information from labels and project fields to issue fields, improving organization.
What it does
This tool helps organize information within GitHub issues. It can convert existing labels or old project fields into structured, searchable fields like 'Priority' or 'Type'.
When to use it
- ✓When you want to organize project labels into standardized fields.
- ✓When migrating data from old projects to new GitHub fields.
- ✓To replace loose labels with more structured information.
Example of what to ask your AI
“I want to migrate the 'bug' and 'feature' labels from my repository to the 'Type' field in issue fields.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool analyzes your existing labels or project fields. It then converts them into GitHub's new issue fields, allowing you to organize and find information more efficiently.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add github/awesome-copilot --skill issue-fields-migrationOr download just the file:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/issue-fields-migration/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Issue Fields Migration
Issue fields are org-level typed metadata (single select, text, number, date) that replace label-based workarounds with structured, searchable, cross-repo fields. Every organization gets Priority, Effort, Start date, and Target date preconfigured, with support for up to 25 custom fields.
This skill bulk-migrates existing metadata into issue fields from two sources:
- Repo labels: Convert labels like
p0,p1,priority/highinto structured issue field values (e.g. the Priority field). Supports migrating multiple labels at once and optionally removing them after migration. - Project V2 fields: Copy field values (single select, text, number, date, iteration) from a GitHub Project into the equivalent org-level issue fields.
When to Use
- User added org-level issue fields that overlap with existing project fields
- User wants to copy values from project fields to issue fields before deleting the old project fields
- User asks about "migrating", "transferring", or "copying" project field data to issue fields
- User wants to convert repo labels (e.g., p0, p1, p2, p3) into issue field values (e.g., Priority field)
- User asks about replacing labels with issue fields or cleaning up labels after adopting issue fields
Prerequisites
- The target org must have issue fields enabled
- The issue fields must already exist at the org level
- For project field migration: issue fields must be added to the project
- For label migration: labels must exist on the target repo(s)
- The user must have write access to the repos (and project, if migrating project fields)
ghCLI must be authenticated with appropriate scopes
Available Tools
MCP Tools (read operations)
| Tool | Purpose |
|---|---|
mcp__github__projects_list |
List project fields (list_project_fields), list project items with values (list_project_items) |
mcp__github__projects_get |
Get details of a specific project field or item |
CLI / REST API
| Operation | Command |
|---|---|
| List org issue fields | gh api /orgs/{org}/issue-fields -H "X-GitHub-Api-Version: 2026-03-10" |
| Read issue field values | gh api /repos/{owner}/{repo}/issues/{number}/issue-field-values -H "X-GitHub-Api-Version: 2026-03-10" |
| Write issue field values | gh api /repositories/{repo_id}/issues/{number}/issue-field-values -X POST -H "X-GitHub-Api-Version: 2026-03-10" --input - |
| Get repository ID | gh api /repos/{owner}/{repo} --jq .id |
| List repo labels | gh label list -R {owner}/{repo} --limit 1000 --json name,color,description |
| List issues by label | gh issue list -R {owner}/{repo} --label "{name}" --state all --json number,title,labels --limit 1000 |
| Remove label from issue | gh api /repos/{owner}/{repo}/issues/{number}/labels/{label_name} -X DELETE |
See references/issue-fields-api.md, references/projects-api.md, and references/labels-api.md for full API details.
Workflow
Step 0: Migration Source
Ask the user what they are migrating:
"Are you migrating labels or project fields?"
- Labels: proceed to the Label Migration Flow below.
- Project fields: proceed to the Project Field Migration Flow below.
If the user says labels:
- Ask: "Which org and repo(s) contain the labels?"
- Ask: "Which labels do you want to migrate?" (they can name them or say "show me the labels first")
If the user says project fields:
- Ask: "Can you share the link to your project or tell me the org name and project number?"
- Ask: "Which field do you want to migrate?"
Label Migration Flow
Use this flow when the user wants to convert repo labels into issue field values. Labels can only map to single_select issue fields (each label name maps to one option value).
Phase L1: Input & Label Discovery
- Ask the user for: org name and repo(s) to migrate.
- Fetch labels from each repo:
gh label list -R {owner}/{repo} --limit 1000 --json name,color,description
- Fetch org issue fields:
gh api /orgs/{org}/issue-fields \
-H "X-GitHub-Api-Version: 2026-03-10" \
--jq '.[] | {id, name, content_type, options: [.options[]?.name]}'
…
FAQ
What are 'issue fields'?
These are organization-level fields in GitHub that allow you to add structured metadata to issues, such as priority, dates, or text, instead of just using labels.
Can I migrate any type of label?
Yes, you can migrate repository labels or project field values. The tool helps map them to the corresponding issue fields.
Do I need special permissions to do this?
Yes, you need write access to the repositories and projects you want to migrate, and issue fields must be enabled in your organization.
Details
Original description by the author
Bulk-migrate metadata to GitHub issue fields from two sources: repo labels (e.g. priority labels to a Priority field) and Project V2 fields. Use when users say "migrate my labels to issue fields", "migrate project fields to issue fields", "convert labels to issue fields", "copy project field values to issue fields", or ask about adopting issue fields. Issue fields are org-level typed metadata (sin
repo: github/awesome-copilot
Popularity
- GitHub stars
- 40k
- Ranking position
- #5195
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
acquire-codebase-knowledge
Helps your agent understand and document an existing code project. It's useful for onboarding new people or getting an overview of the architecture.
github/awesome-copilot
acreadiness-assess
Enables your agent to assess a project's readiness for AI and generate a report. It's useful for understanding how well a project is prepared to use AI tools.
github/awesome-copilot
acreadiness-generate-instructions
Helps your agent create instructions for AI tools based on an assessment. It's useful for improving how AI interacts with code and closing identified gaps.
github/awesome-copilot
acreadiness-policy
Enables your agent to help define or apply policies for AI project assessment. It's useful for standardizing how projects are evaluated and ensuring compliance.
github/awesome-copilot
Similar skills
bun-runtime
Has your agent use Bun to run, organize, and test code. It helps choose Bun over other tools and migrate existing projects.
affaan-m/ECC
database-migrations
Helps your agent make safe changes to databases. It ensures changes can be undone and minimizes downtime.
affaan-m/ECC
deployment-patterns
Sets up deployment and CI/CD workflows, containerization, and rollback strategies to ensure safe releases.
affaan-m/ECC