GitHub ActionsでOctokit.jsを使ってGraphQLを叩いてみる
公開日: 2024/05/02
概要
Octokitを使ってGitHubの情報を確認する。
テスト用コードの実行
README.mdにあるコードを実行する。環境変数はあらかじめ指定しておいた。
import { Octokit, App } from "octokit";
const GITHUB_PERSONAL_KEY = process.env['GITHUB_PERSONAL_KEY'];
const octokit = new Octokit({ auth: GITHUB_PERSONAL_KEY });
const {
data: { login },
} = await octokit.rest.users.getAuthenticated();
console.log("Hello, %s", login);
node main.mjs
Hello, octop162
GraphQLに基づいてissueを検索する
GraphQLをつかってissueを絞り込む。 確認ページを使ってクエリを調整した。 (GraphQLの知見がなさすぎたがChatGPTに効くと良い回答が返ってきたのでそれを元に調べた)。
ワークフロー上での環境整備を減らすためDenoを使う。
import { Octokit } from "https://esm.sh/octokit?dts";
const GITHUB_PERSONAL_KEY = Deno.env.get('PERSONAL_KEY');
const octokit = new Octokit({ auth: PERSONAL_KEY });
const owner_name = 'xxx';
const repo_name = 'xxx';
const query = '20240501';
const {search: {nodes}}= await octokit.graphql(`{
search(query: "repo:${owner_name}/${repo_name} is:issue is:open ${query}", type: ISSUE, first: 20) {
nodes {
... on Issue {
number
title
url
}
}
}
}`)
nodes.forEach(node => {
console.log(`- [#${node.number}](${node.url}) - ${node.title}`);
});
Deno.exit(0);
実行した。
deno run --allow-net --allow-env main.js
- [#1](https://github.com/xxx/xxx/issues/1) - 20240501 test