Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIと二人三脚で OSSにコントリビューションしてみた/I tried contributin...
Search
デロ
May 28, 2026
Programming
12
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIと二人三脚で OSSにコントリビューションしてみた/I tried contributing to OSS working hand-in-hand with AI
PHP勉強会@東京 #187 #phpstudy
https://phpstudy.connpass.com/event/391794/
デロ
May 28, 2026
More Decks by デロ
See All by デロ
Bref Cloudに入門する / Getting Started with Bref Cloud
dero1to
0
67
リリースされたばかりのLaravel Cloudを触ってみた / try-the-just-released-Laravel-cloud
dero1to
0
100
PHPを使ってFFmpegに入門してみる / Introduction to FFmpeg using PHP
dero1to
0
67
ISUCON、今年も参加してみた / ISUCON, I challenged it again this year.
dero1to
0
510
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
2
280
JetBrains Plugins
dero1to
0
110
私が技術イベントで 配信をする理由 / Why I live-stream technical events
dero1to
0
760
技術イベントをもっと低遅延でお届けする技術
dero1to
0
130
JetBrainsIDEに入門してみた
dero1to
0
76
Other Decks in Programming
See All in Programming
1B+ /day規模のログを管理する技術
broadleaf
0
130
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
160
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
1.1k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
8.7k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.7k
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
210
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.7k
継続モナドとリアクティブプログラミング
yukikurage
3
370
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
450
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
500
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
Ruling the World: When Life Gets Gamed
codingconduct
0
270
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
590
Done Done
chrislema
186
16k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
670
For a Future-Friendly Web
brad_frost
183
10k
WCS-LA-2024
lcolladotor
0
670
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Mind Mapping
helmedeiros
PRO
1
280
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Transcript
AIと⼆⼈三脚で OSSにコントリビューションしてみた PHP勉強会@東京 #187 デロ | @dero1to
@dero1to 所属 株式会社キュービック Webエンジニア 技術 Ruby、Rails、PHP、Laravel 趣味 ドライブ、ダーツ、アニメ、⾃宅鯖 カンファレンスのスタッフ、配信 デロ
運営 ・PHP勉強会@東京 ・PHPカンファレンス⼩⽥原・愛媛 2026 ・EMTEC
OSSに Contribution したことありますか?
⾃分は今回はじめて OSSに Contributionしました
LT(体験談)
今回、初めて⾃分がContributionしたOSS
PHPのじゃなくてごめんなさい!
今回、初めて⾃分がContributionしたOSS
なぜContributionしたのか
本業で困ったから
なぜ困ったのか 担当しているシステムで⾊々なライブラリのバージョンアップの対応をし ていたところ、Google広告のSDKを更新した際に認証が通らなくなった
困ったけどどうしよう • まずは Issuesを⾒に⾏った
困ったけどどうしよう • まずは Issuesを⾒に⾏った → 他の⼈で困っているといった様⼦は無い。。
困ったけどどうしよう • まずは Issuesを⾒に⾏った → 他の⼈で困っているといった様⼦は無い。。 → 急ぎではなかったので、⼀旦保留にした
困ったけどどうしよう • まずは Issuesを⾒に⾏った → 他の⼈で困っているといった様⼦は無い。。 → 急ぎではなかったので、⼀旦保留にした そろそろなんとかしないと⾏けなくなってきた
困ったな
AIの⼒を借りよう
ただし、AIの⼒は借りつつも 出来る限り⾃分が理解して出したい
AIと⼈間の⼆⼈三脚
• 原因を特定するためにどのバージョンから発⽣したかを調べる まずは調査フェーズ
• 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣ まずは調査フェーズ
• 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣ • v37.0.0~v38.0.0の間でどんな変更が合ったかをAIと共に調べる まずは調査フェーズ
まずは調査フェーズ • 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣ • v37.0.0~v38.0.0の間でどんな変更が合ったかをAIと共に調べる → MetadataInterceptorというのが追加され、
代わりに今までの認証情報の受け渡しの処理が削除されていた
まずは調査フェーズ • 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣ • v37.0.0~v38.0.0の間でどんな変更が合ったかをAIと共に調べる → MetadataInterceptorというのが追加され、
代わりに今までの認証情報の受け渡しの処理が削除されていた MetadataInterceptorって何者?
機能追加のPullRequestを⾒てみる メタデータヘッダーを Google API Clientで共通化するために導⼊されたものらしい
対応できるなら MetadataInterceptorの 流れに沿った⽅がよさそう
AIに⾊々調べてもらった
AIに⾊々調べてもらった google-ads-googleads gapic-common grpc <AIからの回答> gapic-common で gRPC を呼び出し をする際のオプションをgRPC側が破棄
してしまっている
AIに⾊々調べてもらった google-ads-googleads gapic-common grpc なるほど、 よく分からん <AIからの回答> gapic-common で gRPC
を呼び出し をする際のオプションをgRPC側が破棄 してしまっている
AIに⾊々調べてもらった google-ads-googleads gapic-common gRCP <AIからの回答> gapic-common で gRPC を呼び出し をする際のオプションをgRPC側が破棄
してしまっている gRPCにバグがありそう
gRPCのバグの情報がないか調べる
gRPCのバグの情報がないか調べる
gRPCのバグの情報がないか調べる コードの情報までは難しくて追えなかったが時系列を追いかけてみた
gRPCのバグの情報がないか調べる コードの情報までは難しくて追えなかったが時系列を追いかけてみた 数年前にgRPCで不具合が起票されていたが、流れて時間経過でクローズ されてしまった。その後Issuesの再Openの話が上がっていたものの結局 再Openされず、ちょうど⾃分が⾒に来る少し前に別の⼈が新たにIssues が作成されていた
ここで悩みます
何を悩んだのか • 結局原因のちゃんと理解したわけではない • gRPCの問題を直す技術⼒はない • 今回使いたいライブラリを使えている⼈がいそう
半分メンテナーに相談する 気持ちで出してみよう
Issuesを書く • どんなバグが起こっていそうか • 再現するためのコードとバージョンの情報 • エラーログ • 回避案
⽇本語では説明できるけど、 英語でちゃんと伝えられるのか
AIを使って英語化する 複数のAIモデルを使って、伝わるかを推敲 ⽇本語 -> 英語 -> ⽇本語にしたり、 ニュアンスの気になるところを直していく
いざ、Issues!
Issues出せた!😄
いや、、 せっかくなら もうちょいやってみよう
PullRequestを作る • MetadataInterceptorが⼊る前のコードを復元する • 恐らくgRPC側のバグが修正されれば治りそうなのでその旨を記録 • ちゃんとテストコードを書く
PullRequestも出せた!😄
😴
🌅
翌朝 メンテナーの⽅がApproval & Merge してくれていた!
数⽇後
無事にリリース ⼿元の環境にインストールして、動作確認 無事に新しいバージョンを利⽤できるように!
まとめ • ⾃分が困っている課題は⾃分が表現しないと伝わらない • AIを使いつつも⾃分なりに努⼒をしてみると結構楽しい • ⾃分が寝ている間にもOSSをメンテナンスしてくれている⼈がいる OSSを作っている⽅々 いつも本当にありがとうございます