{
  "slug": "github-graphql-adds-project-issue-field-value-types-351d9986acb4",
  "title": "GitHub GraphQL adds project issue field value types",
  "tools": [
    "github-graphql-api"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-03-12T00:00:00.000Z",
  "announced_at": "2026-03-12T00:00:00.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When reading issue field values on project items, query `fieldValues` for `ProjectV2ItemIssueFieldValue` and select its `field` and `issueFieldValue`. Handle the returned union as date, number, single-select, or text values. ([Projects reference](https://docs.github.com/en/graphql/reference/projects), [Issues reference](https://docs.github.com/en/graphql/reference/issues))",
    "examples": [
      "gh api graphql -f query='\nquery {\n  node(id: \"<PROJECT_ID>\") {\n    ... on ProjectV2 {\n      items(first: 20) {\n        nodes {\n          id\n          fieldValues(first: 20) {\n            nodes {\n              ... on ProjectV2ItemIssueFieldValue {\n                field { ... on ProjectV2FieldCommon { name } }\n                issueFieldValue {\n                  ... on IssueFieldDateValue { value }\n                  ... on IssueFieldNumberValue { value }\n                  ... on IssueFieldSingleSelectValue { name }\n                  ... on IssueFieldTextValue { value }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}'"
    ],
    "gotchas": [
      "node(id:) (required): Pass the project node ID; the query narrows the node to `ProjectV2`.",
      "items(first:): Requests the first n project items.",
      "fieldValues(first:): Requests the first n field values for each project item.",
      "ProjectV2ItemIssueFieldValue.field: The project field containing this value; the query selects its name.",
      "ProjectV2ItemIssueFieldValue.issueFieldValue: The issue field value, returned as the `ProjectV2IssueFieldValues` union.",
      "IssueFieldDateValue: Union member for date field values; its `value` is a string.",
      "IssueFieldNumberValue: Union member for number field values; its `value` is a float.",
      "IssueFieldSingleSelectValue: Union member for single-select values; `name` is the option's name.",
      "IssueFieldTextValue: Union member for text field values; its `value` is a string.",
      "Prerequisite: Authenticate with a token that has the `read:project` scope to read projects; GitHub CLI authentication can use `gh auth login --scopes \"read:project\"`.",
      "Docs conflict: Current documentation includes later additions to `IssueFieldSingleSelectValue`: `optionId` on 2026-03-17 and `value` on 2026-03-31. The query uses `name`, which the current reference documents; these later fields postdate the card. https://docs.github.com/en/graphql/overview/changelog"
    ]
  },
  "why_it_matters": "Read issue field values associated with project items through the GitHub GraphQL API.",
  "sources": [
    "https://docs.github.com/en/graphql/overview/changelog#schema-changes-for-2026-03-12",
    "https://docs.github.com/en/graphql/reference/projects",
    "https://docs.github.com/en/graphql/reference/issues",
    "https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects"
  ],
  "rank": 0.93027,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave1b-tools-20261017",
    "verdict_id": "wave1b-tools-20261017:wave1b-tools-20261017-57d8d410ebef9cd9-10:gate",
    "evidence_hash": "912193d6318cbbe9e6d9a29d83bbd5a8d46afc4c93c8479aad9a6a524b60351c"
  },
  "review": {
    "draft_hash": "67bb6bc9c1dae3fbb3fc0604aeb7b935f772e970a37abf880dc4581206f36c12",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave1b-tools-20261017:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.93 >= 0.9; 2 needed) and Jev gave 0.69 (>= 0.6 needed)."
  }
}
