11# go-github Open Issue / PR 調査レポート
22
3- > 対象: ** google/go-github** (フォーク: ` JamBalaya56562/go-github ` )/ 調査日: ** 2026-06-20** (最終更新: ** 2026-06-22 ** )
3+ > 対象: ** google/go-github** (フォーク: ` JamBalaya56562/go-github ` )/ 調査日: ** 2026-06-20** (最終更新: ** 2026-06-23 ** )
44>
55> 更新履歴:
66> - 2026-06-21 — Issue #4301 (SCIM update メソッド)が PR [ #4315 ] ( https://github.com/google/go-github/pull/4315 ) のマージにより解決済みとなったため、サマリー・優先順位・詳細を反映。
77> - 2026-06-21 — Issue #3220 (レート制限スリープ前コールバック)に対応PR [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) (作者: フォーク所有者)が提出されたため、「対応PRあり」へ移動。再着手候補から除外。
88> - 2026-06-22 — Issue #2113 (UploadAsset の HTTP/2 再試行失敗)に対応PR [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) (作者: フォーク所有者)を提出したため、「対応PRあり」へ移動。再着手候補から除外。これにより「今すぐ着手を推奨」枠は現在ゼロ。
9+ > - ** 2026-06-23 — 提出PRの最終結果を反映** :
10+ > - PR [ #4315 ] ( https://github.com/google/go-github/pull/4315 ) (#4301 )… ✅ ** マージ済み** (gmlewis, 2026-06-21, merge ` 8111735 ` )。
11+ > - PR [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) (#2113 )… ✅ ** マージ済み** (gmlewis, 2026-06-22, merge ` 216f315 ` )。
12+ > - PR [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) (#3220 )… ❌ ** クローズ(未マージ)** 。メンテナ gmlewis がレビュアー(stevehipwell / alexandear / Not-Dhananjay-Mishra)の推奨に従い、「この種の高度なユースケースは README が案内する外部ミドルウェア [ gofri/go-github-ratelimit] ( https://github.com/gofri/go-github-ratelimit ) に委ねる」として** コア取り込みを見送り** 。Issue #3220 もクローズ。
13+ > - 別途 Issue #3715 (projects v2 残りエンドポイント)の PR [ #4319 ] ( https://github.com/google/go-github/pull/4319 ) は ** OPEN(レビュー対応中)** 。本レポート対象外(#3715 は当初「対応PRあり」枠ではなかった)だが進捗として併記。
914>
1015> 本レポートは Open な Issue 37件・PR 6件を1件ずつ調査し、本文・全コメントの確認に加えて
1116> ` github/ ` 配下の実コードを実地確認した上で、根本原因・解決方針・難易度・対応区分をまとめたものです。
5459いずれもメンテナの方向性が固まっており、修正範囲が限定的で、現時点で他者の Open PR や
5560アサインと競合しないもの。go-github へのコントリビューションとして手戻りが少ない。
5661
57- > ** 2026-06-22 時点: 該当なし。** 当初の推奨3件(#4301 ・#3220 ・#2113 )はいずれも対応済み
58- > (#4301 はマージ、#3220 ・#2113 は対応PR提出済み)。詳細は「2.2 解決済み」「2.3 対応PRあり」を参照。
62+ > ** 2026-06-23 時点: 該当なし。** 当初の推奨3件はいずれも決着済み:
63+ > ** #4301 (PR [ #4315 ] ( https://github.com/google/go-github/pull/4315 ) )・#2113 (PR [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) )はマージ済み** 、
64+ > ** #3220 (PR [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) )はメンテナ判断でクローズ(gofri 推奨により見送り)** 。詳細は「2.2 解決済み」「2.3 対応PR」を参照。
5965> 次の着手候補は「2.4 メンテナ判断待ち」等から方針確定後に選定する。
6066
6167### 2.2 ✔️ 既に解決済み → クローズ提案
@@ -82,8 +88,8 @@ Issue に対応する Open PR が既にある。新規実装ではなく、PR
8288| [ #4129 ] ( https://github.com/google/go-github/issues/4129 ) | https://github.com/google/go-github/pull/4130 | [ #4130 ] ( https://github.com/google/go-github/pull/4130 ) : 変更要求あり |
8389| [ #4213 ] ( https://github.com/google/go-github/issues/4213 ) | #4225 | [ #4225 ] ( https://github.com/google/go-github/pull/4225 ) : 承認済み |
8490| [ #4237 ] ( https://github.com/google/go-github/issues/4237 ) | https://github.com/google/go-github/pull/4246 | (PR本文参照) |
85- | [ #3220 ] ( https://github.com/google/go-github/issues/3220 ) | https://github.com/google/go-github/pull/4316 | [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) : 提出済み(作者: 当フォーク所有者)。レビュー待ち 。 |
86- | [ #2113 ] ( https://github.com/google/go-github/issues/2113 ) | https://github.com/google/go-github/pull/4318 | [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) : 提出済み(作者: 当フォーク所有者)。CLA pass・レビュー待ち 。 |
91+ | [ #3220 ] ( https://github.com/google/go-github/issues/3220 ) | https://github.com/google/go-github/pull/4316 | [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) : ❌ ** クローズ(未マージ・2026-06-22) ** 。メンテナが外部ミドルウェア gofri/go-github-ratelimit 推奨で見送り。Issue # 3220 もクローズ 。 |
92+ | [ #2113 ] ( https://github.com/google/go-github/issues/2113 ) | https://github.com/google/go-github/pull/4318 | [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) : ✅ ** マージ済み(gmlewis, 2026-06-22, merge ` 216f315 ` ) ** 。Issue # 2113 クローズ済み 。 |
8793
8894### 2.4 🤔 メンテナの方針判断が必要
8995
@@ -226,9 +232,9 @@ Issue に対応する Open PR が既にある。新規実装ではなく、PR
226232
227233### Issue [ #2113 ] ( https://github.com/google/go-github/issues/2113 ) — http2 failure in UploadAsset
228234
229- 分類: ** バグ** / 難易度: ** 中** / 対応区分: ** 🔀 対応PRあり (PR [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) 提出済み )**
235+ 分類: ** バグ** / 難易度: ** 中** / 対応区分: ** ✅ 解決済み (PR [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) マージ済み )**
230236
231- > ** 更新 (2026-06-22 )** : 当フォーク所有者が PR [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) (` fix: Set GetBody on uploads for HTTP/2 retry ` )を提出済み。 ** 再着手候補からは外れる ** ため、新規実装ではなく当該 PR のレビュー対応/追跡が次の一手 。
237+ > ** 更新 (2026-06-23 )** : PR [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) (` fix: Set GetBody on uploads for HTTP/2 retry ` )が ** 2026-06-22 にマージ済み ** (gmlewis, merge ` 216f315 ` )。Issue # 2113 はクローズ済み。レビューでは Seek 失敗分岐(github.go:956)のカバレッジを求められ、 ` openTestFile ` で開いたファイルを閉じてから渡すテストを追加して対応した 。
232238> なお実装はレビュー指摘を受けて下記「解決方針」から調整した。当初案の「元 reader を ` Seek ` で巻き戻して再ラップ」では ` GetBody() ` が元の ` req.Body ` の読み取り位置を破壊し ` http.Request.GetBody ` の契約(独立したコピーを返す)に反するため、** ` io.Seeker ` (開始オフセット取得)かつ ` io.ReaderAt ` の両方を実装する場合のみ** ` io.NewSectionReader(readerAt, offset, size) ` で独立した読み取り位置を持つ body を返す方式に変更(対象: ` *os.File ` / ` *bytes.Reader ` / ` *strings.Reader ` )。` io.Seeker ` だけの reader には ` GetBody ` を設定しない。テストは独立性(GetBody 読み取り後も ` req.Body ` がフル内容を返すこと)と、ReaderAt 非対応時に ` GetBody ` が nil であることを検証。` go test -race ./github/ ` ・` go vet ` ・golangci-lint(v2.12.2) いずれも pass、` cla/google ` も pass 済み。以下は調査当時の記録。
233239
234240** 概要** : アセットを uploads.github.com にアップロードする際、HTTP/2 トランスポートが REFUSED_STREAM / PROTOCOL_ERROR / GOAWAY やアイドル接続のクローズ競合でストリームを再試行しようとすると、` http2: Transport: cannot retry err ... after Request.Body was written; define Request.GetBody to avoid this error ` が発生し、アップロードが失敗する。ghr・goreleaser・go-release-action など多数の下流ツールで再現し、長期間 WaitingForInfo のまま放置されている。当初は同名アセットの 422 already_exists や一時的ネットワークエラーと混同されたが、ysmilda の最新コメント(2024-09)では同名衝突が無い新規リリースでも毎回 GetBody エラーが出ると報告されており、別個の本質的バグである。
@@ -457,9 +463,9 @@ Issue に対応する Open PR が既にある。新規実装ではなく、PR
457463
458464### Issue [ #3220 ] ( https://github.com/google/go-github/issues/3220 ) — A callback to go with SleepUntilPrimaryRateLimitResetWhenRateLimited?
459465
460- 分類: ** 機能改善** / 難易度: ** 易** / 対応区分: ** 🔀 対応PRあり (PR [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) 提出済み )**
466+ 分類: ** 機能改善** / 難易度: ** 易** / 対応区分: ** 🚫 見送り (PR [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) クローズ・未マージ )**
461467
462- > ** 更新 (2026-06-21 )** : 本 Issue には当フォーク所有者が PR [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) を提出済み。 ** 再着手候補からは外れる ** ため、新規実装ではなく当該 PR のレビュー対応/追跡が次の一手 。以下は調査当時の記録。
468+ > ** 更新 (2026-06-23 )** : PR [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) ( ` feat: Add WithRateLimitSleepCallback option ` )は ** 2026-06-22 にクローズ(未マージ) ** 。メンテナ gmlewis がレビュアー(stevehipwell / alexandear / Not-Dhananjay-Mishra)の推奨に従い、「この種の高度なレート制限ハンドリングは README が案内する外部ミドルウェア [ gofri/go-github-ratelimit ] ( https://github.com/gofri/go-github-ratelimit ) に委ねるべき」として ** コア取り込みを見送り ** 。Issue # 3220 もクローズ。実装・CLA・CI 自体は問題なく、スコープ判断による見送りだった 。以下は調査当時の記録。
463469
464470** 概要** : go-github は context キー SleepUntilPrimaryRateLimitResetWhenRateLimited を設定すると、primary rate limit に達した際にリセットまで自動でスリープ(ブロック)する機能を持つ。しかしスリープが発生したことが外部に一切通知されないため、利用側プログラムはログ出力やユーザー通知ができず「フリーズしたように見える」。Issue 起票者はスリープ直前に呼び出されるコールバック機構の追加を要望している。
465471
@@ -579,6 +585,8 @@ Issue に対応する Open PR が既にある。新規実装ではなく、PR
579585
580586分類: ** 新API対応** / 難易度: ** 中** / 対応区分: ** ✅ コードで対応可能** / ** good first issue**
581587
588+ > ** 更新 (2026-06-23)** : 残りエンドポイント実装の PR [ #4319 ] ( https://github.com/google/go-github/pull/4319 ) (` feat: Add remaining Projects v2 endpoints ` , 作者: 当フォーク所有者)が ** OPEN(レビュー対応中)** 。required リクエストフィールドの値型化、テストの ` cmp.Diff ` 化、` ProjectV2ViewSortBy ` のカバレッジ等、複数のレビュー指摘に対応済み。Issue #3715 は projects v2 全体のトラッキング Issue のため、本PRマージ後も他エンドポイントで継続の可能性。以下は調査当時の記録。
589+
582590** 概要** : 2025-09-11にGitHubがProjects v2のREST APIを正式公開したことを受け、go-githubでの対応を求めるトラッキングIssue。本文はアナウンス記事へのリンクのみで、具体的なエンドポイント指定はない。メンテナ(gmlewis)は「新規コントリビューター向けの良いPR」とコメントし、2025-09-26に@zyfy29 へアサイン済み。「projects v2全体」を指す広いスコープのIssueで、複数PRに分割して段階的に実装されている。
583591
584592** 根本原因** : 該当なし(バグではなく新API対応要望)。現状をコードで検証した結果、github/projects.go に ProjectsService として既に18エンドポイントが実装済み: org/userのproject一覧・取得、fields一覧・取得(org/user)、itemsのlist/add/get/update/delete(org/user)。これらは #3793 , #3809 , #3888 等のマージ済みPRで段階導入された(sl logで確認)。一方、openapi_operations.yaml(L3762-3839, L8439-8456, L8689-8754)に存在する以下のProjects v2エンドポイントは github/ 配下に未実装であることをGrepで確認した: (1) POST .../drafts(ドラフトIssue作成、org=L3774/user=L8439)、(2) POST .../fields(フィールド追加、org=L3786/user=L8707)、(3) POST .../views(ビュー作成、org=L3828/user=L8451)、(4) GET .../views/{view_number}/items(ビュー内アイテム一覧、org=L3834/user=L8749)。projects.goにviews/drafts/POST fieldsを示す//meta: operation は存在しない。
@@ -843,8 +851,8 @@ Issue に対応する Open PR が既にある。新規実装ではなく、PR
843851| [ #4204 ] ( https://github.com/google/go-github/pull/4204 ) | @nghiack7 | CLA署名待ち | failing | #3488 | fix: Handle array-typed org/org_id in Audi |
844852| [ #4225 ] ( https://github.com/google/go-github/pull/4225 ) | @danyalahmed1995 | 承認済み | passing | #4213 | feat: Add agent tasks API support |
845853| [ #4299 ] ( https://github.com/google/go-github/pull/4299 ) | @jlaportebot | CLA署名待ち | failing | #4023 | docs: Extend CONTRIBUTING.md with code gui |
846- | [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) | 当フォーク所有者 | 提出済み・レビュー待ち | 要確認 | #3220 | レート制限スリープ前のコールバック追加 |
847- | [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) | 当フォーク所有者 | 提出済み・レビュー待ち | cla/google・check-changes pass | #2113 | fix: Set GetBody on uploads for HTTP/2 retry |
854+ | [ #4316 ] ( https://github.com/google/go-github/pull/4316 ) | 当フォーク所有者 | ❌ クローズ(未マージ・見送り, 2026-06-22) | — | #3220 | レート制限スリープ前のコールバック追加 |
855+ | [ #4318 ] ( https://github.com/google/go-github/pull/4318 ) | 当フォーク所有者 | ✅ マージ済み(gmlewis, 2026-06-22) | pass | #2113 | fix: Set GetBody on uploads for HTTP/2 retry |
848856
849857### PR [ #3680 ] ( https://github.com/google/go-github/pull/3680 ) — refactor!: Refactor GistsService to use value parameters
850858
0 commit comments