git-bug/graphql/schema.graphql

203 lines
4.3 KiB
GraphQL

scalar Time
scalar Label
scalar Hash
# Information about pagination in a connection.
type PageInfo {
# When paginating forwards, are there more items?
hasNextPage: Boolean!
# When paginating backwards, are there more items?
hasPreviousPage: Boolean!
# When paginating backwards, the cursor to continue.
startCursor: String!
# When paginating forwards, the cursor to continue.
endCursor: String!
}
# Represents an person in a git object.
type Person {
# The email of the person.
email: String
# The name of the person.
name: String
}
type CommentConnection {
edges: [CommentEdge!]!
nodes: [Comment!]!
pageInfo: PageInfo!
totalCount: Int!
}
type CommentEdge {
cursor: String!
node: Comment!
}
# Represents a comment on a bug.
type Comment implements Authored {
# The author of this comment.
author: Person!
# The message of this comment.
message: String!
# All media's hash referenced in this comment
files: [Hash!]!
}
enum Status {
OPEN
CLOSED
}
# An object that has an author.
interface Authored {
# The author of this object.
author: Person!
}
type OperationConnection {
edges: [OperationEdge!]!
nodes: [Operation!]!
pageInfo: PageInfo!
totalCount: Int!
}
type OperationEdge {
cursor: String!
node: Operation!
}
# An operation applied to a bug.
interface Operation {
# The operations author.
author: Person!
# The datetime when this operation was issued.
date: Time!
}
type CreateOperation implements Operation, Authored {
author: Person!
date: Time!
title: String!
message: String!
files: [Hash!]!
}
type SetTitleOperation implements Operation, Authored {
author: Person!
date: Time!
title: String!
was: String!
}
type AddCommentOperation implements Operation, Authored {
author: Person!
date: Time!
message: String!
files: [Hash!]!
}
type SetStatusOperation implements Operation, Authored {
author: Person!
date: Time!
status: Status!
}
type LabelChangeOperation implements Operation, Authored {
author: Person!
date: Time!
added: [Label!]!
removed: [Label!]!
}
# The connection type for Bug.
type BugConnection {
# A list of edges.
edges: [BugEdge!]!
nodes: [Bug!]!
# Information to aid in pagination.
pageInfo: PageInfo!
# Identifies the total count of items in the connection.
totalCount: Int!
}
# An edge in a connection.
type BugEdge {
# A cursor for use in pagination.
cursor: String!
# The item at the end of the edge.
node: Bug!
}
type Bug {
id: String!
humanId: String!
status: Status!
title: String!
labels: [Label!]!
author: Person!
createdAt: Time!
lastEdit: Time!
comments(
# Returns the elements in the list that come after the specified cursor.
after: String
# Returns the elements in the list that come before the specified cursor.
before: String
# Returns the first _n_ elements from the list.
first: Int
# Returns the last _n_ elements from the list.
last: Int
): CommentConnection!
operations(
# Returns the elements in the list that come after the specified cursor.
after: String
# Returns the elements in the list that come before the specified cursor.
before: String
# Returns the first _n_ elements from the list.
first: Int
# Returns the last _n_ elements from the list.
last: Int
): OperationConnection!
}
type Repository {
allBugs(
# Returns the elements in the list that come after the specified cursor.
after: String
# Returns the elements in the list that come before the specified cursor.
before: String
# Returns the first _n_ elements from the list.
first: Int
# Returns the last _n_ elements from the list.
last: Int
): BugConnection!
bug(prefix: String!): Bug
}
type Query {
defaultRepository: Repository
repository(id: String!): Repository
}
type Mutation {
newBug(repoRef: String, title: String!, message: String!, files: [Hash!]): Bug!
addComment(repoRef: String, prefix: String!, message: String!, files: [Hash!]): Bug!
changeLabels(repoRef: String, prefix: String!, added: [String!], removed: [String!]): Bug!
open(repoRef: String, prefix: String!): Bug!
close(repoRef: String, prefix: String!): Bug!
setTitle(repoRef: String, prefix: String!, title: String!): Bug!
commit(repoRef: String, prefix: String!): Bug!
}