使用GitHub GraphQL API来获取GitHub评论
首先
@iron-samurai さん的文章 (zhī)
@iron-samurai さん 的文章 (Plus, “さん” is a Japanese honorific and not used in Chinese.)
浏览了[Github API]中的内容,从中了解到为了回顾评论,将过去收到的所有评论提取出来并以Json格式输出的方法。我也希望使用GitHub API一次性查看过去的评论。本文将介绍使用gh命令和GraphQL获取GitHub评论的方法。
GitHub API 是什么?
请使用GitHub的REST API来构建集成,提取数据并自动化工作流程。
这是一个可以使用API来执行GitHub的各种功能的工具。
GitHub GraphQL API是什么?
GitHub的GraphQL API提供了灵活性和准确定义要提取的数据的功能。
基本上,透過GraphQL而不是REST格式來使用GitHub API來獲取數據。
环境准备
如果您希望从命令行发出 API 请求,GitHub 建议使用 GitHub CLI。
因此,本文中将使用 GitHub CLI 来获取评论。
# ツールインストール
brew install gh
# 認証
gh auth login
如果不是使用MacOS的話,請選擇以下選項並安裝GitHub CLI以符合您的環境。
https://github.com/cli/cli#installation
查询
gh api graphql -F owner='組織名orアカウント名' -F name='リポジトリ名' -f query='
query($name: String!, $owner: String!){
repository(owner: $owner, name: $name) {
pullRequests(first: 1,orderBy: {field: CREATED_AT, direction: DESC}) {
nodes {
url
title
createdAt
author {
login
}
reviews(first: 10) {
edges {
node {
comments(first: 25) {
edges {
node {
databaseId
bodyText
diffHunk
createdAt
path
author {
login
}
replyTo {
databaseId
bodyText
diffHunk
createdAt
path
author {
login
}
}
}
}
}
}
}
}
comments(first: 10,orderBy: {field: UPDATED_AT, direction: DESC}) {
nodes {
createdAt
bodyText
}
}
}
}
}
}
相应的类型
关于对象
https://docs.github.com/ja/graphql/reference/objects
节点和边的区别。
節點
节点是对象的总称。节点可以直接进行查找,也可以通过连接访问相关节点。如果指定了返回非标量节点,则需要包括所有子字段,直到在所有字段中返回标量为止。
边缘
边表示节点之间的连接。对连接进行查询将通过遍历该边来获取节点。每个边的字段都包含节点字段和游标字段。
评论和评论评论的区别
评论是附加在拉请求上的评论
评论文件中的评论
参照
GH命令的安装
https://docs.github.com/ja/rest/quickstart?apiVersion=2022-11-28