GitHub Connectってなに?

Takafumi Ikeda
Momentum Flow Blog
Published in
Dec 28, 2020

GitHubを使っている方は多いと思いますが、GitHub EnterpriseにGitHub Connectという機能があることを知っている人はあんまりいないんじゃないでしょうか。

GitHub Connectというのは、Enterpriseプランで利用可能になる機能です。

GitHubのEnterpriseプランには、オンプレ版のGitHub Enterprise Server(GHES)と、クラウド版であるGitHub Enterprise Cloud(GHEC)の2形態があるのですが、この2つを接続し、統合して使えるのがGitHub Connectという機能です。

接続という言葉の通り、GHESとGHECをネットワーク的に接続する必要があるため、GHESから、github.com, api.github.comの両ドメインにネットワーク的にリーチ出来る状態にする必要があります。

GitHub Connectでできること

GHESとGHECを接続すると、GitHub Connect特有の機能を使えるようになります。

  • Unified Search: GHESとGHECを横断して検索できるようになる
  • Unified Contribution Graph: 草が統合できる
  • Dependabot Alert: セキュリティ脆弱性アラートがGHESに対しても飛んでくるようになる
  • License Sync: 複数あるGHESのライセンスとGHECのライセンスを同期してトータルで何シート消費しているか管理できる
GitHub Connectの設定画面イメージ

Unified Search

GHESで検索をした際に、GHESに加えて、GHECの該当するOrganizationのコンテンツと、GitHub.comのPublicコンテンツの検索結果が参照できるようになる機能です。

GHESから画面を移動することなくGHECもOSSもすべて一括で検索できるのが便利な機能です。

Unified Contribution Graph

Contribution Graphとは、GitHub.comのユーザープロファイルにある緑のタイル状のグラフのことです。(俗に言う”草”)

通常このグラフはGitHub.comのPublicリポジトリへの貢献のみで、設定をしてもGitHub.com上のPrivate貢献が追加されるのみなのですが、GitHub Connectを通じて設定することで、さらにGHES上の貢献もグラフに反映させることができるようになります。

Dependabot Alert

以前はSecurity Alertと言っていた機能です。各リポジトリのマニフェスト(package.jsonやpom.xml等々)を読み取り、依存関係を推移的に検査し、直接間接に存在している脆弱性を洗い出してアラートとして報告してくれる機能です。

元々GitHub.comを使っている人なら、Dependabotから脆弱性アラートがメール等で毎日または毎週飛んできているのは知っていると思います。

GitHub Connectをすることで、この機能がオンプレ版のGHESに対しても有効になります。これは非常に便利な機能で、社内のプロジェクト内の脆弱性対策になります。

仕組みとしては、GitHub.com上に格納されている脆弱性情報をGHESに同期(1時間に1回、または手動)し、GHES内を検査してアラートしてくれるような動きになります。オンプレにあるコードの情報が社外に漏れるわけではないのも安心です。

この機能についてはまた後日別のブログポストとして解説したいと思います。

License Sync

GitHub Connectを通じて、GHECのEnterprise Account以下全OrgならびにGHESのライセンス使用状況を同期して把握できる機能です。仕様は明記されていませんが、基本的にはメールアドレスで名寄せしているような動きをしています。

接続手順のイメージ

GitHub Enterpriseのライセンスを持っていて、GHESのSite Admin権限と、GHECのOrg Admin権限、またはEnterprise Account権限を持っていれば、Connectを試すことが出来ます。尚、Enterprise Accountとは何か、については後日別のブログポストにします。簡単に言えば、複数のOrganizationをまとめて管理できる機能のことです。

GHESのユーザープロファイルから”Enterprise Settings”に遷移し、サイドバーから”Settings”を選択、GitHub Connectを選びます。すると下図のような緑のボタンが現れるので、これを押します。

ボタンを押すとGitHub.comに遷移し当該ブラウザのセッションに紐付くOrganizationおよびEnterprise Accountの一覧が出てきます。ここから、Connectする対象のOrganizationまたはEnterprise Accountを選択します。

まだGHECのOrganizationを持っていなかったり、Enterprise Accountを持っていなかったりした場合、下図のような画面が出てきます。

例えば弊社の場合、この時点ではGitHub.comの方はまだEnterpriseプランではなかったため、下記のようにアップグレードを促すボタンが出てきています。このUpgradeボタンを押すと、下図のような決済画面が出てきます。

この場で決済してEnterpriseプランに上げてもいいですが、あまりおすすめはしません。Enterpriseプランの場合、面倒でも営業にコンタクトして購入した方が、様々な点でお得です。

また、EnterpriseプランのOrganizationが複数あって、どれに接続すべきかわからない、というケースもあるかと思います。Entepriseプランについてどうするのが最適なのかお悩みの場合は弊社モメンタムフロー合同会社にご相談いただくことも可能ですのでご検討ください。

なお、Enterprise Accountを持っていた場合には下記のように、”Connect"というボタンが出てきます。これを押すことで、Connectは完了します。

Connectが完了すると、まずGHES側の画面で下記のように、接続先のGHECのOrganizationまたはEnterprise Accountが表示されるようになります。

entepriseと表記されているのでEnterprise Accountと接続しているとわかる

また、GitHub.com側のEnterprise Account画面を見ると、接続しているGHESの一覧を確認できます。

これでConnectの設定が出来ました。

これでGHESとGHECを横断検索したり、草の統合をしたり、脆弱性アラートをGHESに対しても有効にしたり出来るようになります。

さて今回はGitHub Connectの概要と設定手順について紹介しました。

次回はGitHub Connectの目玉である脆弱性アラートについてと、記事中にも出てきたEnterprise Accountの解説をしたいと思います。

補足:Enterpriseにおけるライセンスの考え方

GHES側の画面では接続先のGHECが1つしか出てこないのに対して、GHEC側では接続先のGHESのインスタンスが一覧で見れるようになっていることからもわかるとおり、GHEC:GHES=1:nの関係になっています。

つまりEnterpriseプランでは、GHESを複数インスタンス持つことが実は可能なのです。また、GHECにおいては複数Organizationをまとめて1つのEnterprise Accountとしてまとめられることも考慮に入れると、実はEnterpriseプランでは複数Org, 複数インスタンスをまとめて利用可能なのです。

ご相談承ります

弊社モメンタムフローはGitHubコンサルティング/DevOpsコンサルティングを提供しています。

GitHub Enterpriseに関するあらゆるご相談を承っています

お気軽にお問い合わせください!

info@momentum-flow.com

https://twitter.com/MomentumFlow

--

--

Takafumi Ikeda
Momentum Flow Blog

ソフトウェアエンジニア。GitHub Enterpriseに詳しい。英語とソフトウェアとビジネス的なにかの間で生きています。