GitHub

ギットハブ

GitHub Enterpriseが選ばれる理由

GitHub Enterpriseは開発コラボレーションのハブとなります。GitHub Enterpriseをご導入いただくことにより、GitHub Flowというシンプルな開発フローを利用しながら、より迅速で透明性の高いコラボレーションを促進し、より良いソフトウェアの開発のご支援をいたします。

  1. GitHub Enterpriseが誕生するまでの歴史
  2. GitHub Flowとは
  3. 主要機能
  4. GitHub Enterprise独自のセキュリティ
  5. 豊富なインテグレーション

GitHub Enterpriseが誕生するまでの歴史

2005年 並行開発を容易に実現することを目的として、従来の集中型バージョン管理システムに代わる、散型のバージョン管理システムGitが開発されました。
2008年 GitHub.comがスタート。開発者がコードを共有したり、互いに協力しあったりできる開発者むけSNSとして広がる。
2010年 企業や、OSSプロジェクトグループなどの団体が利用するケースが増えてくる。
2012年 GitHub.comが持つパワーを、利用者が自分が所属する企業に取り入れたいという要望が増え、オンプレミスで利用できるGitHub Enterpriseをリリースしました。

GitHub Flow

GitHub Flowとは?

GitHub Flow

GitHub Flowとは2008年に発明されたプルリクエストを用いた効果的で素早い開発フローと言われています。

開発者が「こんな機能を追加したい」と思った際に、ボタン一つで簡単にブランチを切れ、その切ったブランチで自身が立てた仮説をメインブランチとは非同期のローカルで検証することができます。これにより他の開発者との作業もかぶらず、安全な並行開発が可能となります。

次に切ったブランチで作成した内容をプルリクエスト機能を使って、メインブランチに対して提案します。「この内容はどうでしょうか?」という提案や議論をGitHub Enterprise上で実施し、メインブラインチにマージ&デプロイするかどうか判断まで実施できます。このGitHub Flowにより、素早く色々な開発を試せる環境を提供します。

このような元々はオープンソースプロジェクトで実施されていたやり方が、現在エンタープライズ企業内でも活用され始めています。

  • 利点①
    リスクを取ることなく、あらゆる実験が可能で、アジャイル的に様々なことを試せます。
  • 利点②
    チーム開発に必要なコミュニケーションを非同期に行えます。また議論や過程や結論がすべてGitHub Enterprise上に記録されるため、進捗管理が一カ所で行えます。

主要機能

よりスマートにバージョン管理

よりスマートにバージョン管理

GitHub Enterpriseは、分散バージョン管理システムであるGitをベースに作られています。
大規模プロジェクトにおける多くの開発ワークフローもサポートしています。
Gitでは、ほぼすべての動作はローカルで実行されるため、集中管理型のシステムと比較してより高速に稼働します。

コードレビューのコラボレーション

コードレビューのコラボレーション

GitHub Enterpriseでは、コードレビューのプロセスはワークフローとして取り扱うことができます。
Pull Request機能を活用することで、開発者間でインタラクティブに開発プロセスを進めることができるようになります。
一行のコードレベルから、開発プロジェクト全体についての意見交換などの履歴を、タイムライン形式のインターフェースに表示することが可能です。

インテリジェントな課題管理 インテリジェントな課題管理

インテリジェントな課題管理

GitHubの課題管理機能を使うことで、開発チームはバグ対応に追われることなく、より重要な開発にフォーカスすることが可能になります。
GitHub Issueをつかうことで、シンプルな課題管理を実現し、必要に応じてより詳細な情報を表示することができます。
LabelsやMilestoneを用いて進捗の表示を行ったり、Assignmentsを用いて課題を割り当て共同作業を行うことができます。

強力なサーチ機能

強力なサーチ機能

GitHubにコードを登録するとすぐに、GitHubに組み込まれているElastic Searchがコードをインデックス化します。
ディベロッパーは社内にどんなコードが存在しているか、すぐに見つけ出すことが可能です。
コードの再利用で時間とコストを削減し、またそのコードをよりよいものにしていくことで有益なコード資産にしていくことができます。

ソーシャルコーディング

ソーシャルコーディング

他のディベロッパーとのコラボレーションはこれまでになく容易に実施することが可能です。
場所を問わず、個人やチームに対して @mention(メンション機能)を使いコミュニケーションを行うことが可能です。

強力なマークダウン記述

強力なマークダウン記述

数多くの操作ボタンを並べるのではなく、GitHub Flavored マークダウンを使いテキストのフォーマットを指定することが可能です。
オートコンプリート機能を活用し、ディベロッパーやチームにメンションを行ったり、Issueへのリンクを作成し共有したり、Emojiを使って気分を伝えることができるようになります。

豊富な分析ダッシュボード

豊富な分析ダッシュボード

Activity Dashboardは、GitHub Enterprise上のあらゆるプロジェクトの状態を直感的に把握できるよう、さまざまなグラフや情報を表示することができます。
Pulseでは開発プロジェクトのスナップショットを表示することができます。
リソース利用状況のモニタリング(CPU、メモリ、Disk I/O等)

GitHubと統合された公開ツール

GitHubと統合された公開ツール

GitHubのWiki機能を活用することで、コードライブラリや、チーム内での有益な情報、ベストプラクティスに加えて、さまざまなドキュメントを簡単に共有することが可能です。
また、GitHub PageをつかうことでGitHub Enterprise上にある情報を用いて、簡単にWebページとして公開することも可能です。

GitHubのデスクトップクライアント GitHubのデスクトップクライアント

GitHubのデスクトップクライアント

WindowsとMacに対応したネイティブクライアントを用いてGitHubを利用することが可能です。リポジトリの複製や、ブランチの作成・結合、履歴の参照、コードのコミットや同期を快適に行うことができます。

GitHub Enterprise独自のセキュリティ

強力なユーザ認証機能 強力なユーザ認証機能

強力なユーザ認証機能

GitHub Enterpriseでは、システム環境に応じて認証メソッドを選択することが可能です。

  • External LDAP、SAML、CASを用いたActive Directoryなどとの連携
  • ユーザ名/パスワード認証(HTTP Cookiesを用いたセッション管理)
  • 二要素認証(標準TOTP互換のアプリケーションの利用が可能)
  • SSH (OSレベルのシステム管理と、GitHubプロトコルアクセス SSHは公開鍵認証にのみ対応)
  • APIを用いた外部サービス利用に向けた、OAuth とPersonal Access Tokens認証

アクセスログ監査

ユーザーアクセス、システム動作に関するGitHub Enterpriseは詳細なセキュリティに関連する監査ログを提供することが可能です。また、GitHubのシステム稼働やアクセスログを取得することも可能です。

暗号化通信

GitHub Enterpriseは社内ネットワーク上で動作することを前提にデザインされています。セキュアな通信を確保するためにSSLを通信を有効にした状態で稼働させることを推奨しています。HTTPS通信用として、2048bit以上の鍵長を持つ証明書に対応しています。
VMの管理やGitリポジトリへのアクセス用として、SSHがデフォルトで有効になっています。

VM セキュリティ

GitHub Enterpriseは、不要なサービスやアプリケーションを排除したUbuntu Linux上で動作します。
GitHub Enterpriseが動作するために必要なネットワークサービスだけが有効になっています。 (内部のシステムサービスは、データベースのように、ローカルループバックアドレスで待機するように構成されています)

アプリケーションセキュリティ

GitHubのセキュリティチームは、GitHub製品の脆弱性評価、侵入テスト、コードレビューにフルタイムで取り組んでいます。また四半期ごとに外部のセキュリティ調査会社からその時点でのセキュリティアセスメントを定期的に受けています。

豊富なインテグレーション

サードパーティ連携

サードパーティ連携

強力なAPIやサービスフックを用いて、GitHub Enterpriseのリポジトリと、数百以上存在する外部サービスや、社内のサービスとの連携が可能です。
課題管理、コードの自動ディプロイなど、開発プロセスにおけるさまざま局面を改善していくことが可能です。

詳しくはこちらhttps://github.com/integrationsをご覧ください。

お問い合わせ・資料請求

株式会社マクニカ  GitHub 担当

平日 9:00~17:00