UNPKG

ipsos-components

Version:

Material Design components for Angular

44 lines (35 loc) 1.34 kB
import {githubApiV4} from './github-api'; /** GraphQL query that finds all Pull Requests and their mergeable state. */ const getOpenPullRequestsWithMergeableStateQuery = ` query getOpenPullRequestsWithMergeableState($lastCursor: String) { repository(owner: "angular", name: "material2") { pullRequests(states: OPEN, first: 100, after: $lastCursor) { pageInfo { hasNextPage, endCursor } nodes { number, mergeable } } } }`; /** Pull Request node that will be returned by the Github V4 API. */ export interface PullRequestWithMergeableState { number: number; mergeable: string; } /** Queries the GitHub API to find all open pull requests and their mergeable state. */ export async function getOpenPullRequestsWithMergeableState() : Promise<PullRequestWithMergeableState[]> { const nodes: PullRequestWithMergeableState[] = []; let lastData: any|null = null; while (!lastData || lastData.repository.pullRequests.pageInfo.hasNextPage) { lastData = await githubApiV4.request(getOpenPullRequestsWithMergeableStateQuery, { lastCursor: lastData && lastData.repository.pullRequests.pageInfo.endCursor }); nodes.push(...lastData.repository.pullRequests.nodes); } return nodes; }