GitLab 8.12がリリースされました

プロジェクトのサイズに関係なく、ツールは次のことを行う必要があります。







a。 仕事で快適に

b。 有用なフィードバックを提供します。

今月は、GitLabがこれらの各点で改善されました。 GitLab 8.12は、作業の有効性に関するフィードバックを提供し、コードベース全体で適切なコードを見つけるのに役立ち、ワンクリックでワークフローを保護でき、さらに多くのことができます。









今月のMVP( Most Valuable Person )はJames Munnellyです。彼はKubernetesをGitLab CI統合しました 。 この機能により、KubernetesクラスターでCIテストを簡単に実行できます。 ジェームズはこのマージリクエストを約1年前に開き、レビューの結果に基づいて辛抱強く永続的に変更しました。







ジェームズありがとう!







ソフトウェア開発サイクル分析(サイクル分析)



会話型開発(convdev)の最初の原則は、ソフトウェア開発サイクルの時間、つまりアイデアが実現され、実稼働にリリースされる時間を短縮することです。 サイクル時間が短いほど、チームの効率は高くなります。







GitLab 8.12では、チームの平均サイクル時間を示すツールであるCycle Analyticsを実装しました。







GitLab 8.12のサイクル分析







サイクル分析は、開発サイクルの期間を個別のステップに分割して表示するため、改善が可能な場所を確認し、開発時間を正確に予測できます。







サイクル分析ページは、各プロジェクトの[パイプライン]タブにあります。







サイクル分析の詳細。


グローバルコード検索(EE)



GitLab Enterprise EditionでElasticsearchが構成されている場合、すべてのプロジェクトをコードで一度に検索できます。







GitLab EE 8.12でのグローーバルコード検索







以前と同じ方法で検索を使用します。 GitLabにアクセスできるすべてのプロジェクトの結果が表示されるようになりました。







この機能にはElasticsearchインデックスの再構築が必要であることに注意してください。

詳細については、「バロメーターの更新」セクションをご覧ください。







リクエストバージョンのマージ



マージリクエストに新しいコミットを追加する場合、以前のコミットの1つとターゲットブランチの差分を確認することは非常に困難です。







GitLab 8.12でのリクエストバージョンのマージ







マージリクエストのトラッキングバージョンを使用すると、マージリクエストの以前の状態を確認し、以前のコミットをターゲットブランチまたは別のコミットと比較できます。







マージリクエストバージョンの詳細


機密情報(EE)の公開に対する保護



キーや証明書などの機密情報のコミットは、非常に重大なエラーです。 このデータは、リポジトリを複製できるすべての人に送られます。情報を侵害するには、1つのリークで十分です。







残念ながら、これは頻繁に起こります。







たとえば、 git commit -am'' && git push



を書くと、その後にgit commit -am'' && git push



ます。







GitLabには、機密情報を含むコミットをブロックする新しいプッシュルールチェック(プッシュルール)があります。 チェックボックスをオンにすると、GitLabは.pem



.key



などの安全でないファイルのコミットを許可しません。







GitLab EE 8.12でレポ内の秘密を防ぐ







GitLab EEには、以前は正規表現でファイルをブロックする機能がありました。 これを使用して、フィルターに含まれていないもののブロックを構成できます。







プッシュチェックの詳細


アプリの確認(実験的機能)



GitLab CIにいくつかの変更を加えました。 一緒にいくつかの魔法を作成します。







CI変数で環境名を指定できるようになりました。 .gitlab-ci.yml



で環境設定のURLを指定することもでき.gitlab-ci.yml



。 これら2つの機能を合わせて、Review Appsの最初の反復の基礎を形成します。







レビューアプリは、各ブランチのコードがデプロイされる環境を自動的に作成します。 これは、各マージ要求に作業環境が自動的に割り当てられることを意味します。







この機能のアイデアはHeroku Review Appsからとられ、 HerokuFourchetteからそれを借りました。







これらの小さな革新は、ワークフローに大きな影響を与える可能性があります。 作業環境があると、アプリケーションのあらゆる側面(パフォーマンスからユーザーインターフェイスまで)のレビューが容易になります。







現時点では、アプリのレビュー機能は実験的であると見なされます。これは、環境が不要になったときにまだ自動的に破棄されないためです。







現在、レビューアプリの例を含む新しい記事書いています。







SSHを介したLFSでの承認



SSHを介してプッシュすることに慣れている場合、LFSを使用するたびにユーザー名とパスワードを入力するのは少しイライラするでしょう。







GitLabは、LFSを使用するときにSSHキーを使用するようになりました。 つまり、SSH経由で接続するLFSを使用する場合、識別用のデータを手動で入力する必要がなくなりました







LFSファイル転送は引き続きHTTP経由で行われます。







LFSの有効化と無効化



Git LFS(大容量ファイルストレージ)は優れていますが、この機能を使用すると、その名が示すとおり、大量のディスク領域が必要になる場合があります。 ディスク領域の無駄遣いを軽減するために、GitLabインスタンス全体、プロジェクトのグループ、または特定のプロジェクトでLFSをオンまたはオフにできます。







プロジェクトサイズ制限(EE)



LFSのサイズを制限することに加えて、プロジェクトの最大サイズを制限できるようになりました。 制限はすべてのリポジトリデータとLFSオブジェクトに適用され、制限を超えるコミットは停止します。







GitLab EE 8.12でプロジェクトサイズを制限する







管理者は、グローバル制限を設定し、グループおよびプロジェクトレベルで再定義できます。 したがって、追加のスペースを特定のプロジェクトに割り当てることができます。







詳細については、 リポジトリサイズ制限のドキュメントを参照してください


LDAP / Active Directoryの機能強化



このリリースでは、GitLab CEおよびEEのLDAP / Active Directoryサポートにいくつかの機能強化が追加されています。









SSHを介した2要素認証トークンの回復



これで、SSHを使用して2要素認証コードを回復できます。 盗難が発生した場合のアカウントの復旧は簡単になりましたが、システムのセキュリティの全体的なレベルは低下していません。







詳細については、 SSHを介した2要素認証の復元に関するドキュメントを参照してください


名前タグフィルター



タグをすばやく見つけたいですか? これには、ページ上部の新しい便利なフィルターを使用します。







GitLab 8.12で名前でタグをフィルターする







APIの追加



GitLab 8.12では、APIを拡張しました:









GitHubによる改善されたインポートツール



GitHubのインポートツールはどんどん良くなっており、GitLabへの移行が容易になっています。 GitLab 8.12では、インポートツールはリリースノートをGitLabにコピーし、プロジェクトをインポートするネームスペースを選択することもできます。







GitLab 8.12のGitHubインポーターの改善







GitLabに既にプロジェクトがある場合、またはGitLabのデフォルトのインポート動作とは異なる何かが必要な場合、これにより移行プロセスが容易になります。







詳細については、GitHubからのリポジトリのインポートに関するドキュメントを参照してください。


一括マージ要求管理



これで、複数のマージリクエストを一度に編集できます。 ステータス、ステージ(マイルストーン)、ラベル、説明、またはマージリクエストが割り当てられている開発者など、複数のマージリクエストを同時に変更できます。







GitLab 8.12でのマージリクレストの一括更新







多くのマージ要求を伴うプロジェクト管理がはるかに簡単になります!







ビルドのグループ化



同様のビルドが多数ある場合、パイプラインスキームは非常に長くなります。 外観を改善するために小さな変更を加えました。同様のビルドは自動的に互いにグループ化されます。







GitLab 8.12でグルーープ化を構築する







拡張構文の強調表示



rouge 2.0.6への切り替えにより、JSX、Prometheus、mxml、1C(1C、Karl!)、Turtle / trig、vhdlの構文強調表示、およびSwift 3の強調表示の改善が追加されました。







主力製品での歩tryの統合



GitLab-Workhorseは、アプリケーションエラーをSentryに送信できるようになりました。







詳細については、 GitLab-Workhorseのドキュメントをご覧ください


Gitlabランナー1.6



本日、GitLab Runner 1.6もリリースします。 キーポイント:









変更の完全なリストについては、 ランナーの変更ログファイルを参照してください。







GitLab Mattermost 3.4



Mitトラッカー、シェフ、アンシブル、ユノホスト。







パフォーマンスの強化





アセンブリ許可の変更



GitLab 8.12は、ビルド許可に重要な変更をもたらします







アセンブリのアクセス権は、このアセンブリを起動したユーザーのアクセス権と密接に関連する必要があると判断しました。 次の理由があります。









これで、ユーザーが起動したアセンブリには、このユーザーのアクセス権が付与されます。 ユーザーがgit push



か、ユーザーインターフェイスを介してファイルを変更すると、新しいパイプラインが作成されます。 このパイプラインは、プッシュを行ったパイプラインに属し、このパイプラインで作成されたビルドには、プッシュを行ったパイプラインへのアクセス権があります。







これにより、アセンブリの作成者がアクセスできるすべての依存プロジェクトおよびコンテナイメージへのアクセスを促進するプロセスを促進できます。 アクセス権は、アセンブリの期間中のみ許可されます。 アセンブリが完了すると、アクセスが取り消されます。







アセンブリのアクセス許可とこれに関連する変更の詳細については、ドキュメントを参照してください







この変更の歴史と理由に興味がある場合は、 関連記事で詳細な説明を読むことができます。







CIのサブモジュール



サブモジュールは、アセンブリのアクセス許可を再設計した理由の1つです。 CIビルドでサブモジュールを使用するのがはるかに簡単になりました。







サブモジュールを使用するには、次のような.gitmodules



ファイルが必要です。







 [submodule "tools"] path = tools url = git@gitlab.com/group/tools.git
      
      





サブモジュールに新しいアセンブリ権限を使用するには、URLを相対的なものに変換する必要があります。







 [submodule "tools"] path = tools url = ../../group/tools.git
      
      





これにより、Gitはプロジェクトソースへのアクセスと同じユーザー名とパスワードを使用するようになります。







最後のステップは、GitLab CIにサブモジュールの収縮を指示することです:







 before_script: - git submodule update --init --recursive
      
      





サブモジュールのサポートの詳細については、 ドキュメントをご覧ください。







その他の変更



このリリースには、さまざまなセキュリティ修正を含む他の多くの変更があります。 すべての変更を確認するには、変更ログを参照してください。







バロメーターの更新



このリリースでは、外部キーが追加され、列の種類が変更され、一部の列がテーブル間で移動されるため、追加の時間が必要になります。 大規模なインスタンスの移行プロセス全体には、最大30分かかります。 小規模な場合、遅延は約10〜15分と想定されます。







(EEのみ)Elasticsearchの再インデックス付け



親子関係を使用して、リポジトリのElasticsearchインデックスを再設計しました。 ESインデックス全体を完全に再構築する必要があります。 Elasticsearch 2.3.xには、ハイライト機能と親子関係を同時に使用するすべてのリクエストが失敗するバグも含まれているため、バージョン2.4以降を使用することをお勧めします。 GitLab 8.12にアップグレードした後、古いインデックスを削除して新しいインデックスを再構築する必要があります。







古いインデックスを削除するには、Elasticsearchに次のリクエストを行います。







 curl -XDELETE 'http://localhost:9200/gitlab-production/'
      
      





次に、 Elasticsearch統合ドキュメントの説明に従って、新しいインデックスを再構築します







Rubyアップデート



以前のリリース投稿で、 GitLab 8.13でのRuby 2.1.xのサポートが中止されると述べました。 私たちは心を変えて、近い将来Ruby 2.1.xのサポートをやめません。







ソースからインストールを実行する場合は、Ruby 2.3にアップグレードすることをお勧めします。これはOmnibusに付属しているのと同じバージョンです。







高度なユーザーデータ送信(EE)



製品の使用例に関する詳細情報を提供するために、GitLab 8.12 EEは追加データをサーバーに送信するようになりました。







ユーザー情報(プロジェクト名、コメント、ファイルの内容など)は収集しません。 送信されたデータは管理者設定で表示できます。必要に応じて、この機能をオフにすることができます。







詳細情報-関連するマージリクエスト内


GitLab-Workhorse Secret Key



GitLab-Workhorseは、秘密キーを使用してGitLab Railsアプリケーションに送信されるメッセージに署名するようになりました。 これまでのところ、これは主に構成の検証です。 将来のリリースでは、信頼を確認するためにこの秘密キーを必要とする機能をGitLab-Workhorseに追加したいと考えています。







Omnibusを使用している場合、または公式のinit.dスクリプトを使用してGitLabをソースからインストールした場合、秘密キーが自動的に生成およびインストールされます。 init.dスクリプトを使用する場合、またはGitLab Inc.によって作成されていないパッケージを使用する場合は、 -secretPath



オプションをGitLab-Workhorseに設定する必要があります。







もう一つ



最新バージョンからアップグレードすることを想定しています。 そうでない場合は、スキップする中間バージョンの「更新バロメーター」を確認してください。 GitLabバージョン8.0からアップグレードしていて、CIを有効にしている場合は、最初にGitLab 8.0にアップグレードする必要があります







元のOmnibusパッケージは、更新がどれだけ「大きい」か「小さい」かに関係なく、停止し、移行を開始し、再び開始することに注意してください。 この動作を変更するには、ファイル/etc/gitlab/skip-auto-migrations



追加します。










設置



GitLabをゼロからインストールする場合は、 該当するセクションをお読みください。







更新する



私たちのアップデートをお楽しみに。







エンタープライズ版



GitLab Enterprise Editionには、LDAPグループのサポートなどの追加機能が含まれています。 詳細については、

GitLab EEの説明







GitLab EEはサブスクリプションでのみ利用可能です。







新しいツールをインストールして構成するのに十分な時間がありませんか? サブスクリプション価格には、サーバーにGitLabをインストールおよび更新するためのサービスが含まれています。










英語からの翻訳は、翻訳チーム「Brain and Partners」、 http: //nadmosq.ru、nick_volynkin、rishavant 、およびcheburequeによって行われました。








All Articles