Slide 1

Slide 1 text

地味だけど劇的に便利になる リポジトリ設定あれこれ (と、Codespaces布教) GitHub dockyardコミュニティ 竣工イベント! https://github-dockyard.connpass.com/event/289714/

Slide 2

Slide 2 text

岩永かづみ / Kazumi IWANAGA • GitHub公認トレーナー • ZEN Architects 所属 • Microsoft MVP for Azure • 得意な領域 • Infrastructure as Code • GitHub Actions による自動化 • 技術コミュニティ • Code Polaris / Hack Everything. • @dz_ • @dzeyelid • @dzeyelid • dzeyelid

Slide 3

Slide 3 text

そのGitHubリポジトリは 真の力を発揮しているか?

Slide 4

Slide 4 text

親しんできたリポジトリ機能、 実はめっちゃ更新されているんですよ

Slide 5

Slide 5 text

リポジトリの使い勝手をグレードアップするぞ • リポジトリのSettingsのGeneralを見直す • Branch protection rulesとRepository rulesets • Dependabotで依存関係の脆弱性スキャンを導入する • Secret scanningのpush protectionを知ってほしい*

Slide 6

Slide 6 text

リポジトリを越えたオススメ • GitHub CopilotとGitHub Copilot X • Codespacesの便利さを知ってもらいたい

Slide 7

Slide 7 text

まずは、 リポジトリSettingsのGeneralから👇

Slide 8

Slide 8 text

プルリクエストのマージをちょっと便利に プルリクエストのマージ方法を、制限することができる • 「マージ コミット」(git mergeで作られる)を許可する • プルリクエストに含まれるコミットを1コミットにまとめる • プルリクエストに含まれるコミットをrebaseでマージする

Slide 9

Slide 9 text

Squash mergingがおすすめ このとき設定されるコミットメッセージが、初期値 (Default message)だと「最初のコミットメッセージ」 が採用されて不便 Default to pull request titleを指定することで、プル リクエストのタイトルがコミットメッセージに採用される • Squash = 押しつぶす • プルリクエストのコミットを1コミットにまとめて、マージする

Slide 10

Slide 10 text

プルリクエストを最新に保ちやすくする プルリクエストのbase branch(マージ先)に更新が ある場合に、更新するためのUIが有効になる

Slide 11

Slide 11 text

プルリクエストでブランチ更新が促される

Slide 12

Slide 12 text

プルリクエストのマージで作業ブランチ削除 プルリクエストがマージされたら、 作業ブランチを自動的に削除する

Slide 13

Slide 13 text

Branch protection rulesと Repository rulesets👇

Slide 14

Slide 14 text

Branch protection rules

Slide 15

Slide 15 text

Branch protection rules • 指定したブランチに対し、保護ルールを設定できる • force pushを禁止する • ブランチの削除を禁止する • マージするには、必ずPull requestを要求する • Pull requestをマージするには、必ずApprovalを要求する、など • パブリックリポジトリ、またはGitHub Pro/Team/Enterprise Cloud契約下のプライベートリポジトリで利用できる • 参考: Check! GitHub Branch protection rulesの機能一覧

Slide 16

Slide 16 text

Repository rulesets

Slide 17

Slide 17 text

Repository rulesets • 突如登場し、7/24にGA🎉 • 参考: GitHub Repository Rules are now generally available - The GitHub Blog • パブリックリポジトリ、またはGitHub Pro/Team/Enterprise Cloud契約下のプライベートリポジトリで利用できる • Branch protection rulesの後継、より柔軟な制御ができる • Branch protection rulesとの最大の違いは、Organizationレベルで指定 できること👏 • 参考: Check! GitHub Repository rulesetsとは?

Slide 18

Slide 18 text

手軽だけど強力なセキュリティ対策👇

Slide 19

Slide 19 text

Dependabot

Slide 20

Slide 20 text

Dependabot • リポジトリの依存関係をスキャンし、脆弱性を検出してくれる • スキャンの対象はデフォルトブランチ • すべてのリポジトリで無料で利用できる🎉 種類 説明 Dependabot alerts 脆弱性が検出された場合に、通知する GitHub.comの「Security」タブで一覧、招待を確認できる Dependabot security updates Dependabot alertsによって検出された脆弱性の修正案について、プ ルリクエストを作成する Dependabot version updates 指定した対象のバージョンの更新について、プルリクエストを作成する Dependency review(※) デフォルトブランチにマージする前に検出したい場合に、GitHub ActionsのDependency reviewアクションを利用する ※GitHub Enterprise CloudのGitHub Advanced Securityライセンスが必要

Slide 21

Slide 21 text

Dependabotの有効化

Slide 22

Slide 22 text

Dependabot alertsの一覧

Slide 23

Slide 23 text

Dependabot alertsの詳細

Slide 24

Slide 24 text

Dependabot security updatesにより 発行されたプルリクエスト

Slide 25

Slide 25 text

Dependabot version updatesにより 発行されたプルリクエスト

Slide 26

Slide 26 text

Dependabot version updatesの設定 .github/dependabot.ymlに設定を書く

Slide 27

Slide 27 text

Secret scanningの push protection

Slide 28

Slide 28 text

Secret scanning • リポジトリのすべてのブランチ上の Git 履歴全体をスキャンし、シーク レットが検出されるとそのシークレットを提供するプロバイダへ通知す る • 通知を受けたプロバイダは対策を行う(無効化、利用者への通知など) • パブリックリポジトリ、またはGitHub Enterprise CloudのGitHub Advanced Security(GHAS)ライセンスが適用されているプライ ベート/internalリポジトリで利用できる • リポジトリにプッシュする前に検出したい場合は、Push protectionを 利用する

Slide 29

Slide 29 text

Secret scanningの有効化

Slide 30

Slide 30 text

Secret scanningのPush protection • Gitでプッシュするとき、コミット内容にシークレットが含まれていたら 弾いてくれる🚨 • リポジトリにプッシュされる前に防ぐことができる! • 参考: 【GitHub】シークレット スキャンのプッシュ保護でシークレット の流出を固く防ぐ!

Slide 31

Slide 31 text

GitHub CopilotとGitHub Copilot X 🧑‍✈️

Slide 32

Slide 32 text

GitHub CopilotとGitHub Copilot X • GitHub Copilotは、AIによるコード補完 • GitHub Copilot Xは、次に予定されているAIによる支援機能群 機能 説明 GitHub Copilot(現行) コード補完 GitHub Copilot X GitHub Copilot Chat チャット形式のAIによる支援 (OrganizationでPublic beta公開) GitHub Copilot X GitHub Copilot for Docs ドキュメントにフォーカスしたAIによる支援 GitHub Copilot X GitHub Copilot for Pull Requests プルリクエストにフォーカスしたAIによる支援 GitHub Copilot X GitHub Copilot for CLI CLIの利用をAIにより支援

Slide 33

Slide 33 text

Codespacesの便利さを知ってもらいたい 🔮

Slide 34

Slide 34 text

GitHub Codespacesのおすすめポイント • コンテナベースのリモート環境 • Dev containerでカスタマイズ • VS Codeの拡張機能のインストールを指定できる • Pay as you go(稼働時間+ボリュームのストレージ利用量) • 無料枠あり(60h/core、1インスタンスを業後や週末に使うくらいなら十分) • あたかもローカルかのようにlocalhostに接続できる(Port forwarding) • イメージを事前にビルドしておくこともできる(prebuild)

Slide 35

Slide 35 text

Thank you so much🍩.