Skip to content

Commit 5f075ee

Browse files
docs: Update triage report with PR outcomes
PR google#4315 (google#4301) and google#4318 (google#2113) were merged; PR google#4316 (google#3220) was closed unmerged after maintainers decided the rate-limit sleep callback belongs in the external gofri/go-github-ratelimit middleware. google#4319 (google#3715, projects v2) remains open and under review.
1 parent 8e985cd commit 5f075ee

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

docs/open-issue-pr-triage.md

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
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/` 配下の実コードを実地確認した上で、根本原因・解決方針・難易度・対応区分をまとめたものです。
@@ -54,8 +59,9 @@
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

Comments
 (0)