---
next_cursor: eyJzY29yZSI6MCwic2VxIjoxMjY1LCJzaW5jZSI6bnVsbCwidG9vbCI6ImdpdGh1Yi1ncmFwaHFsLWFwaSIsInYiOjF9
has_more: true
next: https://sincecutoff.com/v1/changes.md?tool=github-graphql-api&score=0&cursor=eyJzY29yZSI6MCwic2VxIjoxMjY1LCJzaW5jZSI6bnVsbCwidG9vbCI6ImdpdGh1Yi1ncmFwaHFsLWFwaSIsInYiOjF9
items: 10
---
# sincecutoff.com changes: github-graphql-api

## GitHub GraphQL adds TeamDiscussion queries and mutations (github-graphql-api, 2026-01-06)
Published 2026-10-17
- slug: github-graphql-adds-teamdiscussion-queries-and-mutations-c1b305dbfa04
- score: 0.98

How to use it:

If your target schema includes the Team Discussions fields, use the `Team.discussion` or `Team.discussions` fields to read discussions and the `createTeamDiscussion`, `updateTeamDiscussion`, or `deleteTeamDiscussion` mutations to change them. The current changelog documents these fields as removed on 2026-01-08, so check the schema available to your target before using them.

Examples:

```
mutation { createTeamDiscussion(input: { teamId: "<team-node-id>", title: "<title>", body: "<markdown-body>", private: false }) { teamDiscussion { id number title body } } }
```

```
mutation { updateTeamDiscussion(input: { id: "<discussion-node-id>", title: "<title>", body: "<markdown-body>", pinned: false }) { teamDiscussion { id number title body isPinned } } }
```

```
query { team(slug: "<org>/<team>") { discussion(number: <number>) { id number title body } discussions(first: 10, isPinned: false) { nodes { id number title body } pageInfo { hasNextPage endCursor } } } }
```

- why_it_matters: Create, update, delete, or query team discussions through the GitHub GraphQL API.
- sources: <https://docs.github.com/en/graphql/overview/changelog#schema-changes-for-2026-01-06>, <https://docs.github.com/en/enterprise-server%403.20/graphql/reference/other>, <https://docs.github.com/en/enterprise-server%403.20/graphql/reference/teams>, <https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions>
- gotchas: "CreateTeamDiscussionInput.teamId (required): Team node ID."; "CreateTeamDiscussionInput.title (required): Discussion title."; "CreateTeamDiscussionInput.body: Discussion body."; "CreateTeamDiscussionInput.private: Whether the discussion is private."; "CreateTeamDiscussionInput.clientMutationId: Client identifier for the mutation."; "UpdateTeamDiscussionInput.id (required): Discussion node ID."; "UpdateTeamDiscussionInput.title: Discussion title."; "UpdateTeamDiscussionInput.body: Discussion body."; "UpdateTeamDiscussionInput.bodyVersion: Body version value."; "UpdateTeamDiscussionInput.pinned: Whether the discussion is pinned."; "UpdateTeamDiscussionInput.clientMutationId: Client identifier for the mutation."; "DeleteTeamDiscussionInput.id (required): Discussion node ID to delete."; "DeleteTeamDiscussionInput.clientMutationId: Client identifier for the mutation."; "Team.discussion.number (required): Sequence number of the discussion to fetch."; "Team.discussions.after: Cursor after which to return connection items."; "Team.discussions.before: Cursor before which to return connection items."; "Team.discussions.first: Return the first n connection items."; "Team.discussions.last: Return the last n connection items."; "Team.discussions.isPinned: Filter discussions by pinned status."; "Team.discussions.orderBy: Order the discussion connection."; "Prerequisite: GraphQL API requests require authentication; the discussions guide documents `repo` scope for private repositories and `public_repo` scope for public repositories."; "Docs conflict: GitHub's GraphQL changelog lists the team-discussion types, mutations, and Team fields as removed on 2026-01-08, two days after the card's stated change date. Confirm the target schema before acting; the current documentation does not support treating these as continuously available."; "Docs conflict: The available Team Discussions reference is for GitHub Enterprise Server 3.20; its schema may differ from GitHub.com."

## GitHub GraphQL `PullRequest.suggestedReviewerActors` accepts `query` (github-graphql-api, 2026-01-21)
Published 2026-10-17
- slug: github-graphql-pullrequest-suggestedrevieweractors-accepts-query-ab2fe2d1bddd
- score: 0.91

How to use it:

When you need reviewer actor suggestions filtered by a search string, pass `query` to `PullRequest.suggestedReviewerActors`; it searches actor usernames and logins. [GitHub Pull requests reference](https://docs.github.com/en/enterprise-cloud@latest/graphql/reference/pulls)

Examples:

```
query { repository(owner: "<owner>", name: "<repo>") { pullRequest(number: <number>) { suggestedReviewerActors(query: "<search string>", first: 10) { nodes { reviewer { __typename } } } } } }
```

- why_it_matters: Query suggested reviewer actors for a pull request using a search string.
- sources: <https://docs.github.com/en/graphql/overview/changelog#schema-changes-for-2026-01-21>, <https://docs.github.com/en/enterprise-cloud@latest/graphql/reference/pulls>, <https://docs.github.com/en/graphql/reference/repos>
- gotchas: "query: Search actors by user name and login."; "first: Return the first n connection elements."; "owner (required): Repository owner login. The query uses the repository field."; "name (required): Repository name. The query uses the repository field."; "number (required): Pull request number. The query uses the pullRequest field."

## GitHub GraphQL API adds Mutation.requestReviewsByLogin (github-graphql-api, 2026-01-22)
Published 2026-10-17
- slug: github-graphql-api-adds-mutation-requestreviewsbylogin-21dd159f4acd
- score: 0.96

How to use it:

When requesting reviews on a pull request by login, call `Mutation.requestReviewsByLogin` with its required pull request ID and the applicable bot logins, team slugs, or user logins. Set `union` to add reviewers to the set; it defaults to `false`.

Examples:

```
mutation { requestReviewsByLogin(input: { pullRequestId: "<pull-request-node-id>", userLogins: ["<user-login>"], union: true }) { pullRequest { id } } }
```

- why_it_matters: Request reviews on a pull request by bot, team, or user login from a coding workflow.
- sources: <https://docs.github.com/en/graphql/overview/changelog#schema-changes-for-2026-01-22>, <https://docs.github.com/en/enterprise-cloud@latest/graphql/reference/pulls>
- gotchas: "input (required): `RequestReviewsByLoginInput!` argument for the mutation."; "pullRequestId (required): Node ID of the pull request to modify."; "botLogins: Bot logins to request reviews from; include the `[bot]` suffix."; "teamSlugs: Team slugs to request reviews from, in `org/team-slug` format."; "userLogins: User login strings to request reviews from."; "union: Add users to the set rather than replace; defaults to `false`. The docs do not state whether reviewer input fields are mutually exclusive."; "clientMutationId: Unique identifier for the client performing the mutation."

## GitHub GraphQL issue mutations accept agentAssignment (github-graphql-api, 2026-02-07)
Published 2026-10-17
- slug: github-graphql-issue-mutations-accept-agentassignment-a812dde3deae
- score: 0.92

How to use it:

When creating or assigning an issue to Copilot with a listed GraphQL mutation, include `agentAssignment` in its input to configure the assignment.

Examples:

```
gh api graphql -f query='mutation { createIssue(input: { repositoryId: "<REPOSITORY_ID>", title: "<TITLE>", body: "<DETAILS>", assigneeIds: ["<BOT_ID>"], agentAssignment: { targetRepositoryId: "<REPOSITORY_ID>", baseRef: "<BRANCH>", customInstructions: "<INSTRUCTIONS>", customAgent: "<CUSTOM_AGENT>" } }) { issue { id title } } }' -H 'GraphQL-Features: issues_copilot_assignment_api_support,coding_agent_model_selection'
```

```
gh api graphql -f query='mutation { addAssigneesToAssignable(input: { assignableId: "<ISSUE_ID>", assigneeIds: ["<BOT_ID>"], agentAssignment: { targetRepositoryId: "<REPOSITORY_ID>", baseRef: "<BRANCH>", customInstructions: "<INSTRUCTIONS>", customAgent: "<CUSTOM_AGENT>" } }) { assignable { ... on Issue { id title } } } }' -H 'GraphQL-Features: issues_copilot_assignment_api_support,coding_agent_model_selection'
```

```
gh api graphql -f query='mutation { updateIssue(input: { id: "<ISSUE_ID>", assigneeIds: ["<BOT_ID>"], agentAssignment: { targetRepositoryId: "<REPOSITORY_ID>", baseRef: "<BRANCH>", customInstructions: "<INSTRUCTIONS>", customAgent: "<CUSTOM_AGENT>" } }) { issue { id title } } }' -H 'GraphQL-Features: issues_copilot_assignment_api_support,coding_agent_model_selection'
```

- why_it_matters: Create or update an issue, or change its assignees, with agent assignment details through the GitHub GraphQL API.
- sources: <https://docs.github.com/en/graphql/overview/changelog#schema-changes-for-2026-02-07>, <https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-via-the-api>, <https://docs.github.com/en/graphql/reference/issues>
- gotchas: "Version: 2026-02-07"; "agentAssignment: Optional configuration for assigning Copilot or an AI agent; accepted by the four mutation input objects named in the release note."; "baseRef: String branch reference. Example uses `main`."; "customAgent: String custom agent value; example uses an empty string."; "customInstructions: String instructions customizing the task."; "targetRepositoryId: ID of the target repository."; "Prerequisite: Include the `GraphQL-Features` header with `issues_copilot_assignment_api_support` and `coding_agent_model_selection`."; "Prerequisite: For Copilot assignment, authenticate with a user token and ensure Copilot cloud agent is enabled for the user and repository. The docs demonstrate checking `suggestedActors` for Copilot."

## GitHub GraphQL adds issue comment pinning and pin status (github-graphql-api, 2026-03-12)
Published 2026-10-17
- slug: github-graphql-adds-issue-comment-pinning-and-pin-status-f0e8a66d80c5
- score: 0.99

How to use it:

When pinning a comment on an issue, call `pinIssueComment` with the comment’s node ID; use `IssueComment`’s `Pinnable` fields and the issue’s `pinnedIssueComment` to inspect pin status and details. Comment pinning is not supported on pull requests.

Examples:

```
mutation { pinIssueComment(input: { issueCommentId: "<ISSUE_COMMENT_NODE_ID>" }) { issueComment { id isPinned pinnedAt pinnedBy { login } viewerCanPin viewerCanUnpin } } }
```

```
query { node(id: "<ISSUE_NODE_ID>") { ... on Issue { pinnedIssueComment { issue { id } issueComment { id } pinnedAt pinnedBy { login } } } } }
```

- why_it_matters: Pin or inspect pinned issue comments 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/issues>
- gotchas: "PinIssueCommentInput.issueCommentId (required): ID of the issue comment to pin; comment pinning is unsupported on pull requests."; "PinIssueCommentInput.clientMutationId: Unique identifier for the client performing the mutation."; "Pinnable.isPinned: Whether the entity is currently pinned."; "Pinnable.pinnedAt: When the entity was pinned."; "Pinnable.pinnedBy: User who pinned the entity."; "Pinnable.viewerCanPin: Whether the current viewer can pin the entity."; "Pinnable.viewerCanUnpin: Whether the current viewer can unpin the entity."; "PinnedIssueComment.issue: Issue the pinned comment belongs to."; "PinnedIssueComment.issueComment: Comment that was pinned."; "PinnedIssueComment.pinnedAt: When the comment was pinned."; "PinnedIssueComment.pinnedBy: Actor who pinned the comment."; "Prerequisite: The target must be an issue comment; GitHub documents that comment pinning is not supported on pull requests."; "The `PinIssueComment` input requires `issueCommentId`."

## GitHub GraphQL adds issue field schema and value types (github-graphql-api, 2026-03-12)
Published 2026-10-17
- slug: github-graphql-adds-issue-field-schema-and-value-types-7811d89f39ac
- score: 0.97

How to use it:

When tooling must read issue field definitions and values, query `Repository.issueFields` and `Issue.issueFieldValues`, selecting concrete union members with inline fragments. Use `IssueFieldCommon` and `IssueFieldValueCommon` for shared fields; `IssueFieldCreateOrUpdateInput` is for supplying values, not reading them.

Examples:

```
query($owner: String!, $name: String!, $first: Int!) { repository(owner: $owner, name: $name) { issueFields(first: $first) { nodes { __typename ... on IssueFieldCommon { id name createdAt dataType description visibility } ... on IssueFieldSingleSelect { options { id name color priority } } } pageInfo { hasNextPage endCursor } } } }
```

```
query($owner: String!, $name: String!, $number: Int!, $first: Int!) { repository(owner: $owner, name: $name) { issue(number: $number) { issueFieldValues(first: $first) { nodes { __typename ... on IssueFieldValueCommon { field { __typename ... on IssueFieldCommon { id name dataType } } } ... on IssueFieldDateValue { value } ... on IssueFieldNumberValue { value } ... on IssueFieldSingleSelectValue { name } ... on IssueFieldTextValue { value } } pageInfo { hasNextPage endCursor } } } } }
```

- why_it_matters: Build tooling that reads issue field definitions and values 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/repos>, <https://docs.github.com/en/graphql/reference/issues>
- gotchas: "repository(owner:, name:) (required): Selects the repository by owner and name."; "issue(number:) (required): Selects the issue by its number in the repository."; "first: Returns the first n connection elements; use `pageInfo` and `after` to paginate."; "IssueFieldCreateOrUpdateInput.fieldId (required): ID of the issue field."; "IssueFieldCreateOrUpdateInput.dateValue: Date field value."; "IssueFieldCreateOrUpdateInput.numberValue: Numeric field value."; "IssueFieldCreateOrUpdateInput.singleSelectOptionId: ID of the selected single-select option."; "IssueFieldCreateOrUpdateInput.textValue: Text field value."; "IssueFieldCreateOrUpdateInput.delete: Set true to delete the field value."; "IssueFieldSingleSelectOptionInput.color (required): Option display color: BLUE, GRAY, GREEN, ORANGE, PINK, PURPLE, RED, or YELLOW."; "IssueFieldSingleSelectOptionInput.name (required): Option name."; "IssueFieldSingleSelectOptionInput.priority (required): Option priority order."; "IssueFieldOrder.direction (required): Ordering direction."; "IssueFieldOrder.field (required): Ordering field: NAME or CREATED_AT."; "`IssueFieldCreateOrUpdateInput` requires `fieldId`; its value fields include `dateValue`, `numberValue`, `singleSelectOptionId`, and `textValue`."; "The added field data types are `DATE`, `NUMBER`, `TEXT`, and `SINGLE_SELECT`."; "The added visibility values are `ALL` and `ORG_ONLY`."; "The added issue field order values are `NAME` and `CREATED_AT`."; "Single-select options require `color`, `name`, and `priority`; `color` accepts `BLUE`, `GRAY`, `GREEN`, `ORANGE`, `PINK`, `PURPLE`, `RED`, or `YELLOW`."; "Docs conflict: Current official schema docs list the additional `MULTI_SELECT` field and value types, beyond the four types stated in the card; current docs also add `multiSelectOptionIds`, `confidence`, `rationale`, and `suggest` to `IssueFieldCreateOrUpdateInput`. The current docs are newer than the 2026-03-12 change. https://docs.github.com/en/graphql/reference/issues"; "Docs conflict: Current changelog documents `Repository.issueFields` and its pagination/order arguments in a later schema change than 2026-03-12. https://docs.github.com/en/graphql/overview/changelog?apiVersion=2022-11-28"

## GitHub GraphQL adds project issue field value types (github-graphql-api, 2026-03-12)
Published 2026-10-17
- slug: github-graphql-adds-project-issue-field-value-types-351d9986acb4
- score: 0.93

How to use it:

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='
query {
  node(id: "<PROJECT_ID>") {
    ... on ProjectV2 {
      items(first: 20) {
        nodes {
          id
          fieldValues(first: 20) {
            nodes {
              ... on ProjectV2ItemIssueFieldValue {
                field { ... on ProjectV2FieldCommon { name } }
                issueFieldValue {
                  ... on IssueFieldDateValue { value }
                  ... on IssueFieldNumberValue { value }
                  ... on IssueFieldSingleSelectValue { name }
                  ... on IssueFieldTextValue { value }
                }
              }
            }
          }
        }
      }
    }
  }
}'
```

- 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>
- 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"

## GitHub GraphQL `createIssueField` mutation adds issue fields (github-graphql-api, 2026-03-12)
Published 2026-10-17
- slug: github-graphql-createissuefield-mutation-adds-issue-fields-236a5fc5de13
- score: 0.96

How to use it:

When creating an issue field for an organization, call `Mutation.createIssueField` with `dataType`, `name`, and the organization’s `ownerId`. Include `options` when applicable, such as for single-select fields.

Examples:

```
mutation { createIssueField(input: { dataType: <ISSUE_FIELD_DATA_TYPE>, name: "<field name>", ownerId: "<organization node ID>" }) { issueField { __typename } } }
```

- why_it_matters: Create an issue field 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/issues>
- gotchas: "input (required): `CreateIssueFieldInput` for the mutation."; "dataType (required): Issue field data type (`IssueFieldDataType`)."; "name (required): Name of the issue field."; "ownerId (required): ID of the organization where the field will be created."; "description: Description of the issue field."; "visibility: Visibility of the issue field (`IssueFieldVisibility`)."; "clientMutationId: Unique identifier for the client performing the mutation."; "options: Options for the issue field if applicable; each option has required `color` (associated color), required `name` (option name), required `priority` (list priority), and optional `description`."; "options[].color (required): Color associated with the single-select option (`IssueFieldSingleSelectOptionColor`)."; "options[].name (required): Name of the single-select option."; "options[].priority (required): Priority of the option in the list."; "options[].description: Description of the option."; "`dataType`, `name`, and `ownerId` are required inputs."; "`options` has type `[IssueFieldSingleSelectOption!]`."

## GitHub GraphQL `deleteIssueField` mutation deletes issue fields (github-graphql-api, 2026-03-12)
Published 2026-10-17
- slug: github-graphql-deleteissuefield-mutation-deletes-issue-fields-f07cd01b73bf
- score: 0.98

How to use it:

To delete an issue field, call `deleteIssueField` with its required field ID and request the deleted field in the response.

Examples:

```
mutation DeleteIssueField($input: DeleteIssueFieldInput!) { deleteIssueField(input: $input) { issueField { id } } }
```

- why_it_matters: Delete an issue field 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/issues>
- gotchas: "input (required): Input object for `deleteIssueField`."; "input.fieldId (required): ID of the field to delete."; "input.clientMutationId: Unique identifier for the client performing the mutation."; "deleteIssueField.issueField: Deleted issue field returned by the mutation; this example selects its `id`."; "deleteIssueField.clientMutationId: Unique identifier for the client performing the mutation, returned in the payload."; "`fieldId` is a required input."

## GitHub GraphQL `deleteIssueFieldValue` mutation deletes issue field values (github-graphql-api, 2026-03-12)
Published 2026-10-17
- slug: github-graphql-deleteissuefieldvalue-mutation-deletes-issue-field-values-7b63e4d2a102
- score: 0.98

How to use it:

When deleting an issue field value, call `Mutation.deleteIssueFieldValue` with the required field and issue IDs. Select `success` to check whether deletion succeeded.

Examples:

```
curl -H "Authorization: bearer <TOKEN>" -H "Content-Type: application/json" -X POST --data-raw '{"query":"mutation($input: DeleteIssueFieldValueInput!) { deleteIssueFieldValue(input: $input) { success } }","variables":{"input":{"fieldId":"<FIELD_ID>","issueId":"<ISSUE_ID>"}}}' https://api.github.com/graphql
```

- why_it_matters: Delete an issue field value from an issue 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/guides/forming-calls-with-graphql>, <https://docs.github.com/en/graphql/reference/issues>
- gotchas: "input (required): `DeleteIssueFieldValueInput!` argument to `deleteIssueFieldValue`."; "fieldId (required): `ID!`; ID of the field to delete."; "issueId (required): `ID!`; ID of the issue."; "clientMutationId: `String`; unique identifier for the client performing the mutation."; "success: `Boolean`; whether the field value was successfully deleted."; "Prerequisite: Authenticate to the GraphQL API with a personal access token, GitHub App, or OAuth app. Required scopes or permissions depend on the requested data; the docs do not specify the exact permission for this mutation."; "Prerequisite: For GitHub.com, send the GraphQL request to `https://api.github.com/graphql` as an HTTP POST."; "`fieldId` and `issueId` are required inputs."

Next: https://sincecutoff.com/v1/changes.md?tool=github-graphql-api&score=0&cursor=eyJzY29yZSI6MCwic2VxIjoxMjY1LCJzaW5jZSI6bnVsbCwidG9vbCI6ImdpdGh1Yi1ncmFwaHFsLWFwaSIsInYiOjF9
Save `next_cursor`; next visit, pass it to get only what was published since.
<!-- end of page -->
