あれ、今日何したっけ...?
っていうのもあれなのでGithubに今日の自分の頑張りを聞いてみる。
やってみる
以下を前提として、Github GraphQL Explorerでリクエストしてみる。
- 今日 = 日本時間 2020/03/02
- 対象ブランチ = staging
- 今日、以下のコミットを積んだ
- Repository1に
$ git commit -m "feature: A機能に〇〇を追加"
- Repository1に
$ git commit -m "fix: B機能のバグfix"
- Repository2に
$ git commit -m "refactor: C機能のリファクタリング"
- Repository1に
Query
{
user(login: "<ログインユーザー名>") {
# (1) 今日ContributeしたRepositoryの取得
contributionsCollection(from: "2020-03-01T15:00:00Z", to: "2020-03-02T15:00:00Z") {
commitContributionsByRepository {
repository {
name
ref(qualifiedName: "staging") {
target {
# (2) 今日のCommitの取得
... on Commit {
history(
first: 100,
author: {emails: ["<ログインユーザーのEmailアドレス>"]},
since: "2020-03-01T15:00:00Z",
until: "2020-03-02T15:00:00Z"
) {
nodes {
message
}
}
}
}
}
}
}
}
}
}
結果
{
"data": {
"user": {
"contributionsCollection": {
"commitContributionsByRepository": [
{
"repository": {
"name": "repository1",
"ref": {
"target": {
"history": {
"nodes": [
{
"message": "fix: B機能のバグfix"
},
{
"message": "feature: A機能に〇〇を追加"
},
]
}
}
}
}
},
{
"repository": {
"name": "repository2",
"ref": {
"target": {
"history": {
"nodes": [
{
"message": "refactor: C機能のリファクタリング"
}
]
}
}
}
}
}
]
}
}
}
}
ポイントの概説
(1) 今日ContributeしたRepositoryの取得
user.contributionsCollection.commitContributionsByRepository
でたどることができる
from
、to
パラメーターで範囲を指定できるが、2020-03-01T15:00:00Z
の形式に準拠してないとエラーになる。
(2) 今日のCommitの取得
repository.ref.targetとたどり、CommitをInline Fragmentで取得する