MCPcopy Create free account
hub / github.com/Martian-Engineering/pr-sheriff / getIssueTimeline

Method getIssueTimeline

src/github/github_fetch.mjs:158–231  ·  view source on GitHub ↗

* Fetch issue timeline events, including cross-references and "closed by" data. * * This uses GraphQL because REST issue timeline is still awkward and requires previews.

(number, { useCache = true } = {})

Source from the content-addressed store, hash-verified

156 * This uses GraphQL because REST issue timeline is still awkward and requires previews.
157 */
158 async getIssueTimeline(number, { useCache = true } = {}) {
159 const query = `
160 query($owner: String!, $name: String!, $number: Int!, $cursor: String) {
161 repository(owner: $owner, name: $name) {
162 issue(number: $number) {
163 timelineItems(
164 first: 100,
165 after: $cursor,
166 itemTypes: [
167 CROSS_REFERENCED_EVENT,
168 REFERENCED_EVENT,
169 CLOSED_EVENT,
170 REOPENED_EVENT,
171 LABELED_EVENT,
172 UNLABELED_EVENT
173 ]
174 ) {
175 nodes {
176 __typename
177 ... on CrossReferencedEvent {
178 createdAt
179 actor { login }
180 source {
181 __typename
182 ... on PullRequest { number title url mergedAt closedAt }
183 ... on Issue { number title url closedAt }
184 }
185 }
186 ... on ReferencedEvent {
187 createdAt
188 actor { login }
189 commit { oid url messageHeadline }
190 commitRepository { nameWithOwner }
191 }
192 ... on ClosedEvent {
193 createdAt
194 actor { login }
195 closer {
196 __typename
197 ... on PullRequest { number title url mergedAt closedAt }
198 ... on Commit { oid url messageHeadline }
199 }
200 }
201 ... on ReopenedEvent {
202 createdAt
203 actor { login }
204 }
205 ... on LabeledEvent {
206 createdAt
207 actor { login }
208 label { name }
209 }
210 ... on UnlabeledEvent {
211 createdAt
212 actor { login }
213 label { name }
214 }
215 }

Callers 2

addIssueTimelineEdgesFunction · 0.80

Calls 1

#graphqlPaginateNodesMethod · 0.95

Tested by

no test coverage detected