1scalar Time
2scalar Label
3scalar Hash
4
5# Information about pagination in a connection.
6type PageInfo {
7 # When paginating forwards, are there more items?
8 hasNextPage: Boolean!
9 # When paginating backwards, are there more items?
10 hasPreviousPage: Boolean!
11 # When paginating backwards, the cursor to continue.
12 startCursor: String!
13 # When paginating forwards, the cursor to continue.
14 endCursor: String!
15}
16
17# Represents an person in a git object.
18type Person {
19 # The email of the person.
20 email: String
21
22 # The name of the person.
23 name: String
24}
25
26type CommentConnection {
27 edges: [CommentEdge!]!
28 nodes: [Comment!]!
29 pageInfo: PageInfo!
30 totalCount: Int!
31}
32
33type CommentEdge {
34 cursor: String!
35 node: Comment!
36}
37
38# Represents a comment on a bug.
39type Comment implements Authored {
40 # The author of this comment.
41 author: Person!
42
43 # The message of this comment.
44 message: String!
45
46 # All media's hash referenced in this comment
47 files: [Hash!]!
48}
49
50enum Status {
51 OPEN
52 CLOSED
53}
54
55# An object that has an author.
56interface Authored {
57 # The author of this object.
58 author: Person!
59}
60
61type OperationConnection {
62 edges: [OperationEdge!]!
63 nodes: [Operation!]!
64 pageInfo: PageInfo!
65 totalCount: Int!
66}
67
68type OperationEdge {
69 cursor: String!
70 node: Operation!
71}
72
73# An operation applied to a bug.
74interface Operation {
75 # The operations author.
76 author: Person!
77 # The datetime when this operation was issued.
78 date: Time!
79}
80
81type CreateOperation implements Operation, Authored {
82 author: Person!
83 date: Time!
84
85 title: String!
86 message: String!
87 files: [Hash!]!
88}
89
90type SetTitleOperation implements Operation, Authored {
91 author: Person!
92 date: Time!
93
94 title: String!
95 was: String!
96}
97
98type AddCommentOperation implements Operation, Authored {
99 author: Person!
100 date: Time!
101
102 message: String!
103 files: [Hash!]!
104}
105
106type SetStatusOperation implements Operation, Authored {
107 author: Person!
108 date: Time!
109
110 status: Status!
111}
112
113type LabelChangeOperation implements Operation, Authored {
114 author: Person!
115 date: Time!
116
117 added: [Label!]!
118 removed: [Label!]!
119}
120
121# The connection type for Bug.
122type BugConnection {
123 # A list of edges.
124 edges: [BugEdge!]!
125 nodes: [Bug!]!
126 # Information to aid in pagination.
127 pageInfo: PageInfo!
128 # Identifies the total count of items in the connection.
129 totalCount: Int!
130}
131
132# An edge in a connection.
133type BugEdge {
134 # A cursor for use in pagination.
135 cursor: String!
136 # The item at the end of the edge.
137 node: Bug!
138}
139
140type Bug {
141 id: String!
142 humanId: String!
143 status: Status!
144 title: String!
145 labels: [Label!]!
146 author: Person!
147 createdAt: Time!
148 lastEdit: Time!
149
150 comments(
151 # Returns the elements in the list that come after the specified cursor.
152 after: String
153 # Returns the elements in the list that come before the specified cursor.
154 before: String
155 # Returns the first _n_ elements from the list.
156 first: Int
157 # Returns the last _n_ elements from the list.
158 last: Int
159 ): CommentConnection!
160
161 operations(
162 # Returns the elements in the list that come after the specified cursor.
163 after: String
164 # Returns the elements in the list that come before the specified cursor.
165 before: String
166 # Returns the first _n_ elements from the list.
167 first: Int
168 # Returns the last _n_ elements from the list.
169 last: Int
170 ): OperationConnection!
171}
172
173type Repository {
174 allBugs(
175 # Returns the elements in the list that come after the specified cursor.
176 after: String
177 # Returns the elements in the list that come before the specified cursor.
178 before: String
179 # Returns the first _n_ elements from the list.
180 first: Int
181 # Returns the last _n_ elements from the list.
182 last: Int
183 # A query to select and order bugs
184 query: String
185 ): BugConnection!
186 bug(prefix: String!): Bug
187}
188
189type Query {
190 defaultRepository: Repository
191 repository(id: String!): Repository
192}
193
194type Mutation {
195 newBug(repoRef: String, title: String!, message: String!, files: [Hash!]): Bug!
196
197 addComment(repoRef: String, prefix: String!, message: String!, files: [Hash!]): Bug!
198 changeLabels(repoRef: String, prefix: String!, added: [String!], removed: [String!]): Bug!
199 open(repoRef: String, prefix: String!): Bug!
200 close(repoRef: String, prefix: String!): Bug!
201 setTitle(repoRef: String, prefix: String!, title: String!): Bug!
202
203 commit(repoRef: String, prefix: String!): Bug!
204}