Projects API¶
Access with client.projects().
Read, update, delete¶
Project project = client.projects().get(projectId);
Project updated = client.projects().update(
projectId,
new UpdateProjectRequest()
.name("Core Platform")
.description(null)
.archived(false)
);
client.projects().delete(projectId);
Scopes: projects:read for read; projects:write for update/delete.
Delete is a soft delete.
Relationships¶
var members = client.projects().listMembers(projectId);
var labels = client.projects().listLabels(projectId);
var tags = client.projects().listTags(projectId);
These require projects:read and return DynamicResource rows because their detailed response schemas are not defined in the supplied OpenAPI file.
Use member and label identifiers returned by these endpoints when building ticket relationships.
Boards¶
List<Board> boards = client.projects().listBoards(projectId);
Board board = client.projects().createBoard(
projectId,
new CreateBoardRequest("QA")
.wipLimit(5)
);
client.projects().reorderBoards(
projectId,
new ReorderBoardsRequest(boardIds)
);
Scopes: boards:read and boards:write.
Tickets¶
var page = client.projects().listTickets(
projectId,
new ListTicketsOptions()
.boardId(boardId)
.query("deployment")
.perPage(100)
);
Ticket ticket = client.projects().createTicket(
projectId,
new CreateTicketRequest("Deploy release")
.boardSlug("open")
.priority(Priority.HIGH)
);
client.projects().reorderTickets(
projectId,
new ReorderTicketsRequest(boardId, orderedTicketIds)
);
reorderTickets returns HTTP 204 and therefore returns void in the SDK.
Analytics¶
Required scope: analytics:read. The endpoint reference describes totals, done/open/overdue counts, completion percentage, and board counts, but the uploaded OpenAPI document does not formally define that response schema. DynamicResource avoids treating those observed fields as a fixed Java contract.