diff options
author | Michael Muré <batolettre@gmail.com> | 2018-07-29 18:58:42 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2018-07-29 18:58:42 +0200 |
commit | 8fa0b258ac89781dae269790a4bde09cbcd2f324 (patch) | |
tree | b9bcf0826f5739f128de52123447cede23291c02 /graphql/schema.graphql | |
parent | 6363518c85cbd8247a5f6507b8a1dd3903cfb71d (diff) | |
download | git-bug-8fa0b258ac89781dae269790a4bde09cbcd2f324.tar.gz |
cleaning
Diffstat (limited to 'graphql/schema.graphql')
-rw-r--r-- | graphql/schema.graphql | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/graphql/schema.graphql b/graphql/schema.graphql new file mode 100644 index 00000000..47716488 --- /dev/null +++ b/graphql/schema.graphql @@ -0,0 +1,181 @@ +scalar Time +scalar Label + +# 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 +} + +input ConnectionInput { + # 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 +} + +# 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!]! + 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! +} + +enum Status { + OPEN + CLOSED +} + +# An object that has an author. +interface Authored { + # The author of this object. + author: Person! +} + +type OperationConnection { + edges: [OperationEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type OperationEdge { + cursor: String! + node: OperationUnion! +} + +# 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! +} + +type SetTitleOperation implements Operation, Authored { + author: Person! + date: Time! + + title: String! +} + +type AddCommentOperation implements Operation, Authored { + author: Person! + date: Time! + + message: String! +} + +type SetStatusOperation implements Operation, Authored { + author: Person! + date: Time! + + status: Status! +} + +type LabelChangeOperation implements Operation, Authored { + author: Person! + date: Time! + + added: [Label!]! + removed: [Label!]! +} + +union OperationUnion = + CreateOperation + | SetTitleOperation + | AddCommentOperation + | SetStatusOperation + | LabelChangeOperation + +# The connection type for Bug. +type BugConnection { + # A list of edges. + edges: [BugEdge]! + + # 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! + title: String! + status: Status! + + # A list of labels associated with the repository. + labels: [Label!]! + + comments(input: ConnectionInput!): CommentConnection! + + operations(input: ConnectionInput!): OperationConnection! +} + +type Repository { + allBugs(input: ConnectionInput!): BugConnection! + bug(prefix: String!): Bug +} + +type Query { + defaultRepository: Repository + repository(id: String!): Repository +} |