GitLabとGitBucketを比較

    「GitLab」と「GitBucket」の概要

    「GitLab」と「GitBucket」は、Gitリポジトリ管理機能を提供するプロダクトです。

    ■「GitLab」とは

    GitLabは、ソフトウェア開発支援環境で、「GitHub」のようなサービスを社内などのクローズド環境に独自で構築できるGitリポジトリマネージャーです。

    GitLabを導入したサーバでGitリポジトリを集中管理します。ローカルで管理できるため、コスト/セキュリティの観点でGitHubを使えない企業から注目を集めています。

    ■「GitBucket」とは

    GitBucket(ギットバケット)とは、JVM上で動作するGitリポジトリ管理ツールです。

    GitBucketはScala実装のGitプラットフォームで、以下の特徴があります。
    ・簡単インストール
    ・直感的UI
    ・プラグインによる高い拡張性
    ・GitHub APIとの互換性

    メリット比較

    ■GitLab

    ・セルフホスト可能
    ・無料で利用できる
    ・コミュニティ版がある
    ・使い慣れたインターフェースで利用できる(GitHub風UI)
    ・使いやすいユーザーインターフェース
    ・簡単セットアップ
    ・CI(継続的インテグレーション)を含む多くの機能を含む
    ・gitlabciとの良好な統合
    ・公式モバイルアプリが提供されている

    ■GitBucket

    ・セルフホスト可能
    ・オープンソース
    ・使い慣れたインターフェース
    ・簡単セットアップ
    ・Scala実装
    ・SSHキー対応
    ・無料で利用できる
    ・クロスプラットフォーム

    主な機能比較

    ■GitLab

    ・ユーザ/グループ管理機能
    ・Gitリポジトリ管理機能
    ・コードレビュー機能
    ・マージリクエスト機能
    ・マイルストン機能
    ・フック機能
    ・問題追跡機能
    ・活動フィード機能
    ・Wiki機能
    ・認証連携機能---LDAP、Active Directory
    ・高可用化機能

    ■GitBucket

    ・Gitリポジトリホスティング機能---HTTP、SSH
    ・GitLFSサポート機能
    ・リポジトリビューア機能
    ・課題機能
    ・Wiki機能
    ・プルリクエスト機能
    ・活動スケジュール機能
    ・Eメール通知機能
    ・アカウント(グループ)管理機能---LDAP統合、OpenID Connect統合
    ・Jenkinsマルチブランチパイプライン統合機能
    ・グループチャットサービス「Slack」統合機能

     

    参考元サイト

    「GitLab」基本情報

    ■概要

    GitLab(ギットラボ)とは、ソフトウェア開発支援環境で、「GitHub」のようなサービスを社内などのクローズド環境に独自で構築できるGitリポジトリマネージャーです。

    ■基本説明

    GitLabを導入したサーバでGitリポジトリを集中管理します。ローカルで管理できるため、コスト/セキュリティの観点でGitHubを使えない企業から注目を集めています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →GitLab(The first single application for the entire DevOps lifecycle)

    ライセンス情報

    GitLabのライセンスは「MIT License」です。

    詳細について、こちらを参照ください。
    →GitLab →GitLab Licensing and Compatibility

    ダウンロード

    GitLabは、無償オープンソース版「Community Edition」と、サポート付き有料版「Enterprise Edition」も提供されています。

    →GitLab →GitLab Installation

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「GitBucket」「Gitblit」「Gogs」など。

    「GitLab」の主な特徴

    ■プロジェクト

    GitLabでは、1つのリポジトリを1つのプロジェクトとして扱います。そこに「Issues」や「マージリクエスト」が紐づく構成です。

    プロジェクトには公開レベルを設定でき、主要なリポジトリ管理サービスからのインポート機能も備わっています。

    ■クラウド対応

    GitLabはローカルサーバに構築できますが、クラウド環境(AWS/Google Cloud Platformなど)にも構築できます。

    クラウドサービスごとに、インスタンスイメージ(インスタンステンプレート)が用意されています。

    ■ドキュメントが充実

    各種インストール方法などのドキュメントが充実しています。

    「GitLab」の主な機能

    ■ユーザ/グループ管理機能

    ユーザ/グループにはそれぞれ名前空間が設定されます。各種アクセス権限を設定できます。

    ■リポジトリ管理機能

    ブラウザ上で、リポジトリ作成/ユーザ管理/コミット管理/ブランチ管理/フォーク/プルリクエストなどの処理を行えます。

    ■課題管理機能「Issues」

    「Issue」とは、プロジェクト/ソースコードの課題管理機能です。

    「課題」と「ソースコード/マージリクエスト/変更履歴など」をリンクさせて管理でき、情報の一元化が可能です。タグ(ラベル)設定で簡潔に管理できます。

    ■コードレビュー機能

    push時にも「Issue」と「マージリクエスト」の紐付けができます。差分を一目で把握でき、コードに対してコメントできます。

    ■マージリクエスト機能

    「Issues」と同じようにタイトル/概要/担当者などを入力します。その後、レビュー担当者がコード差分確認/コメントをして、レビューが通ればマージをして完了します。

    ■Wiki機能

    リポジトリに関するドキュメントをまとめて管理できます。

    ■マイルストン機能

    各種締め切りの設定/管理を行えます。

    ■フック機能

    プロジェクト/システムの両方に対してフック対応しています。該当イベントが発生した時、GitLabサーバはJSONデータを使って「HTTP POSTリクエスト」を発行します。

    Gitリポジトリ(GitLab)を、開発自動化ツール(CIサービス/チャットサービス/デプロイ用ツール)などと連携できます。

    ■認証連携機能

    LDAPなどの認証機構との連携も可能なため、大規模環境でも利用できます。


    「GitBucket」基本情報

    ■概要

    GitBucket(ギットバケット)とは、JVM上で動作するGitリポジトリ管理ツールです。

    ■基本説明

    GitBucketはScala実装のGitプラットフォームで、以下の特徴があります。
    ・簡単インストール
    ・直感的UI
    ・プラグインによる高い拡張性
    ・GitHub APIとの互換性

    ■経緯

    開発者であるtakezoe氏の言葉によると『GitBucketは、費用がかかるGitHub Enterpriseではなく、メンテナンスに手間がかかるGitLabではなく、それらの隙間を狙ったプロダクト』と位置づけられています。

    ■ユースケース

    GitBucketは自分の管理下にあるサーバで動作させることができるため、「GitHubのようにソースコードを公開はしたくないがリポジトリを管理したい」場合などに利用できます。

    GitBucketはGitHubのような有償サポートサービスなどは提供されていませんが、社内や個人用途で気軽に使用できるGitHubクローン用途に適しています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →GitHub →GitBucket

    ライセンス情報

    GitBucketのライセンスは「Apache License 2.0」です。

    詳細について、こちらを参照ください。
    →GitHub →gitbucket/gitbucket →LICENSE

    ダウンロード

    →GitHub →gitbucket/gitbucket

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「GitLab」など。

    「GitBucket」の主な特徴

    ■JVM上で動作

    GitBucketの動作にはJava 8が必要です。

    簡単インストール

    GitBucketは「gitbucket.war」ファイルをダウンロードしてJava実行するだけで動作します。

    ■サポートデータベース

    GitBucketは、内部に組み込みH2データベースを保持していますが、外部データベースとして「MySQL」と「PostgreSQL」をサポートしています。

    「エクスポート/インポート機能」を利用でき、データベース種類により「データベース暗号化」にも対応できます。

    →GitHub →GitBucket →External database configuration

    ■他サービス統合

    Jenkinsマルチブランチパイプライン統合

    GitBucketとJenkinsのジョブと統合することにより、mavenビルド自動化などが可能です。

    →GitHub →GitBucket →Setup Jenkins Multibranch Pipeline and Organization

    グループチャットサービス「Slack」統合

    GitBucketとグループチャットサービス「Slack」を統合できます。

    →GitHub →GitBucket →Setup Slack Integration

    API統合

    GitBucketのAPIはGitHub実装との互換性のために設計されています。

    →GitHub →GitBucket →API WebHook

    「GitBucket」の主な機能

    ■主な機能

    ・公開/非公開のGitリポジトリ管理機能---http/https/sshでのアクセス
    ・GitLFSサポート機能
    ・リポジトリビューア機能(オンラインファイルエディタ)
    ・Wiki機能---「課題」「プルリクエスト」「リポジトリ」
    ・活動スケジュール機能
    ・Eメール通知機能
    ・アカウント(グループ)管理機能---LDAP統合、OpenID Connect統合

    ■プラグイン拡張

    GitBucketコミュニティプラグインを利用することで、さまざまな機能強化を行えます。
    ・アナウンスプラグイン
    ・H2データベースバックアッププラグイン
    ・デスクトップ通知プラグイン
    ・バグスポットプラグイン
    ・監視プラグイン など

    http://gitbucket-plugins.github.io/

     

    参考元サイト

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。