GitHub Enterprise vs GitLab

GitLab compared to other tools

GitHubを使用するとリポジトリのホスティング、コードレビュー、プロジェクト管理、ソフトウェアのビルドが可能です。GitLabのCI/CDは完全に統合されていますが、GitHubのCI/CDは外部ツールと連携させる必要があります。同様に、GitLabはアプリケーションのパフォーマンスやサーバーのモニタリング機能も提供します。GitHubのセキュリティ対策には、SSL・SSH・httpsの利用やログイン時の二要素認証が含まれます。GitLabは同様の機能に加えて、アプリケーションの静的・動的セキュリティテストとコンテナスキャンが含まれます。GitHubはパブリックリポジトリと学生ユーザーによる利用の場合は無料で利用できますが、一般ユーザーによるプライベートリポジトリの利用は有料プランのみとなります。現在、GitHubはより巨大なプロジェクトでもスケールします。

FEATURES

インナーソース

GitLabの内部プロジェクトにより、内部リポジトリのインナーソースが促進されます。

インナーソースの詳細

グループマイルストーン

グループレベルのマイルストーンを使用して、複数のプロジェクトを横断的に進捗管理できます。複数のプロジェクトを横断的に、現在作業中の課題をまとめて表示することができます。

グループマイルストーンの詳細

バーンダウンチャート

GitLabではマイルストーンのバーンダウンチャートを表示できます。これはスプリントやソフトウェアの新バージョンの作業の進捗管理に役立ちます。

バーンダウンチャートのドキュメントを表示

課題のウェイト

GitLabでは課題のウェイトを設定して、アジャイルのプラクティスに従って課題を管理できます。

課題のウェイトのドキュメントを表示

関連した課題

関連した課題を明示的に紐付けることができます。

関連した課題の詳細

課題の複数担当者

一度に複数の担当者を課題に設定できます。

課題の複数担当者のドキュメントを表示

Wiki によるプロジェクトのドキュメント

それぞれのプロジェクトのドキュメントを管理するためにWikiが使用できます。。すべてのWikiは独立したGitリポジトリとして利用できます

GitLabのWikiの詳細

サイクル分析

GitLabは計画からモニタリングまでに要した時間を計測するためのダッシュボードを提供します。GitLabには、アイディアを本番環境にデプロイするまでに必要なツールのすべてが組み込まれているので、このようなデータの提供が可能です。

サイクル分析の詳細

クイックアクション

GitLabでは、スラッシュコマンドを使用してコメント欄から課題やマージリクエストのメタデータ(担当者やラベルなど)を更新することができます。

クイックアクションに関するドキュメント

画像に関する議論

コミット画面やマージリクエストの差分画面で、画像の特定の位置を指定して、画像に関する議論をコメントできます。1つの画像に対して複数の議論を作成できます。

画像に関する議論

議論をロック

不正使用、スパム、非生産的な議論を防止するため、管理者以上の権限を持つユーザーは議論の継続をロックすることができます。

議論をロック

毎月、新機能を追加

毎月22日に、新機能の追加や多くの改善が適用されたGitLabの新しいバージョンがリリースされます。

1つの一体化したツール

一般的に多くのツールは、ソフトウェアの開発ライフサイクルを完成するために、複数のサードパーティツールを必要とします。一方Gitlabは、開発ライフサイクル全体をカバーできる完全に一体化したソリューションです。

サーバへのアクセス

ユーザにはサーバやインスタンスへの完全な制御権があります。したがって、侵入検知やパフォーマンスモニタリングなどの外部ソフトウェアのインストールや、サーバ自身のログファイルの閲覧も可能です。GitLabの進んだログシステムは、すべてを記録し、豊富なログファイル情報への容易なアクセスを提供しています。

ログシステムの詳細

ベアメタルでの実行が可能

GitLabは、ディスクI/Oや、CPU、RAMなどを制御できるベアメタルサーバでも実行できます。問題なく水平的な拡張が可能です。

GitLabのインストール方法を表示

高可用性セットアップ

ミッションクリティカルなリリースでは、ダウンタイムを許容できません。アプリサーバやデータベースなどを複数のインスタンスに分けることで、バックアップなどのメンテンス中であっても、読み取り専用モードで作業を継続できます。

高可用性の詳細

インスタンスで独自のソフトウェアの実行が可能

GitLabを実行しているインスタンス上で、独自のソフトウェアを自由に実行することができます。独自の侵入検知システムを実行したい?まったく問題ありません。

GitLabのインストール方法を表示

構成管理ソフトウェアの選択肢

素早くシンプルな実装のために構成管理ソフトウェアは、Puppet、Chef、 Ansibleから選択できます。

GitLabのインストール方法を表示

メンテナンスとモニタリングには標準のUnixツールの使用が可能

メンテナンスとモニタリングには、使い慣れているツールをお使いください。標準ツールでもご自分のツールでもお好きなものご使用いただけます。GitLabによる制限はありません。

GitLabのインストール方法を表示

パッケージのインストール

GitLabを簡単にインストールできるパッケージのダウンロードは、GitLabの公式リポジトリまたは手動によるダウンロードをご利用ください。メジャーなLinuxディストリビューションをすべてサポートしています。

GitLabのインストール方法を表示

IPv6対応

GitLabをセルフホストする場合、IPv6への対応は利用しているプロバイダーに依存します。現在、GitLab.comは利用しているプロバイダーの制限によりIPv6には対応していません。

GitLabのインストール方法を表示

AD/LDAP連携

他グループとの同期、SSHキーの管理、許可や認証の管理などが可能です。GitLabインスタンスのすべてをAD/LDAP連携によって管理できます

AD/LDAP連携の詳細

複数LDAP/ADサーバーのサポート

複数のサーバをGitLabにリンクし、認証と認可を行うことができます。

LDAPの詳細設定

コードレビューを複数人で承認

GitLabでは、マージリクエストをマージする前に、複数人がコードレビューして承認することを強制できます。一度承認した後で問題に気がついた場合は、承認を取り消すこともできます。

承認機能のドキュメント

他のサービスから簡単に移行

以前に使用していたサービスから、すべてのリポジトリ、課題、マージリクエストのデータをGitLabへ簡単に移行できます。

プロジェクトをGitLabに移行する方法の詳細

機密の課題

機密の課題を使用すると、機密情報をセキュアに管理できます。GitLabでは、機密の課題をプロジェクトの報告者レベル以上のアクセス権を持つメンバーだけに公開できます。

機密の課題の詳細

ソースコードへのアクセス、および修正が可能

他の大多数のプロバイダが使用しているコードはプロプライエタリなので、ソースコードの閲覧や編集はできませんが、GitLab Enterprise Editionのソースコードは公開されています。したがってユーザがそれぞれのセキュリティや開発ニーズに合ったコードを調査し、またコードの修正が可能です。

GitLab Enterprise Editionのライセンスを表示

包括的なAPI

GitLabは、インテグレーションの開発を可能にするために、多くの機能をAPIとして提供しています。

APIのドキュメントを表示

曖昧ファイル検索でファイルを探す

GitLabは少ないキー入力でリポジトリ内のファイルを探す方法を提供します。

ファイル検索のドキュメントを表示

squashしてマージ

複数のコミットを1つにまとめてからマージすることで、メインブランチの履歴をシンプルに保つことができます。

squashしてマージの詳細

リモートリポジトリにプッシュミラーリング

ローカルサーバーから別サーバーのリポジトリにミラーリングができます。

リポジトリのプッシュミラーリングの詳細

リモートリポジトリのプルミラーリング

リモートの Git サーバからローカルサーバにリポジトリをミラーリングすることで、ローカルのフォークやレプリカを簡単に最新の状態に保つことができます。

リポジトリのプルミラーリングの詳細

課題をCSVファイルにエクスポート

GitLabから課題をCSVファイルとしてエクスポートすることができます。エクスポートしたファイルはデフォルトの通知メールアドレスに添付されて送信されます。

課題をCSVファイルにエクスポートの詳細

詳細なユーザーの役割と柔軟な権限

5つのユーザーの役割と外部ユーザーの設定により、プロジェクトへのアクセスと権限を管理できます。ユーザーに設定した役割に従って、リポジトリへの読み取り・書き込みの権限を制御することができます。ソースコードへのアクセスが不要なユーザーには、課題管理システムへのアクセスのみを許可することができます。

ユーザーロールの詳細

パイプラインの成功時にマージ

レビューが済んでマージできる状態なのに、CI/CDのジョブが完了するまで待つ必要がある場合は、パイプラインが成功したら自動的にマージするように予約することができます。

パイプラインの成功時にマージの詳細

変更のcherry-pick

マージリクエストや特定のコミット内のCherry-Pickボタンをクリックするだけで、あらゆるコミットをcherry-pickできます。

マージリクエストをcherry-pickの詳細

サブグループ: グループ内のグループ

グループ内にさらにグループを作成することで、規模の大きなチームやプロジェクトの管理が容易になります。

サブグループの詳細

簡単なアップグレードプロセス

GitLab公式のLinuxリポジトリまたはDockerイメージを使用することで、いとも簡単にGitLabをアップグレードできます。

GitLabインスタンスのアップグレード方法の詳細

マージリクエストがマージされると課題を自動的にクローズ

GitLabでは、特別なキーワードを使用して、マージリクエストがマージされたタイミングで複数の課題を自動的にクローズすることができます。

課題の自動クローズの詳細

課題を自動クローズするパターンを設定可能

マージリクエストがマージされたタイミングで、複数の課題を自動クローズするためのキーワードを自身で定義できます。

課題の自動クローズの詳細

仕掛中のマージリクエスト (WIP)

仕掛中のマージリクエストを間違えてマージすることができないように、マージリクエストを仕掛中(WIP)としてマークできます。これにより、仕掛中の変更であっても安心してレビューの依頼ができます。

WIPマージリクエストの詳細

カスタムGitフック

リポジトリで発生した特定のアクションに対して、カスタムスクリプトを連鎖的に実行することができます。Gitフックによって、コミットが拒否されたり、エラーが発生すると、GitLabのUIにエラーメッセージが表示されます。GitLabは全種類のフックをサポートします。

GitLabでGitフックを使用する方法の詳細

レスポンシブデザイン

GitLabはレスポンシブデザインに対応しています。デスクトップ・タブレット・スマートフォンのそれぞれで、見やすく表示されるように最適化されています。

コミュニティベースでの開発

GitLabには公開されている課題管理システムがあります。GitLab自身の課題だけではなく、インフラやマーケティングに関する課題も公開されています。

GitLabのすべてのコントリビューターを表示

Git LFS 2.0対応

音楽・動画・画像ファイルのような巨大ファイルを管理するのに、Git LFSは役に立ちます。 Git LFS 2.0では、ファイルのロック機能が追加され、チーム作業でのバイナリファイルの取り扱いが改善されました。 このファイルのロック機能は、GitLabに組み込まれているファイルのロック機能に統合されています。

GitLabでのGit LFS対応の詳細

セキュリティダッシュボード

セキュリティダッシュボードには、それぞれのプロジェクトのデフォルトブランチの最新のセキュリティステータスが表示されます。

セキュリティダッシュボードの詳細

Gitのプッシュでプロジェクトを作成

新しいプロジェクトを作成したい場所にプッシュすると、自動的に新しいプライベートプロジェクトが作成されます。

プロジェクト作成の詳細

地理検知DNSのサポート

地理的に離れた場所にレプリケーションされたサーバーがあるとGitのpullを高速に実行できますが、地理検知DNSのサポートがないと、開発者は手動で近くにあるサーバーを指定する必要があります。地理検知DNSのサポートがあれば、ユーザーが意識することなく、最も近くにあるサーバーから高速にリポジトリのデータを取得できます。

GitLab Geoの詳細

標準機能で高度なグローバル検索を利用可能

標準機能でElasticSearchによる高度なグローバル検索を利用できます。

GitLabの検索機能の詳細

ナビゲーションのグループドロップダウン

簡易的なドロップダウンメニューで直接グループを検索することが可能です。これにより、作業中の画面を見ながら目的のグループを見つけることができます。

グループの詳細

CommonMarkに対応したマークダウン

GitLabのマークダウンは、最新標準である、CommonMarkに対応しています。新しく追加したコンテンツはCommonMarkで描画されます。

GitLab Flavored Markdownの詳細

プロジェクトの作成時にREADMEファイルを追加

新しいプロジェクトを作成する時に、リポジトリにサンプルREADMEファイルを一緒に作成することができます。プロジェクトの作成時にチェックを入れると、リポジトリのmasterブランチにサンプルREADMEファイルが追加され、すぐにリポジトリをクローンできます。

プロジェクト作成の詳細

「GitLabに貢献する」へのリンク

GitLab CoreとGitLab.comのユーザーは、ユーザープロフィールメニューから「GitLabに貢献する」へのリンクをすぐに見つけることができます。

GitLabへの貢献の詳細

二要素認証をバイパスするためのSAML保証レベル

GitLab側での二要素認証をバイパスするために、SAMLプロバイダの保証レベルを優先できます。

SAML OmniAuth Providerの詳細

サードパーティのオファーを管理

GitLab 11.1 では、admin エリアにサードパーティのオファーの表示を制御する機能が導入され、これらのオファーの表示をより詳細に制御できるようになりました.

サードパーティのオファーの詳細

マージリクエストウィジェットにある JUnit テストの概要を確認する

GitLab を使用すると、マージリクエストウィジェットから JUnit テスト結果を表示できるので、変更による品質への影響に関する見解が得られます。

マージリクエストウィジェットにある JUnit テストのサマリーの詳細

ユーザーステータスメッセージ

プロフィールページ、コメント、作成者の行に表示される絵文字やテキストメッセージを使って、個人的なステータスメッセージを定義して表示します。

ステータスメッセージの詳細

プライベートプロファイルページ

プライバシーが懸念されるような特定の状況下では、ユーザーが自分の活動、貢献、個人的なプロジェクトを表示したくない場合があります。アクティビティ関連の情報は、プロファイル設定で無効にできます。

プライベートプロファイルの詳細

ダウンロードシングルリポジトリーファイル

GitLab 上のプロジェクトのリポジトリを閲覧する場合、単一のファイルに直接アクセスすることが適切なユースケースです。ファイルビューアの 'ダウンロード' ボタンを使用すると、GitLab UI から個々のファイルをダウンロードできます。

プロジェクトリポジトリの詳細

プロジェクト概要のリポジトリ言語

プロジェクト概要にあるプログラミング言語バーには、GitLab リポジトリを構成するすべての関連言語 (相対的な数を含む) が表示されます。

プロジェクトの詳細

インタラクティブな Web ターミナル

インタラクティブなWebターミナルを使用すると、実行中または完了した Kubernetes またはシェルのランナージョブに接続し、コマンドを手動で実行して、システムで何が起こっているかをより理解できます。

インタラクティブ Web ターミナルの詳細

カスタムファイルテンプレート

一貫性を保つために、カスタムの `LICENSE`、`.gitignore`、`Dockerfile`、`gitlab-ci` テンプレートを定義します。

カスタムファイルテンプレートの詳細

コード所有者

ファイルにコード所有者を割り当てて、 `CODEOWNERS` ファイルを使用してプロジェクトのコードを担当するチームメンバーを指定します。

コード所有者の詳細

保護された環境

特定の環境へのデプロイを許可するユーザー、グループ、アカウントを指定して、機密性の高い環境の保護と安全性を強化します。

保護された環境の詳細