schema.graphql

  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}