Skip to main content

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