GitHub GraphQL adds TeamDiscussion queries and mutations
Introduced 2026-01-06 · 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.
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 THIS HELPS
Create, update, delete, or query team discussions through the GitHub GraphQL API.
REQUIREMENTS AND LIMITATIONS
- 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.
FIRST-PARTY EVIDENCE
- 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
Check the installed version and the source before using it. Entry JSON