この記事はGitLabリリース記事の翻訳です。 リリースは毎月22日にリリースされます。
前のものを逃した場合、ここにリンクがあります: 8.10、8.9、8.8
新しいGitLab 8.11には非常に多くの興味深いものがあるため、建設的な物語の枠組みで自分を抑えることはほとんどできません!
そのため、新しいバージョンで登場しました:
- チケット(問題)を提示および操作する根本的に新しい新しい方法。
- チケットを操作するためのスラッシュコマンド(
/command
)。 - (無制限の数量で)チケットテンプレートを作成する機能。
- オンライン開発環境。
- GitLabを離れることなくマージの競合を解決する機能。
- 個々の参加者およびグループのブランチにプッシュする権限を設定します(EEのみ)。
- ...およびその他の多くの機能についても説明します。
今月のMVPはClement Hoです。 マージリクエストとタスクの作業における応答性について彼に感謝します。
チケットボード(発行ボード)
GitLabの問題は非常に柔軟なツールです。 それらには相互のリンクを含めることができ、優先順位を指定したり、人気順に並べ替えることができます。 チケットボードは、彼らと働く新しい方法を追加します。
これで、ワークフローを設定し、チケットのステータスに関する情報をすばやく取得できます。 これらはすべて、かんばんやスクラムで使用されているものと同様のシンプルで快適な黒板で利用できます。
ボードはプロジェクトごとに自動的に作成されます。 デフォルトでは、すべてのオープンチケットがバックログを形成し、すべてのクローズチケットが完了リスト(完了リスト)に表示されます。
新しいリストを追加することにより、新しいワークフローを作成します。 チケットのメンバーシップは、ラベルによって決定されます。 チケットがリストに追加されると、それに対応するラベルが追加され、リストから削除されると、ラベルが削除されます。
、バック
、
などのタグを使用していた場合は、それらのリストを作成します。 チケットは自動的に表示されます。 そして、もちろん、チケットは複数のリストに属することができます。
この機能の動作を確認するには、GitLab CEボードバージョン8.12をご覧ください。
チケットボードのドキュメント
合併紛争解決
大規模で活発に開発されたプロジェクトのMerzhiは通常、多くの問題を引き起こします。 組み込みの競合解決ツールが必要です。 そのため、GitLabインターフェースで直接行うことができます。
競合によってマージがブロックされた場合、「これらの競合を解決する」ボタンをクリックして、解決インターフェイスに移動するだけです。 そこで必要な行を選択し、結果をコミットできます。
もちろん、これはすべての競合を解決することはできません。 しかし、ほとんどの場合、このツールがマージリクエストのスピードアップに役立つことを願っています。
紛争解決ドキュメント
特定のユーザーのブランチ許可(EEのみ)
Enterprise Editionでは、ユーザーのサブグループ( developers
やowners
)だけでなく、特定のユーザーに対しても、ブランチにプッシュまたはマージする権限を構成できます。
新しい設定は、サブグループの権限など、他の機能と組み合わせることができます。 たとえば、PetlおよびMasha timlidのみがブランチに直接プッシュすることを許可できますが、 developer
レベル以上のすべてのメンバーに対するこのブランチへのマージリクエストを確認できます。
各アクション(プッシュおよびマージ)について、任意の数の許可ユーザーを構成できます。
ブランチ許可ドキュメント
マージリクエストのコメントを「閉じる」。
マージリクエストには、混乱する可能性のある長いコメントスレッドがあります。 しかし、それらはそれぞれ重要です。
コメントまたはブランチ全体を処理済みとしてマークして閉じる機能を追加しました。
マージリクエストには、オープンディスカッション用のカウンターと、次のオープンディスカッションに移動するための便利なボタンもあります。
マージリクエストのディスカッションを閉じるためのドキュメント
コンベアのスキーム。
GitLabパイプラインは、多くのシリアルアセンブリとパラレルアセンブリを持つかなり複雑な構造を持つことができます。 これで、特定のコンベヤーの図を見て、その構造と状態を表示できます。 このようなスキームは、その中で発生するプロセスを明確に示しています。
マージリクエストページまたはコンベヤのリストでコンベヤをクリックするだけです。 このパイプラインの図には、完了、失敗、アクティブ、および保留中のアセンブリが表示されます。
チケットおよびマージリクエストテンプレート。
テンプレートを使用してチケットを標準化し、リクエストをマージする機能は、すでにGitLab Enterprise Editionにありました。 GitLab 8.11以降、多くのテンプレートが存在する可能性があります。たとえば、1つはエラー用で、もう1つは文用です。 そして、チャンス自体はすべてのバージョンにあります:GitLab.com、GitLab CE / EE。
テンプレートはMarkdownマークアップで記述され、リポジトリの.gitlab/issue_templates
および.gitlab/merge_request_templates
。
この機能の目的は、文、エラーメッセージ、およびマージ要求の外観と完全性を改善することです。
テンプレートのドキュメント
スラッシュコマンド
GitLabには、IRC、HipChat、Mattermost、またはSlackのように、スラッシュコマンド( /command
)が追加されました。 キーボードから手を離さずに、ラベルの変更、アーティストの割り当て、チケットのサブスクライブとサブスクライブ解除など、さらに多くのことができます。 チームは、コメントのほか、チケットまたはマージリクエストの説明で作業します。
それらの使用方法:
- コマンドを含むテキストを入力します(必要に応じて、キーボード、テンプレート、APIから)。
- コメントの送信、チケットまたはリクエストの保存を確認します。
- コマンドが実行され、テキストに表示されなくなります。 コメントがチームのみで構成されている場合、実行されますが、公開されません。
新しいチケットまたはリクエストを作成する場合でも、スラッシュコマンドを使用できます。
複数のコマンドが順番に指定されている場合、それらすべてが実行されます。
スラッシュコマンドの使用方法に関するいくつかのアイデア:
- チケットまたはマージリクエストからのアラートに対応するレター内(レターのテキストはコメントになります)。
- チケットまたはマージリクエストテンプレート。
- notes APIを介して 。
私たちは、あなたが使用する他の方法が発明するものについてのあなたの物語を楽しみにしています。
スラッシュドキュメント
Kodingとの統合
Kodingを使用すると、クラウドで開発環境を実行し、チーム全体でこの環境に同じ設定を使用し、ローカルエディターを使用することもできます。 これにより、新しいコンピューターごとに変更を加えても、スタックのインストールと構成に時間を費やす必要はありません。
バージョン8.11以降、GitLabはKodingとの統合をサポートしています。 これで、ボタンを押すだけで、プロジェクト全体または個別のマージリクエストをポンプアウトして、本格的なクラウドIDEで開くことができます。 (キットの統合はまだGitLab.comに追加されていないことに注意してください)。
Admin>アプリケーション設定でKodingサポートを有効にします
プロジェクトで動作するようにKodingをセットアップします。
そしてそれだけです! これで、プロジェクトのマージリクエスト、ブランチ、およびコミットを、完全なIDEにすばやく収縮できます。
Koding + GitLabバンドルの操作を示す短いビデオを用意しました:
GitLabでのKodingの詳細については、 ドキュメントを参照してください。
リクエストコンベヤーの統合
パイプラインがマージリクエストに表示されるようになりました。
コンベアをクリックすると、その図とそれに関連するビルドが表示されます。
マージリクエストの展開ステータス表示
環境のURLを指定できるようになりました。
これにより、GitLabはマージ時にデプロイメントが自動的に発生する場合に、マージリクエストのデプロイメントステータスを表示します。
マージに成功すると、GitLabはデプロイメント環境へのリンクを表示します。これにより、マージ要求の結果をワンクリックで確認できます。
パイプラインのWebフック
GitLabパイプラインとの統合を簡素化するために、それらにWebフックを追加しました。 パイプラインが作成、開始、またはシャットダウンされるときに機能します。
Webフックを追加するには、プロジェクトの[設定]メニューから[ Webhooks
]を選択します。
コードの強調表示と非表示
GitLabエディターは強調表示をサポートし、コードブロックを非表示にできるようになりました。
プッシュのマージリクエストへのリンク
現在、GitLabにプッシュすると、マージリクエストの作成へのリンクと、現在のリクエストに関連するすべてのマージリクエストへのリンクが表示されます。
テストカバレッジアイコン
これで、プロジェクトのテストカバレッジを示すアイコンを作成できます。
GitLabでカバレッジマッピングを使用していない場合は、パイプライン設定でそれを有効にします: pipelines/settings
テストカバレッジアイコンのドキュメント
プロジェクトへのアクセスに関する一時的な制限
単一のユーザーまたはグループにプロジェクトへのアクセスを許可する場合、特定の日付を設定してから、プロジェクトへのアクセスをそれらのユーザーまたはグループに閉じることができるようになりました。
これにより、一時的なチームメンバーの権限を簡単に操作できます。
シャード間でプロジェクトを移動する(EEのみ)
GitLab 8.10では、複数のマウントポイントが追加されました 。
GitLab 8.11では、rakeコマンドを使用してシャード間でプロジェクトを移動する機能が導入されました。 この機能は頻繁に使用するためのものではありませんが、新しいシャードをテストしたり、頻繁に使用するプロジェクトをすばやくアクセスできるリポジトリに移動したりする場合に役立ちます。
パフォーマンスの強化
このリリースでは、生産性の向上を目的とした多くの変更が導入されました。マージリクエストとその差分はさらに高速です。 以下は、GitLab.comにGitLab 8.11 RC2を展開した後のパフォーマンスの違いを示すグラフです(パフォーマンスの低下は展開に当たります)。
マージリクエストの差分読み込み時間:
差分を表示するときに実行されたSQLクエリの数:
差分を表示するときにSQLクエリの実行に費やした時間:
コンベヤーのパフォーマンスも大幅に改善されました。
以下は、改善点と関連するマージリクエストの詳細なリストです。
機能強化
- ユーザーが複数のチケットを表示できるかどうかを確認するプロセスが改善されました:! 5370
- 最大ユーザーアクセスレベルをチェックするプロセスが改善されました:!5412
- CIグラフを表示するSQLクエリの数を減らしました:!5502
- 使用するコマンドの数を減らし、バージョン番号の並べ替えを高速化することを目的とした、GitでGitLabを操作するための改善が追加されました:!5536 ,! 5375
- 追加の選択を避けるために、Sidekiqトランザクションごとにコミット作成者に関する情報がキャッシュされるようになりました!! 5537
- マージ要求の差分の表示に使用されるクエリの数を減らしました:! 5551
- 差分セットに対する反復の改善:! 5564
- 差分統計のみに依存するメソッドのパフォーマンスの改善:! 5568
- テキストBLOBの不要なチェックを削除することで、差分を作成する生産性が向上しました!! 5575
- 差分を作成するときに不要なメソッド呼び出しを削除しました:! 5591
- diff noteアクティビティチェックの改善:!5597
- チケットトラッカーへのリンクを作成するプロセスを改善しました:! 5608
- Markdownドキュメントのリンク解析パフォーマンスの改善:! 5629
- Markdownドキュメントのコードブロックの構文強調表示の改善:! 5643
- Markdownドキュメントのキャッシュキー生成プロセスの改善:! 5715
- Gitタグのソートプロセスの改善:!5723
-
ci_runners
テーブルのci_runners
グラムインデックスを削除(PostgreSQLのみ)ci_runners
5755 -
DiffHelper
コミットフェッチのDiffHelper
5756 - 削除されたデータベースの45個の冗長インデックス:!5759
- Todoカウンターのリバースキャッシュが追加されました:! 5789
- ToDoリストリクエストで使用されるプロジェクトの数を減らしました:!5791
- サイズが2メガバイトを超えるSVG画像は表示されなくなり、ダウンロード時間とメモリ使用量が削減されます:!5794
- Markdown sanitizationフィルターのメモリリークを修正しました:! 5808
- チケットを移動できるプロジェクトのリストを示すドロップダウンメニューの表示が変更されました-完全なリストを表示する代わりにページネーションが使用されるようになりました:!5828 ,! 5686
- 不要なGit Blobの検出を担当するメソッドの呼び出しを削除しました:! 5848
- チェリーの選択ダイアログおよび元に戻すダイアログのブランチのドロップダウンメニューの非同期読み込みが追加されました:! 5607
- todoを完了済みとしてマークするために使用されるクエリの改善:!5832
- gitlab_gitをバージョン10.4.7に更新して、このバージョンのライブラリで見られた改善を使用します:!5851
- Enterprise EditionのGitアクセスチェックの改善:!647
-
geo_nodes
テーブルの不要なインデックスを削除しgeo_nodes
639 - Ace Editorは必要な場合にのみロードされるようになり、使用されるJavaScriptのサイズがほぼ100キロバイト削減されました:!4914
新機能
- Sidekiqは、いくつかのトランザクションオブジェクトをキャッシュするようになりました。 このオプションはデフォルトで有効になっていますが、環境変数で無効にできます:!5054
- GitLabは、要求を処理するときにruby-profを使用できるようになり、後で表示するためにプロファイリングデータをディスクに保存できます。 この機能を使用するには、ヘッダーにトークンを定義する必要があります:!5281
- GitLab Performance Monitoringを使用してカスタムイベントを追跡する機能が追加されました。 たとえば、プッシュの数、プロジェクトの分岐など: !5830
計装
- Nokogiri :! 5470が装備
- メソッド呼び出しのインスツルメンテーションの不必要な負担を軽減:!5550
-
Repository
クラスが装備されましたRepository
5621 -
Gitlab::Highlight
によるGitlab::Highlight
5644 -
Project.visible_to_user
2回目の再紹介Project.visible_to_user
5793
GitLab Mattermost 3.3
GitLab 8.11には、 Mattermost 3.3 ( Slackのオープンソースアナログ)が付属しています。
Mattermost 3.3は、中国語、韓国語、オランダ語のローカライズを追加しました。Goのボットです 。
投稿にフラグを立てる機能、 @here
の形式の言及など。
さらに、このバージョンのMattermostにはいくつかのセキュリティ更新プログラムが含まれているため、更新することを強くお勧めします。
Redis Sentinelのサポート
GitLabにRedis Sentinelの実験的なサポートが追加されました。
ドキュメントのすべての詳細
その他の変更
このリリースには、さまざまなセキュリティ修正を含む、他の多くの改善が含まれています。 変更の完全なリストはChangelogで入手できます。
バロメーターのアップグレード
GitLab 8.11へのアップグレードには、データベースの移行が原因でダウンタイムが必要になります
GitLab.com Webサイト(既知のGitLabインスタンスの最大のもの)のダウンタイムは15〜30分でした。 インスタンスのデータ量によっては、ダウンタイムが短くなる場合があります。
移行の1つは、いくつかのテーブルのいくつかの列を削除します(GitLabインスタンスは、アクセス中にこのデータが消えないように最小化する必要があります)。
他の2つの移行では、新しいテーブルが作成され、システムに既に存在するデータに基づいて情報が書き込まれます:この場合、追加されたデータが移行プロセス中に変更されないようにダウンタイムが必要です(8.11の展開が完了するまで変更されないままです)。
最後に、別の移行により2つの外部キーが追加されます。ここでは、可変データへの同時アクセスがないことを保証するためにダウンタイムが必要です。
Depy Ruby 2.1
このリリースでは、Rubyをバージョン2.3にアップグレードしました。
手動インストールの場合、Rubyを2.3にアップグレードすることを強くお勧めします。 Omnibusを使用してGitLabをインストールすると、Ruby 2.3が自動的に使用されます。
Ruby 2.1および2.2のサポートは、GitLabバージョン8.13で完全に廃止されます。
他の人よりも早く更新した人向け
リリース直後と再構成プロセス中に8.11にアップグレードした場合、 undefined method merge! for nil:NilClass
エラーを受け取りましたundefined method merge! for nil:NilClass
undefined method merge! for nil:NilClass
場合、より新しいバージョン.1: 8.11.0-ce.1
新しいパッケージをダウンロードします。
apt-get update
とapt-get install gitlab-ce
/ apt-get install gitlab-ee
をapt-get install gitlab-ee
、すべてがapt-get install gitlab-ee
に修正されます。
GitLab APIおよびGit over HTTPを使用する場合の強制的な2要素認証
二要素認証を有効にしていて、OAuth2の/sessions
またはリソース所有者パスワード認証情報フローのメソッドを介してAPIトークンを取得しようとすると、ログインできません。 このような場合にログインを成功させるには、パーソナルアクセストークンを使用する必要があります。
個人用アクセストークンの詳細
Elasticsearchのインデックスの再作成(EEのみ)
Elasticsearchインデックスの構造を変更し、親子関係を使用するようになりました。 これによりパフォーマンスは向上しますが、すべてのElasticsearchインデックスを完全に再構築する必要があります。 8.11にアップグレードした後、古いインデックスを手動で削除し、新しいインデックスを作成する必要があります。
古いインデックスを削除するには、Elasticsearchに次のリクエストを行います。
curl -XDELETE 'http://localhost:9200/_all/'
インデックスを再構築するには、 Elasticsearchと統合するためのドキュメントの手順に従います
注意上記は、以前のバージョン(8.10)からアップグレードする場合にのみ適用されます。 以前のバージョンからアップグレードする場合は、すべての中間バージョンの「バロメーターのアップグレード」セクションを確認してください。
8.0より前のGitLabのバージョンからアップグレードする場合で、CIを有効にしている場合は、 最初に8.0にアップグレードする必要があります 。
デフォルトでは、アップグレードプロセス中に、すべてのOmnibusパッケージが停止され、その後、すべての移行が実行されてから、再び開始されます。 この動作は、更新のサイズとは無関係です。 ファイル/ etc / gitlab / skip-auto-migrationsを作成することにより、この動作を変更できます。
設置
GitLabをゼロからインストールする場合は、対応するセクションをお読みください : https ://about.gitlab.com/installation/
更新する
更新手順: https : //about.gitlab.com/update/
エンタープライズ版
GitLab Enterprise Editionには、LDAPグループのサポートなどの追加機能が含まれています。 詳細については、 GitLab EEを参照してください。
GitLab EEはサブスクリプションでのみ利用できます 。詳細と価格はこちらで確認できます 。
新しいツールをインストールして構成するのに十分な時間がありませんか? サブスクリプション価格には、サーバーにGitLabをインストールおよび更新するためのサービスが含まれています。
PS更新する場合は、すぐに8.11.2にアップグレードしてください
PPS Chebureque 、 nick_volynkinおよび@ sgnl_0が翻訳に取り組みました