Edited at

Google Apps ScriptでGithub GraphQL API v4を叩く

More than 1 year has passed since last update.


やりたいこと


  • gasからGithub GraphQL API v4を叩きたい



  • GraphQLをどうやってリクエストにのせればよいのかわからない

  • わかった!


どうやったか

実際に動かしているのはこれです(typescriptで書いてます)

https://github.com/abeyuya/gas-slack-bot-aoba/blob/master/src/lib/github.ts

以下に関係する箇所を抜粋しておきます


const accessToken = process.env.GITHUB_ACCESS_TOKEN || "";
const endpoint = "https://api.github.com/graphql";

const graphql = `
{
user(login: "abeyuya") {
organizations(last: 5) {
nodes {
name
url
repositories(last:100) {
nodes {
name
url
pullRequests(last:30 states:[OPEN] ) {
nodes {
url
title
reviewRequests(last:10) {
nodes {
requestedReviewer {
... on User {
url
}
}
}
}
}
}
}
}
}
}
}
}
`
;

const buildRequestOption = (graphql: string) => {
return {
method: "post",
contentType: "application/json",
headers: {
Authorization: `bearer ${accessToken}`,
},
payload: JSON.stringify({ query: graphql }),
};
};

export const getAssignedPullRequests = () => {
const option = buildRequestOption(graphql);
const res = UrlFetchApp.fetch(endpoint, option);
const json = JSON.parse(res.getContentText());
return json;
};

graphql自体は こちら のexplorerで試行錯誤して書いて、その結果をコピペしてきました