Examples
This page contains examples of some of the most common queries Zenhub users run when working with the API. Use these examples as a starting point to working with the API.
Create a Workspace
Workspaces represent the top level container all other entities in Zenhub. The createWorkspace
mutation allows a user to create a new workspace within Zenhub.
Sample query
mutation createWorkspace {
createWorkspace(input: {
name: "Workspace Test",
description: "",
zenhubOrganizationId: "ZORG_ID",
repositoryGhIds: [43519777, 62587965],
defaultRepositoryGhId: 43519777
}) {
workspace {
id
name
}
}
}
Retrieve Workspace ID
Returns the ID of a workspace, includes the repository ID.
Sample query
query {
viewer {
id
searchWorkspaces(query: "WORKSPACE_NAME") {
nodes {
id
name
repositoriesConnection {
nodes {
id
name
}
}
}
}
}
}
Create an Issue
Create a new Issue.
Sample query
mutation createIssue {
createIssue(input: {
title: "My new issue",
body: "My new issue body",
repositoryId: "REPOSITORY_ID",
labels: ["Backend", "Frontend"],
assignees: ["github_handle"]
}) {
issue {
id
title
}
}
}
Create an Epic
Creates a new Epic.
Sample query
mutation createEpic {
createEpic(input: {
issue: {
repositoryId: "REPOSITORY_ID",
title: "My new epic"
}
}) {
epic {
id
issue {
id
title
}
}
}
}
Close an Issue
Close an existing Issue.
Sample query
mutation closeIssues {
closeIssues(input: {
issueIds: ["ISSUE_ID"]
}) {
successCount
}
}
Reopen an Issue
Reopen a closed Issue.
Sample query
mutation reopenIssues {
reopenIssues(input: {
issueIds: ["ISSUE_ID"]
pipelineId: "PIPELINE_ID",
position: START
}) {
successCount
}
}
Create a Sprint
Create a Sprint within Zenhub to add Issues and Epics to.
Sample query
mutation createSprintConfig {
createSprintConfig(input: {
sprintConfig: {
name: "Sprint config",
startOn: "2022-06-09T12:00:00",
endOn: "2022-06-15T12:00:00",
tzIdentifier: "America/Sao_Paulo",
workspaceId: "WORKSPACE_ID",
settings: {
issuesFromPipeline: {
pipelineId: "PIPELINE_ID",
enabled: true,
totalStoryPoints: 30
},
moveUnfinishedIssues: false
}
}
}) {
sprintConfig {
id
}
}
}
Add Issues to a Sprint
Add an Issue to an existing Sprint.
Sample query
mutation addIssuesToSprints {
addIssuesToSprints(input: {
issueIds: ["ISSUE_ID"],
sprintIds: ["SPRINT_ID"]
}) {
sprintIssues {
id
}
}
}
Set Issue Estimate
Set an estimate for a given Issue.
Sample query
mutation setEstimate {
setEstimate(input: {
value: 2,
issueId: "ISSUE_ID"
}) {
clientMutationId
}
}
Search for Issues by Title
Searches for Issues in a pipeline that match a title string.
Sample query
query {
searchIssuesByPipeline(
pipelineId: "PIPELINE_ID",
query: "my new issue"
filters: {}
) {
nodes {
id
number
title
}
}
}
Search for Issues by Label
Searches for Issues in a pipeline that match a label(s).
Sample query
query {
searchIssuesByPipeline(
pipelineId: "PIPELINE_ID",
filters: {
labels: { in: ["Backend"]}
}
) {
nodes {
id
number
title
}
}
}
Search for Issues by Assignee
Searches for Issues in a pipeline that have a specific assignee(s).
Sample query
query {
searchIssuesByPipeline(
pipelineId: "PIPELINE_ID",
filters: {
assignees: { in: ["GITHUB_HANDLE"]}
}
) {
nodes {
id
number
title
}
}
}
Create a Roadmap Project
Creates a new Project on the Roadmap.
Sample query
mutation createProject {
createProjectOnRoadmap(input: {
roadmapId: "ROADMAP_ID",
project: {
name: "My project"
}
}) {
project {
id
name
}
roadmap {
id
}
}
}
Set Start and End Dates for a Project
Sets the start and end dates for a Project on the Roadmap
Sample query
mutation updateProjectDates {
updateProjectDates(input: {
projectId: "PROJECT_ID",
startOn: "2022-06-09T12:00:00",
endOn: "2022-06-15T12:00:00",
action: SCALE
}) {
project {
name
startOn
endOn
}
}
}