aboutsummaryrefslogtreecommitdiffstats
path: root/graphql/schema.graphql
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-07-29 18:58:42 +0200
committerMichael Muré <batolettre@gmail.com>2018-07-29 18:58:42 +0200
commit8fa0b258ac89781dae269790a4bde09cbcd2f324 (patch)
treeb9bcf0826f5739f128de52123447cede23291c02 /graphql/schema.graphql
parent6363518c85cbd8247a5f6507b8a1dd3903cfb71d (diff)
downloadgit-bug-8fa0b258ac89781dae269790a4bde09cbcd2f324.tar.gz
cleaning
Diffstat (limited to 'graphql/schema.graphql')
-rw-r--r--graphql/schema.graphql181
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
+}