feat: link commits, branches and pull requests to tickets
A project can turn on a webhook for GitHub, Gitea or GitLab. Pushes and pull or merge requests that name a ticket key show on that ticket under Desarrollo, with the state of each pull request; the secret is shown and rotated from the project settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -203,6 +203,34 @@ type CumulativeFlow {
|
||||
series: [FlowSeries!]!
|
||||
}
|
||||
|
||||
"""A commit, branch or pull request that mentions the ticket"""
|
||||
type DevLink {
|
||||
at: String!
|
||||
author: String
|
||||
kind: DevLinkKind!
|
||||
|
||||
"""github, gitea or gitlab"""
|
||||
provider: String!
|
||||
|
||||
"""Short SHA, branch or PR number"""
|
||||
ref: String!
|
||||
state: DevLinkState
|
||||
title: String!
|
||||
url: String!
|
||||
}
|
||||
|
||||
enum DevLinkKind {
|
||||
BRANCH
|
||||
COMMIT
|
||||
PULL_REQUEST
|
||||
}
|
||||
|
||||
enum DevLinkState {
|
||||
CLOSED
|
||||
MERGED
|
||||
OPEN
|
||||
}
|
||||
|
||||
type DurationStats {
|
||||
averageDays: Float
|
||||
count: Int!
|
||||
@@ -222,6 +250,19 @@ type FlowSeries {
|
||||
status: String!
|
||||
}
|
||||
|
||||
"""
|
||||
Webhook from GitHub, Gitea or GitLab: commits, branches and pull requests naming a ticket key are linked to it
|
||||
"""
|
||||
type GitIntegration {
|
||||
enabled: Boolean!
|
||||
|
||||
"""Webhook secret; only owners and admins see it"""
|
||||
secret: String
|
||||
|
||||
"""Path of the webhook on this API"""
|
||||
webhookPath: String!
|
||||
}
|
||||
|
||||
type Issue {
|
||||
"""Statuses this ticket can move to next (project's workflow)"""
|
||||
allowedTransitions: [String!]!
|
||||
@@ -235,6 +276,9 @@ type Issue {
|
||||
comments(limit: Int! = 50, offset: Int! = 0): CommentPage!
|
||||
createdAt: String!
|
||||
description: String
|
||||
|
||||
"""Commits, branches and pull requests that mention it"""
|
||||
devLinks: [DevLink!]!
|
||||
dueDate: String
|
||||
figmaUrl: String
|
||||
|
||||
@@ -435,8 +479,12 @@ type Mutation {
|
||||
|
||||
"""Delete a sprint that never started; its tickets go back to the backlog"""
|
||||
deleteSprint(sprintId: ID!): CommandResult!
|
||||
disableGitIntegration(projectId: ID!): Boolean!
|
||||
editComment(body: String!, commentId: ID!): CommandResult!
|
||||
|
||||
"""Turn the Git webhook on, with a new secret (also to rotate it)"""
|
||||
enableGitIntegration(projectId: ID!): GitIntegration!
|
||||
|
||||
"""Relate tickets, e.g. FE DEPENDS_ON BE, QA TESTS FE"""
|
||||
linkIssues(input: LinkIssuesInput!): CommandResult!
|
||||
|
||||
@@ -681,6 +729,7 @@ type Query {
|
||||
A project's epics: top-level tickets that group others, with the progress of those
|
||||
"""
|
||||
epics(projectId: ID!): [Epic!]!
|
||||
gitIntegration(projectId: ID!): GitIntegration!
|
||||
issue(
|
||||
"""Issue id or key (e.g. "TS-42")"""
|
||||
idOrKey: String!
|
||||
|
||||
Reference in New Issue
Block a user