mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
chore: update dashboard functions (#9504)
* Updates the package dependencies of the Dashboard dependencies. There seem to be errors with the old `node-github` API, but updating to the latest version (`@octokit/rest`) seems to work locally.
This commit is contained in:
committed by
Jeremy Elbourn
parent
5d77d908d4
commit
7024dc49f8
@@ -1,22 +1,11 @@
|
||||
import {GraphQLClient} from 'graphql-request';
|
||||
import {config} from 'firebase-functions';
|
||||
import * as GithubApi from 'github';
|
||||
import * as GithubApi from '@octokit/rest';
|
||||
|
||||
/** API token for the Github repository. Required to set the github status on commits and PRs. */
|
||||
const githubAccessToken = config().secret.github;
|
||||
|
||||
/** API Endpoint for the Github API v4 using GraphQL. */
|
||||
const githubApiV4Endpoint = 'https://api.github.com/graphql';
|
||||
|
||||
/** Export the GitHub V3 API instance that is authenticated. */
|
||||
export const githubApiV3 = new GithubApi();
|
||||
|
||||
/** Export the GraphQL client that can be used to query the Github API v4. */
|
||||
export const githubApiV4 = new GraphQLClient(githubApiV4Endpoint, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${githubAccessToken}`,
|
||||
}
|
||||
});
|
||||
|
||||
// Authenticate the Github API package with the user token.
|
||||
githubApiV3.authenticate({type: 'token', token: githubAccessToken});
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user