Skip to content

Create a Skill for reading issue-level custom fields (Type/Priority/Effort) via GraphQL #14802

Description

@KlausLoeffelmann

Summary

Create a Copilot Skill (under .github/skills/) that documents how to read GitHub issue-level custom fields (the new TypePriority / Effort fields that appear on issues, distinct from Projects v2 fields and from labels).

Motivation

Triaging the NewApi-Net11 work relies on the Priority field (High/Medium/Low). These are not labels and not Projects v2 items, so the usual gh issue list --label ... and projectItems/projectV2 GraphQL paths do not surface them. Discovering the correct GraphQL shape took several introspection round-trips; a Skill would let the agent (and contributors) read/filter by these fields immediately.

What the Skill should document

The working GraphQL recipe on the Issue type:

  • issueType { name } — the Type (e.g. Bug).
  • issueFieldValues(first: N) { nodes { ... } } — the custom field values. Each node is a union IssueFieldValue with members:
    • IssueFieldSingleSelectValue (Priority/Effort): select value and field { ... on IssueFieldSingleSelect { name } }.
    • IssueFieldTextValue, IssueFieldNumberValue, IssueFieldDateValue, IssueFieldMultiSelectValue.
  • The field accessor is the union IssueFields (members IssueFieldSingleSelect, IssueFieldText, IssueFieldNumber, IssueFieldDate, IssueFieldMultiSelect) — you must use an inline fragment to read name.

Example query that returns Priority for an issue:

query {
  repository(owner: "dotnet", name: "winforms") {
    issue(number: 14795) {
      number
      issueType { name }
      issueFieldValues(first: 20) {
        nodes {
          __typename
          ... on IssueFieldSingleSelectValue {
            value
            field { ... on IssueFieldSingleSelect { name } }
          }
        }
      }
    }
  }
}

Returns: issueType.name = "Bug", and a node { value: "High", field: { name: "Priority" } }.

Acceptance criteria

  • A SKILL.md describing when to use this (filtering NewApi-Net11 work by Priority/Effort), the union shapes, the copy-paste GraphQL, and a batched multi-issue variant (aliased sub-selections) for reading many issues at once.
  • A short note that gh issue list --label cannot filter these fields, and that Projects v2 (projectItems) is a different mechanism.

Metadata

Metadata

Assignees

No one assigned

    Labels

    NewApi-Net11Tracks issues for public APIs targeted for .NET 11.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions