GitHubとGitLabの比較 | GitLab.JP

このページでは、GitHubとGitLabを比較しています。それぞれの強みや不足部分を確認して、判断材料にしてください。

GitHubがTeamプランの無償化を発表

2020年4月14日、GitHubはTeamプランを無償化することを発表しました。GitLabは発足以来、チーム/組織向けに無料で提供されています。GitHubによるこの動きについて、GitLabのブログ記事のレスポンスと#GitChallengeを読んでみてください。

GitHubとGitLabの比較図

GitHubとGitLabの比較図をご紹介します。この図を構築するために使用された手法は、ここで見ることができます。強みや不足部分などの詳細な比較や解説は、以下のセクションにまとめています。

GitLab GitHub比較図

注:このチャートは、GitLabとGitHubがサポートしている機能カテゴリを比較して作成したものです。例えば、PlanステージのGitLabの「5/7」という比率は、そのDevOpsライフサイクルステージ内で7つの機能カテゴリのうち5つをサポートしていることを示しています。 次に、特定の%のしきい値を適用して、バーに色付けしました。GitLabの透明性という価値観に沿って、GitLabとGitHubの両方の機能にこのスコアリング手法を適用しました。 分析方法や情報の追加についてご質問がある場合は、本家サイトのページの下部にあるリンクをクリックしてイシューを投稿するか、コメントをしてください。

このページのコンテンツ

概要

要約

GitLabとGitHubの比較 - 独立した外部組織 (LinuxHint.com) によって作成された比較動画です。

GitHubを使用するとリポジトリのホスティング、コードレビュー、プロジェクト管理、ソフトウェアのビルドが可能です。GitHubは、Gitの分散バージョン管理やソースコード管理機能のすべてと独自の追加機能を提供します。GitHubはアクセス制御と、バグ追跡、機能要求、タスク管理、Wikiなどのいくつかのコラボレーション機能を提供します。

2019年11月、GitHubは全ユーザー向けにGitHub Actionsの一般提供を発表しました。GitHub Actionsの機能により、コンテナ内でコードスニペットを実行できることに加えて、様々なGitHubのAPIを利用することができます。これにより、ユーザーは任意のイベントに基づいて様々なワークフローを実行することができます。GitHub Actionsでは、ワークフローやステップはリポジトリ内のコードにすぎません。これにより、プロジェクトのビルド、テスト、デプロイの自動化が容易になり、Linux、macOS、Windowsのランナーもサポートされています。GitHub Actionsでは、ワークフローをコンテナまたは仮想マシンで実行します。

同様に、GitLabはCI/CDを統合していますが、アプリケーションのパフォーマンスやサーバーの監視などの追加機能も提供しています。また、GitLabには静的・動的セキュリティテストやコンテナスキャンも含まれています。

GitHubにはデプロイメントプラットフォームが付属しておらず、アプリケーションをデプロイするためにはHerokuのような追加のアプリケーションが必要です。GitLabはKubernetesを活用して、単一のアプリケーションでシームレスなデプロイ体験を実現します。

GitHubでは、オープンソースのソフトウェアプロジェクトをホストするために一般的に使用されるプライベートリポジトリと無料アカウントの両方のプランを提供しています。

2019年9月現在、GitHubは4000万人以上の開発者が利用していると報告しています。「GitHub上の開発者とは、その活動内容とは無関係に、個人ユーザーアカウントのこと」と定義されていますが、1億件のリポジトリ(2800万件の公開リポジトリを含む)を保有しており、世界最大のソースコードのホスティングサービスとなっています。

GitHubはGitHub Enterprise(GHE)というセルフマネージド版も提供しています。

2018年6月4日、マイクロソフトはGitHubを買収しました。

GitHubの強み

GitHubの不足部分

GitHub Actionsの不足部分

### ソース: GitHub Actionsのコミュニティフォーラム 次の表は、GitHub Actions の主な不足部分とそれに伴う影響を示しています。この情報は、2020年4月10日時点のGitHub Actionsのコミュニティグループでのユーザーフィードバックを元にしています。

説明 影響 参照
継続的統合    
ビルド時間を増加させる課題    
GitHub Actions は [skip ci] をサポートしていない 些細な変更でも、必ずCIステップが自動的に開始されるため、長いビルド時間が必要となる可能性があります。 GitHubコミュニティでの議論
冗長なビルドの自動キャンセルができない 同じブランチで新しいビルドが起動した場合、実行中のビルドがキャンセルされず、新しいビルドで起動します。そのため、ビルド時間と計算リソースが増加します。 GitHubコミュニティでの議論
リポジトリ内のアーティファクトをキャッシュして以降のビルドで再利用することができない dockerイメージを毎回リビルドしたりhubから取得したりする必要があるため、ビルド時間が遅くなります。 GitHubコミュニティでの議論
GitHub Actions の実行間のファイルのキャッシュが 200 MB に制限されている プロジェクトやビルドの実行に時間がかかります。 GitHubコミュニティでの議論
continue-on-errorの結果がUIに通知されない 許容されるエラーはUIに通知されないので、ログを確認する必要があります。 GitHubコミュニティでの議論
運用コストを増加させる課題    
同じ組織内のリポジトリであっても、Actionsでは他のプライベートリポジトリにまたがってアクセスすることはできません。 コードの再利用が難しくなります。この制限を克服するためには、回避策の実装に苦労する必要があります。 GitHubコミュニティでの議論
UIから個々のワークフローの実行を削除することができない 失敗したワークフローの実行を削除できないので、情報を整理するのが難しくなり、管理性を低下させます。 GitHubコミュニティでの議論
継続的デリバリー    
デリバリー時間を増加させる課題    
ワークフロー内の単一のジョブだけを再実行できない 例えば、いくつかの失敗したジョブだけを再実行することができません。ユーザーはワークフロー全体を再実行しなければならず、無駄な時間や生産性の低下を招くことになります。10個のジョブがあるワークフローでは、10個すべてを再実行する必要があります。 GitHubコミュニティでの議論
運用コストを増加させる課題    
ステージング環境と本番環境で異なるワークフローを簡単にトリガーできない 条件付きのワークフローは、GitHub Actions Events には関連する型がないので、実装やメンテナンスが大変です。ワークフローにif条件を実装しなければなりません。 GitHubコミュニティでの議論
リポジトリの GITHUB_TOKEN を使用して、別のワークフローから新しいワークフローをトリガーできない。オプションは、1)ボットユーザーを作成して個人のアクセストークンを使用するか、2)github appを作成するかです。 コードプッシュ後のテストを簡単に開始できません。所定の回避策のいずれかを使用しなければなりません。 GitHubコミュニティでの議論
プルリクエストのメッセージ/コメントを介してアクションをトリガできない 例: ユーザーは、プルリクエストごとに実行するのに時間がかかるアクションを望んでいません。代わりに、特定のアクションが実行されないようにするために、プルリクエストにコメントを追加します。 GitHubコミュニティでの議論
YAML アンカーとエイリアスのサポートの欠如 コードの再利用を妨げます。この制限を克服するためには、ユーザーはコードをコピーアンドペーストする必要があり、メンテナンスが困難になります。 GitHubコミュニティでの議論
リスクを増加させる課題    
ワークフローの実行を手動でトリガーできない。 本番環境での手動トリガーは制限されますが、他の環境での自動トリガーは許可されています。 GitHubコミュニティでの議論
エンタープライズ・レディネス    
リスクを増加させる課題    
チームや組織レベルでの秘密情報の管理 CI-CDのフリクションが増加するにつれて、秘密情報をコピーするスクリプトなどの回避策を使用した場合に、セキュリティ上の脆弱性が発生しやすくなります。 GitHubコミュニティでの議論
フォークのビルドのために秘密情報を利用 ワークフローにプレーンテキストでトークンを含めるなどの回避策により、セキュリティ上の脆弱性が増加します。 GitHubコミュニティでの議論
GitHub Actionsでは、公開リポジトリからDockerイメージにアクセスするための資格情報が必要です。UIを介して手動で作業します。 回避策として別のDockerレジストリが必要です。GitHub パッケージは、資格情報がないと Actions からアクセスできません。 GitHubコミュニティでの議論
運用コストを増加させる課題    
セルフホストランナーはリポジトリごとに必要 インフラや管理コストが増加します。同じマシンに複数のランナーサービスを追加することができますが、GitHub はリポジトリ間のランナーの状態を認識していないため、別々のリポジトリでも同じマシン上でビルドを開始することができます。 GitHubコミュニティでの議論
GitHub Enterprise ServerでのGitHub Actionのサポート GitHub ActionsはGitHub Enterprise Serverでは動作せず、現在はGitHub Enterprise Cloudでのみ利用可能です。 GitHubコミュニティでの議論
UIからアーティファクトを選択的に削除したり、アティファクトの保存期間を90日未満にすること 必要なストレージの増加は、価格の上昇につながります。また、アーティファクト保存の上限に達すると、チームがブロックされてしまうこともあります。ストレージを削減するために、特別なスクリプトを書いたり、ビルド後のアーティファクトを管理したりする必要があります。 GitHubコミュニティでの議論

GitLab のスケーリング、高可用性、ゼロダウンタイムのアップグレード機能

発表

リソース

比較

FEATURES

共有Runner、または個別RunnerでのCI/CDが無料

GitLab.comが提供する共有Runnerを使用して、プライベートプロジェクトでは毎月2000分までのCI/CDを、パブリックプロジェクトでは時間無制限のCI/CDを無料で利用できます。さらに、より高速なビルド、時間無制限のビルド、特殊な要件などに対応するために個別Runnerをセットアップして使用することもできます。

GitLab.comのプランを表示

統合されたCI/CD

GitLabにはCI/CD機能が統合されているので、CI/CDのために他のツールをインストールする必要はありません。GitLabのCI/CDを使用して、ウェブサイト(GitLab Pages)やウェブアプリケーションをビルド・テスト・デプロイできます。ジョブの結果はマージリクエストに表示され、簡単にアクセスできます。

CI/CDの詳細

インナーソース

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

インナーソースの詳細

コミットグラフとレポートツール

GitLabは共同作業に役立つ、コミットグラフとレポートツールを提供します。

コミットグラフの詳細

可用性

GitLabは99.95%以上の可用性を目標としていますが、現在は99.5%にとどまっています。GitLabは可用性の改善に継続的に取り組んでいます。

GitLab.comの稼働状況

包括的なインポート機能

GitLab は、GitHub や他の VCS よりも多くのソース (GitHub, Bitbucket, Google Code, FogBugz, Gitea, 任意の git URL) からプロジェクトと課題をインポートできます。また、SVNからGitへ移行するための包括的なガイドとドキュメントも用意されています。

GitLabの利用開始をより簡単に

プロジェクトのエクスポート

GitLabのプロジェクトを他のシステムにエクスポートすることが可能です。

GitLabはデータへのアクセスを制限しません

課題

複数の課題のステータスや担当者やマイルストーンを素早く一括で設定でき、設定した値で簡単に絞り込みができます。プロジェクトを横断して、マイルストーンや課題を表示できます。

課題管理の詳細

説明テンプレート

課題やマージリクエストに description テンプレートを追加することにより、新しい課題やマージリクエストを作成するユーザーは、効果的なコミュニケーションに役立つテンプレートを選択できます。

GitLabの説明テンプレートの詳細

GitLab 特有の Markdown 記法

GitLabでは「GitLab Flavored Markdown」(GFM)を使用できます。GFMは標準的なマークダウンを拡張して、いくつかの便利な機能を追加したものです。

GitLab Flavored Markdownの詳細

ラベル

ラベルを使用すると、 'バグ' , 'ドキュメント' といった説明的なタイトルに基づいて、問題、マージリクエスト、エピックを簡単に分類できます。

GitLabのラベルの詳細

課題のウェイト

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

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

マイルストーン

プロジェクトレベルやグループレベルの両方でマイルストーンを作成/管理したり、現在実施しているマイルストーンの全ての課題を表示して、アジャイルスプリントやリリースを表現します。

マイルストーンの詳細

課題の対応期限

GitLabでは個々の課題に対して期限日を設定できます。これは、特定の期限日までにしなければならない、複数の小さなタスクを管理するのに役立ちます。

期限日のドキュメント

複数の課題担当者

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

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

議論をロック

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

議論をロック

機密の課題

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

機密の課題の詳細

関連した課題

Explicitly mark issues as related, blocked, and blocking and track their status. Blocked issues are visible in the issue card view for easy identification.

関連した課題の詳細

他プロジェクトへの課題の移動

GitLabでは課題を別のプロジェクトへ移動できます。元の課題のすべてのリンク、履歴、コメントが移動先の課題にコピーされ、移動先の課題から元の課題を参照できます。これによって、複数のプロジェクトで課題を追跡するのが容易になります。

別のプロジェクトへ課題を移動の詳細

課題を重複としてマークする

課題を別の課題の重複としてマークし、その課題をクローズします。

重複した課題のマーク付けの詳細

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

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

課題のCSVエクスポートの詳細

バーンダウンチャート

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

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

クイックアクション

GitLab は、クイックアクションでコメントフィールドから離れずに、課題やマージリクエストのメタデータを変更する便利な方法を提供します。

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

Todos

ユーザーが課題やマージリクエストでメンションされたりアサインされると、そのユーザーの Todo List に表示されます。これにより開発ワークフローをより素早く簡単に追跡することができます。

Todoの詳細

コメント変更の追跡

コメントに関する全ての更新の履歴を表示します。

タスクのドラック&ドロップ

Drag and drop tasks in a task list.

この機能に関するGitLabの課題を表示

リンクホバーに関するリッチオブジェクトの概要

GitLab のユーザー、課題、マージリクエスト、その他のオブジェクトへのリンクにカーソルを合わせると、豊富な情報量の概要を表示されます。

この機能の実装に関するエピックを表示

JIRA 開発パネルから GitLab のブランチを作成

JIRA の課題の開発パネル内から GitLab のブランチを作成できます。

課題を表示

JIRA 開発パネルから GitLab のマージリクエストを作成

JIRA の課題の開発パネル内から GitLab のマージリクエストを作成できます。

課題を表示

プロジェクト課題ボード

GitLabには、課題のラベルをベースに課題をリストを表示する、課題ボードがあります。課題ボードは課題管理をよりユーザーフレンドリーな形で提供するものです。

GitLab課題ボードの詳細

作業時間の記録

GitLabでは課題とマージリクエストに作業時間の見積と実績を入力できます。

作業時間の記録の詳細

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

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

GitLabのWikiの詳細

課題から新しいブランチを作成

GitLabでは、課題から素早く新しいブランチを作成できます。ブランチには課題の番号とタイトルが自動的に含まれるので、課題とブランチの紐付けを簡単にできます。

ドキュメントで詳細を確認

アップストリームの管理者にフォークの編集を許可

フォークしたプロジェクトからマージリクエストを投稿した場合に、 アップストリームの管理者にソースブランチの編集を許可するオプションが選べます。 これにより、アップストリームの管理者はマージ前に軽微な変更を行うことができ、 コミュニティからの貢献を受け入れる負担を軽減できます。

アプリケーションのパフォーマンス監視

Prometheusを利用して、GitLabはデプロイしたアプリケーションのパフォーマンスメトリクスを収集し表示できます。開発者はマージが本番環境に与える影響を、GitLabから離れることなく、簡単に確認できます。

デプロイしたアプリケーションの監視の詳細

アプリケーションのパフォーマンスに関するアラート

GitLab を使うと、エンジニアはソースコードを書くのと同じワークフローで、サービスレベルインジケータアラートをシームレスに作成し、必要なイベントを通知できます。

SLI アラートの作成についてさらに学んでください。

GitLab サーバのセルフ監視

オンプレミスで運用しているGitLabサーバーをPrometheusで監視できます。これにより、自身のGitLabサーバーの稼働状況を簡単に確認できます。

GitLab サーバのセルフ監視の詳細

Value Stream Analytics

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

Learn more about Value Stream Analytics

画像に関する議論

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

画像に関する議論

マージリクエストのコミットに関する議論

マージリクエストのコミットに対してコメントをすることができます。

マージリクエストのコミットに関する議論

初回貢献者バッジ

プロジェクトに初めて貢献する貢献者をハイライト表示します。

SUPPORTファイルへのリンク

新しい課題の作成画面に、サポート情報を記載したSUPPORTファイルへのリンクが表示されます。

この機能に関するGitLabの課題を表示

統合されたコンテナレジストリ

GitLabコンテナレジストリは、Dockerイメージのセキュアでプライベートなレジストリです。GitLab CIから簡単にイメージのアップロードやダウンロードができます。コンテナレジストリはGitリポジトリ管理と完全に統合されています。(Codefresh will be ending their support for private docker registries as of May 1, 2020

コンテナレジストリのドキュメント

Review Appsで変更をプレビュー

GitLab CI/CDを利用して、ブランチごとに新しい環境を作成することができ、開発プロセスを高速化できます。 自分のブランチをプレビューできるマージリクエスト用の動的な環境を起動できます。Review Apps support both static and dynamic URLs.

Review Appsの詳細

Environments Auto-stop

This feature allows users to configure an optional expiration date which can be set for review app environments.

Learn more about Environments auto-stop

毎月、新機能を追加

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

1つの一体化したツール

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

サーバへのアクセス

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

ログシステムの詳細

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

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

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

高可用性セットアップ

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

高可用性の詳細

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

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

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

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

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

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

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

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

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

IPv6対応

GitLab.com と GitLab セルフホスティングサーバは IPv6 をサポートします。

IPv6 設定に関するドキュメントを確認

AD/LDAP連携

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

AD/LDAP連携の詳細

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

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

LDAPの詳細設定

Multiple approvers in code review

In GitLab, to ensure strict code review, you can require a minimum number of users to approve of a merge request before it is able to be merged. 一度承認した後で問題に気がついた場合は、承認を取り消すこともできます。

承認機能のドキュメント

コードレビューの承認ルール

Make sure the right people review merge requests with approval rules by specifying lists of eligible approvers, the minimum number of approvals for each, and which target branches they protect. This makes it easy to request review from different teams like Engineering, UX and Product.

承認機能のドキュメント

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

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

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

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

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

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

包括的なAPI

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

APIのドキュメントを表示

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

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

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

fast-forwardマージ、およびrebaseオプション

マージコミットを作成せず、すべてのマージをfast-forwardとするように、プロジェクトレベルで設定できます。fast-forwardマージができない場合は、rebase後にマージするオプションを選択できます。

マージ前rebaseの詳細

squashしてマージ

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

squashしてマージの詳細

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

ローカルサーバーから別サーバーのリポジトリにミラーリングができます。プッシュミラーリングは、パスワード認証を使用した HTTP/SSH、SSH での公開キー認証を使用してサポートされます。

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

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

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

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

マージの承認

GitLab Enterprize Editionではマージリクエストをマージするのに、複数の承認を必須とすることができます。マージに必要な承認の数や承認可能なユーザーを設定することは、コード品質の改善につながります。

マージリクエストの承認の詳細

監査ログ

コードの整合性を維持するために、GitLab Enterprise Edition Premiumには管理者向けに、高度な監査ログシステムで、GitLabサーバ内で行った修正をすべて確認できる機能があります。これにより、すべての変更を制御、分析、追跡することが可能となります。

監査ログの詳細

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

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

ユーザーロールの詳細

マージの衝突を解決

マージの衝突をGitLabのUIでプレビューして、どちらのバージョンを使用するのか選択できます。

マージ衝突解決UIの詳細

未署名コミットを拒否

GitLab Enterprise Edition Premiumでは未署名コミットのプッシュを拒否することで、GPG署名コミットを強制することができます。

強制プッシュルールを表示

コミッターの検証

コミッターとプッシュの実行者が同一人物であることを検証できます。

GitLabで開発中です。詳細な情報はこのリンク先を参照ください。

マージリクエストの差分で、メソッド/関数にナビゲーション

マージリクエストの差分を表示しているときに、変更されたファイルのメソッド/関数に直接ナビゲーションできます。

この機能の実装に関するGitLabの課題を表示

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

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

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

特定のコミットやマージリクエストをUIから取り消し

ボタンをクリックするだけで、コミットやマージリクエストの取り消しができます。

GitLabのUIからコミットやマージリクエストの取り消す方法の詳細

Web IDE

Web IDE を使用してローカル開発環境でのコンテキスト切り替えを回避することで、プロジェクトへの貢献を迅速にします。Web IDE はマージリクエストや GitLab CI と統合されているため、Web IDE を離れることなくフィードバックを解決、失敗したテストの修正、変更のプレビューをクライアント側の評価でライブ表示ができます。

Web IDEの詳細

Web IDE の Web ターミナル

Web IDE の Web ターミナルでコードを操作して、API 応答の検査、REPL の実験、コードのコンパイルを実行します。

Web IDE の Web ターミナルの詳細

File Syncing to Web Terminal

Changes made in the Web IDE will now be synced to the Web Terminal. User changes made in the Web IDE can now be tested within the Web Terminal before committing them to the project.

Learn more about File Syncing to Web Terminal

インラインコメントと議論の解決

マージリクエストのインラインコメントを使用すると、コードやテキストのレビューがより高速かつ効果的になります。特定のコード行についてコメントを残し、議論を解決します。GitLab では、マージリクエストのインラインコメントは議論として解釈され、変更されてもされなくても任意の行に残すことができます。すべての議論が解決されたときにのみマージリクエストが承認されるようにプロジェクトを構成できます。

議論の解決の詳細

変更のcherry-pick

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

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

GPG署名コミット

署名コミットを使用すると、特定のユーザーによってコミットされたことを証明できます。

GPG署名コミットの詳細

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

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

サブグループの詳細

統合されたウェブターミナルでコンテナをデバッグ

GitLabにビルトインされたウェブターミナルを使用すると、あらゆる環境のコンテナを簡単にデバッグできます。アプリケーションをKubernetesにデプロイしている場合は、GitLabの環境メニューから直接ターミナルのセッションを開始することができます。この強力な機能により、ブラウザから離れることなく、問題の調査を素早く行うことができます。

ウェブターミナルの詳細

パイプラインをスケジュール実行

cronのように、パイプラインをスケジュール実行できます。

GitLabでパイプラインがスケジュール実行される仕組の詳細

GiLab Pagesで無料でウェブサイトを公開

GitLab Pages は、GitLab リポジトリと GitLab CI を使用して静的サイトをホストするための簡単なシステムを提供し、カスタムドメイン、アクセス制御、HTTPS サポートを備えています。

GitLab Pagesの詳細

GitLab リリースを使ってリリースを追跡する

GitLab's Releases feature allow you to track deliverables in your project. Consider them a snapshot in time of the source, build output, and other metadata or artifacts associated with a released version of your code, and receive notifications when new releases are available for projects you track, including for guests of your project.

GitLab リリースの詳細

無料のプライベートプロジェクトからウェブサイトを公開

サイトのコンテンツは無料のプライベートプロジェクトで管理しつつ、公開したい情報(HTML)だけをGitLab Pagesで公開できます。

GitLab Pagesのドキュメントを表示

GitLab Pagesのカスタムドメイン

GitLab Pagesでは、カスタムドメインやサブドメインを使用できます。

GitLab Pagesのウェブサイトにカスタムドメインを適用する方法の詳細

GitLab Pagesのマルチカスタムドメイン

GitLab Pagesでは1つのウェブサイトに複数のカスタムドメイン(ドメインエイリアス)を追加できます。ドメインエイリアスは1つの部屋への複数の扉のようなものです。

GitLab Pagesのウェブサイトにカスタムドメインを追加する方法の詳細

GitLab Pagesのセキュアなカスタムドメイン(HTTPS)

GitLab Pagesのカスタムドメインでは、無料でSSL/TLS証明書をインストールして使用できます。

GitLab PagesのウェブサイトにSSL/TLS証明書を追加する方法の詳細

GitLab Pagesのカスタムドメインの検証

新しいカスタムドメインを追加する場合は、ドメインの所有権を検証するために、指定のTXTレコードを追加しなければなりません。 この機構により、所有していないドメインのなりすましを防止することができます。

GitLab Pagesのドキュメントを表示

GitLab Pagesはすべての静的サイトジェネレーター(SSG)をサポート

GitLab Pagesでは、あらゆるSSGをビルドできます。また、使用するSSGのバージョンを指定することも可能です。

GitLab PagesであらゆるSSGをビルドする方法の詳細

GitLab Pagesのサンプルプロジェクト

フォークする[サンプルプロジェクト](https://gitlab.com/pages)を選択して、GitLab Pagesを開始することができます。

プロジェクトをフォークして、GitLab Pagesを開始する3分間のチュートリアル動画

GitLab Pages Templates for Static Site Generators

For those not interested in forking a project, GitLab Pages also offers templates for Gitbook, Hugo, Jekyll, Gatsby, and PlainHTML to start your Pages site from a template.

Watch a 2-minute video on getting your Pages site running with a GitLab template

GitLab PagesはすべてのJekyllプラグインをサポート

GitLab Pagesでは、あらゆるバージョンのJekyllでビルドできることに加えて、すべてのJekyllプラグインを利用できます。

GitLab Pagesのドキュメントを表示

GitLab Pages へのアクセス制御

GitLab Pages では、サイトのカスタムアクセス制御を設定できます。

GitLab Pages の Web サイトでのアクセス制御の設定方法の詳細

デプロイボード

GitLab Premium には Deploy ボードが付属しており、Kubernetes 上で実行している各 CI/CD 環境の現在の健全性とステータスを統合的に表示します。Kubernetesにアクセスすることなく、 最新デプロイのそれぞれのpodの稼働状況をGitLab内でシームレスに表示できます。

デプロイボードの詳細

制御

メンテンスのダウンタイムを制御できます。また、バックアップ方法や保管場所を制御できます。バックアップや保管場所を制御する方法の詳細

アップグレードのタイミングを選択可能

毎月、GitLabの新しいバージョンがリリースされ、都合の良いタイミングでアップグレードできます。

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

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

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

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

マージリクエストのすべてのフィールドを編集可能

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対応の詳細

様々な認証メカニズム

GitLabは、ほぼすべての認証と認可のプロバイダを統合することができます。

GitLabの認証インテグレーションを表示

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

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

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

静的アプリケーションセキュリティテスト

GitLabのCI/CDパイプラインでは、静的アプリケーションセキュリティテスト(SAST)を簡単に実行できます。 静的アプリケーションテストでは、ソースコードの脆弱性やアプリケーションが使用するライブラリに存在する既知のセキュリティバグをチェックできます。テスト結果はマージリクエストおよびパイプラインの画面に表示されます。 この機能は[Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast)の一部として利用できます。

静的アプリケーションセキュリティテストの詳細

依存関係のスキャン

GitLabはアプリケーションが使用するライブラリに存在する既知のセキュリティバグを自動的に検出し、アプリケーションを脆弱性から保護します。 依存性スキャンの結果はマージリクエストおよびパイプラインの画面に表示されます。 この機能は[Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast)の一部として利用できます。

依存性スキャンの詳細

コンテナスキャン

アプリケーションのDockerイメージをビルドする際に、コードをデプロイする環境に既知の脆弱性が存在しないかGitLabで確認できます。 コンテナスキャンの結果はマージリクエストとパイプラインに表示されます。 この機能は[Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast)の一部として利用できます。

コンテナスキャンの詳細

動的アプリケーションセキュリティテスト

オンラインのアプリケーションに対して、GitLabのCI/CDパイプラインで動的アプリケーションセキュリティテスト(DAST)を実行できます。 これにより、アプリケーションにXSSや認証フローの不備のような脆弱性が存在しないかをテストできます。 テスト結果はマージリクエストとパイプラインに表示されます。 この機能は[Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast)の一部として利用できます。

コンテナのアプリケーションセキュリティの詳細

双方向なアプリケーションセキュリティテスト

[IAST](https://blogs.gartner.com/neil_macdonald/2012/01/30/interactive-application-security-testing/) は静的 / 動的アプリケーションセキュリティテスト方法の要素を組み合わせて、結果の全体的な品質を改善します。通常 IAST はライブラリの呼び出しなどを監視するために、エージェントを使用してアプリケーションを計測します。GitLab はまだこの機能を提供していません。

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

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

プロジェクト作成の詳細

個人メールアドレスの非公開

個人メールアドレスを非公開にして、匿名メールアドレスでのコミットができます。

コミットメールの個人アドレスの詳細

Kubernetesクラスター監視

接続しているKubernetesクラスターの主要なメトリクスを監視できます。

クラスター監視の詳細

ChatOps

チャットから直接一般的なアクションを実行し、チャットに実行結果を出力することができます。

ChatOpsの詳細

デプロイトークン

あなたのデータにアクセスが必要な外部のインフラに対して、特定のリポジトリやコンテナイメージへの読み取り専用アクセスを許可することができます。 例えば、Kubernetes上にアプリケーションをデプロイするのに利用できます。This setting is available for project and group level.

デプロイトークンの詳細

グループ用のSAML SSO

GitLab 内のグループを SAML ID プロバイダに接続して、認証を管理します。

LDAPのグループ同期の詳細

Kubernetes podログの表示

生成されたログファイルにより、サーバ、アプリケーション、ネットワーク、セキュリティデバイスを監視し、エラーや問題を特定して分析します。GitLab では、接続された Kubernetes クラスタ内で実行中の Pod のログを簡単に見ることができる。GitLab でログを直接表示することで、開発者はコンソールツールを管理したり、別のインタフェイスにジャンプする必要がなくなります。

Kubernetes podログの表示の詳細

地理検知DNSのサポート

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

GitLab Geoの詳細

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

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

GitLabの検索機能の詳細

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

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

グループの詳細

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

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

GitLab Flavored Markdownの詳細

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

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

プロジェクト作成の詳細

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

it is now possible to honor the SAML provider's assurance level, allowing to disable the two-factor authentication on GitLab side via a new SAML configuration option

SAML OmniAuth Providerの詳細

二要素認証(2FA)を強制

二要素認証を有効にすると、パスワードでの認証に加えて二番目の認証が必要となるので、あなたのアカウントを安全にできます。たとえあなたのパスワードが侵害されても、二番目の認証があなたのアカウントを守ってくれます。二段階認証を強制することで、すべてのユーザーに二段階認証を使用させることができます。

GitLabで2FAを強制の詳細

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

プロジェクトの詳細

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

Interactive web terminals allow you to connect to a running or completed Kubernetes, Docker, or Shell runner job and manually run commands to better understand what's happening in the system.

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

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

GitLab インスタンス用のカスタムの `LICENSE`, `gitignore`, `Dockerfile`, `gitlab-ci`, `.gitlab-ci.yml` テンプレートを定義して、一貫性を容易にします。

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

グループファイルテンプレート

グループのカスタムの `LICENSE`, ` .gitignore`, `Dockerfile`, ` .gitlab-ci.yml`テンプレートを定義し、一貫性を容易にします。

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

コード所有者

ファイルにコード所有者を割り当てて、 `CODEOWNERS` ファイルを使用してプロジェクトのコードを担当するチームメンバーを指定します。コード所有者はマージリクエストの承認者として自動的に割り当てられ、必要に応じて設定し、ファイルを表示するときにそれらを表示できます。

コード所有者の詳細

保護された環境

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

保護された環境の詳細

Leverage virtual package repositories to simplify package management workflows.

A virtual repository is a collection of local, remote and other virtual repositories accessed through a single logical URL.

GitLab Epic detailing the issues required to add this functionality.

Proxy remote package registries for safer, more reliable builds.

For many organizations, it is useful to have a caching proxy for frequently used upstream packages. In the case of CI/CD, the proxy is responsible for receiving a request and returning the upstream package from a registry, acting as a pull-through cache to speed up your pipelines.

依存性プロキシの詳細

Conan (C/C++) Repository

Conan は、開発者がネイティブバイナリを作成, 共有するためのオープンソースの分散型 C/C++ マルチプラットフォームパッケージです。

Documentation on the Conan Repository

Maven (Java) Repository

GitLab の Maven リポジトリにより、組織全体での Java ライブラリの公開と共有が簡単になり、依存関係が正しく管理されるようになります。認証と承認を含め、GitLab と完全に統合されています。

Maven リポジトリのドキュメント

NPM (node) Registry

GitLab の NPM リポジトリにより、組織全体で NPM パッケージを公開および共有しやすくなり、依存関係が正しく管理されるようになります。認証と承認を含め、GitLab と完全に統合されています。

NPM リポジトリに関するドキュメント

NuGet (.NET) Repository

GitLab's NuGet Repository allows C#/.NET developers to create, publish and share packages using the NuGet client or visual studio.

Documentation on the NuGet Repository

PyPI (Python) Repository

Python developers can set up GitLab as a remote PyPI repository and build, publish, and share packages using the PyPI client or GitLab CI/CD.

Check out the epic for additional details on implementation and timing

RPM (Linux) Repository

This planned feature will enable Linux developers to build, publish and share RPM packages alongside their source code and pipelines.

Check out the issue for additional details on implementation and timing

Debian (Linux) Repository

This planned feature will enable Linux developers to build, publish and share Debian packages alongside their source code and pipelines.

Check out the issue for additional details on implementation and timing

RubyGems (Ruby) Repository

This planned feature will enable Ruby developers to setup GitLab as a remote RubyGems repository and to build, publish and share packages using the command line or GitLab CI/CD. This will also be a valuable feature for GitLab and help with [dogfooding](https://about.gitlab.com/handbook/values/#dogfooding)

Check out the issue for additional details on implementation and timing

Go Repository

This planned feature will enable Go developers to build, publish and share their packages right alongside their source code and pipelines. This will also be a valuable feature for GitLab and help with [dogfooding](https://about.gitlab.com/handbook/values/#dogfooding)

Check out the issue for additional details on implementation and timing

Composer (PHP) Repository

This planned feature will enable PHP developers to build, publish and share their packages right alongside their source code and pipelines.

Check out the issue for additional details on implementation and timing

Use the Package Registry through REST API

Enables support for automation and integration of the GitLab Package Registry through a REST API.

Documentation on API

フォークしたリポジトリの Git オブジェクトに関する重複排除

Git オブジェクトをプールすることで、フォークネットワークに関するディスクストレージ要件を削減します。

オブジェクトプールの詳細

Trigger pipeline on any event in code repository

Enables pipelines/workflows to be started based on when any defined event is executed in the code repository. For example, could run a workflow to send a welcome email on adding a new member to a repository or project.

Docs on GitLab triggerable events

Trigger pipeline on any event in code repository app eco-system

Enables pipelines/workflows to be started based on when any defined event is executed in the code repository or in any app extension of that repository's eco-system. For example, when an event happens in the Slack integration, update a repo work item.

Community powered workflows (configuration is code so are shareable)

GitLab pipeline (workflows) are defined as yml in repos and can be shared just like actions.

Any platform, any language, and cloud

Can run on any OS platform, for any language, and on any cloud provider

No configuration, infrastructure setup, or patching necessary

As a SaaS offering, can provide software development and delivery services without the need to set up the tool itself, infrastructure to run it, and to maintain it by patching.

Pipeline defined in one file kept in the repository

The pipeline/workflow can be fully defined by a single file which is kept in the code repository right next to the code it is meant to execute on.

Store CI configuration outside the repository

Specify the path of the .gitlab-ci.yml as an arbitary URL to store CI configurations in a repository other than the one being built. This allows for processing hundreds of repos the same way by pointing all of them to the same external gitlab-ci.yml file, and gain efficiency by having only one CI configuration file to update for multiple repositories. Use cases where a service generates the configuration file dynamically would also benefit. The ability to host the .gitlab-ci.yml file in another project enables CI configurations access control in a scalable way as the owners of the project hosting the file could restrict write access to prevent changes by unauthorized users.

分所

Auto suggest pipelines to start with based on code language

Through language detection, auto suggest pipeline templates to run to help users quickly get a pipeline running.

Comes with many pre-defined pipelines

Offers many pre-defined pipelines that capture best practice and make it easy for a user to get started with each project for common languages, platforms, and configurations.

Connects the diff tools & services used during the SDLC

Can be used as a central glue to orchestrate, and connect data and outputs from your many different tools & services.

Matrix builds

Built-in ability to define and execute builds that automatically trigger a number of parallel jobs or pipelines based on a multitude of input variables. For example, building for 3 OS's at once, and for 3 different versions of libraries, would automatically be done in 9 parallel jobs. At GitLab, this is implemented using dynamic child pipelines.

Learn more about child/parent pipelines

Run shared Linux runners

Ability to run runners on a pool of shared Linux systems from the SaaS offering.

Run shared Windows runners

Ability to run runners on a pool of shared Windows systems from the SaaS offering.

in beta

Run shared macOS runners

Ability to run runners on a pool of shared macOS systems from the SaaS offering.

Pipeline status visible in pull/merge request

Status and results of pipeline runs are viewable at least in summary from the merge/pull request that they are part of.

Live streaming of logs from running pipeline

Ability to see live job logs (while the pipeline is running).

Search across all job logs

Search across all or more than one job log at once. Enables more efficient search for errors and other content of interest while troubleshooting or reviewing job output.

Download archive of all logs

Ability to download an archive of all job logs from a pipeline run in a single archive file. This is handy to enable analysis of the logs through another tool, or to send logs to someone who might not have access otherwise.

View raw logs in plaintext

Ability to get the plain text of a log, no mark up, to be able to share it or use it externally.

Multiple pipelines per repo

Ability to define multiple pipelines per code repository to enable either different processes to be run at different times, and/or to enable monorepos where there are multiple applications within one repo which need to be built and handled differently per application.

Reference actions/jobs in another repo

Ability to have pipelines/workflows reference and use actions/jobs from a repo different from the one it is being run from, without needing any installation.

Cross-project jobs with artifact dependencies

Specify a job in your current project depends on the latest artifact produced by a job in another pipeline to easily set up cross-project pipelines that have artifact dependencies on each other.

分所

Parent-child pipelines

When one pipeline serves as a parent of one of more child pipelines, it removes many of the challenges of complex pipeline creation. Performance can be improved because child pipelines can run concurrently based on trigger configurations in the parent pipeline. As an added bonus, decomposing a single, complex, pipeline into a parent pipeline with multiple children simplifies pipeline visualization and ultimately improves comprehension for the entire team. It is also possible to dynamically generate the `.gitlab-ci.yml` for the child pipeline, making it easy to implement runtime behaviors in a clear way.

分所

S/MIME Signed Commits

署名コミットを使用すると、特定のユーザーによってコミットされたことを証明できます。

Read more about S/MIME signed commits

Static Site Editor

GitLab provides an easy way to collaborate on HTML content through the Static Site Editor. A collaborator doesn't need to set up a local environment to contribute to the content nor have any prior knowledge of the underlying templating language, site architecture, or even Git. The Static Site Editor is currently delivered through a Middleman project template.

Learn more about the Static Site Editor