KEMBAR78
【BS7】GitHubをフル活用した開発 | PDF
GitHubをフル活用した

開発
GitHub
Senior Solutions Engineer
田中 裕一 (@yuichielectric)
GitHub
Focus on providing a developer
experience that enables them
to do their best work.
開発者が最高の仕事ができる

環境を提供
アイデアからユーザーへの提供まで

完全に統合されたプラットフォーム
Issues/Projectsによるプロジェクト管理
Issues/Projects
● テーブルビュー

● タスクをissueに変換

● イテレーション属性

● カスタムフィールド

● Public/Private projects

近日公開予定:
● Insights

● Workflows
Codespaces上でのコーディング
{

"dockerComposeFile": [

"docker-compose.yml"

],

"service": "dev",

"forwardPorts": [

8080

],

"extensions": [

"ms-azuretools.vscode-docker",

"redhat.java",

"vscjava.vscode-maven",

"vscjava.vscode-java-debug",

"vscjava.vscode-java-dependency",

"vscjava.vscode-java-test",

"dgileadi.java-decompiler",

"redhat.vscode-xml",

"redhat.vscode-yaml"

],

"settings": {

"terminal.integrated.shell.linux": "/bin/bash",

"java.project.importOnFirstTimeStartup": "automatic",

"java.configuration.updateBuildConfiguration": "automatic",

"java.server.launchMode": "Standard",

"java.test.message.hintForSetingDefaultConfig": false,

"maven.pomfile.autoUpdateEffectivePOM": true,

"telemetry.enableTelemetry": false,

"extensions.ignoreRecommendations": true

},

"postCreateCommand": "mvn compile"

}
コンテナの指定
フォーワードするポート
予めインストールしておく

Visual Studio Code拡張
環境設定
環境作成後スクリプト
GitHubでのCodespacesの利用
半日 → 10秒
https://github.blog/jp/2021-08-30-githubs-engineering-team-moved-codespaces/
• GitHub社内のスタンダード開発環境

• 600人以上のGitHubエンジニアがGitHub
を開発するためにCodespacesを利用
Codespaces
● より簡単に環境を指定可能に

● プリビルド(プライベートベータ)

● GitHub CLIサポート

● REST API(ベータ)

● ポートフォワードのアクセス制御

● GitHub Container Registryへのアクセス
Copilotとのペアプログラミング
Copilot
エディタ上でコメントやコードの断片を

記述すると、そこからコードをサジェスト

● Neovimサポート

● Jetbrains IDE(IntelliJ IDEA, PyCharm)

サポート

● Javaでの複数行サジェスト
マージキューによる迅速なマージ
✔
✔ ✔
✔
main
feature1
✔
✔ ✔
✔
main
✔
✔
✔ ✔
✔
main
✔
✔
feature1
feature2
✔
✔ ✔
✔ ✔
✔
main
✖
✔
✔ ✔
✔ ✔
✔
main
✖
✔
✔ ✔
✔
main
✔
✔
mainに新しいコミットが
あるのでマージできない
feature2
✔
✔ ✔
✔
main
✔
✔
feature1
✖
✔
✔ ✔
✔
main
✔
✔
feature1
✖ ✔
✔
✔ ✔
✔
main
✔
✔
✖ ✔
✔
✔
✔ ✔
✔
main
✔
✔
✖ ✔
✔
✔
✔
✔
✔
✔ ✔
✔
main
✔
✔
✖ ✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔ ✔
✔ ✔
✔
✖
マージキュー用ブランチ

ここでビルドに成功したらmain
がfast forwardされる。

失敗したら取り除かれる。
main
✔
✔ ✔
✔
main
✔
✔
? ? ?
✔
✔ ✔
✔
main
✔
✔
? ? ?
✔
✔
✔ ✔
✔
main
✔
✔
? ? ?
✔ ✖
✔
✔ ✔
✔
main
✔
✔
? ?
✔
失敗した旨をフィードバック
✔
✔ ✔
✔
main
✔
✔
? ? ?
ほかのフィーチャーブランチを気に
することなくマージキューに登録で
きる。

つまり、開発者は次のタスクに移る
ことができる。
ActionsによるCI/CD
Actions
再利用可能なワークフロー
これまでのaction単位での再利用に加えて

ワークフロー全体を再利用することが可能に
セルフホストランナーをオートスケール

する仕組みを作るためのwebhook
OpenID Connectサポート
クラウドプロバイダにデプロイする際に
- 人手でのシークレットの管理が不要
- 毎回異なるシークレットが自動で発行され、

各シークレットは一度のワークフローの

実行でのみ利用可能
【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発

【BS7】GitHubをフル活用した開発