GitLab 10.7:GoおよびC / C ++向けのオープンソースWeb IDEおよびSASTレポートがリリースされました

注目を集める絵







開発者が毎日直面する標準的なワークフローは、すべて新しい機能の追加、変更の確認、コードの展開です。 このリリースのリリースでは、Web IDE、より柔軟なパイプライン、追加のセキュリティテストなどを使用して実装を簡素化します。









Web IDEは現在、オープンソースおよびオープンソースです



GitLabでは、すべてのメンバーがワークフローに貢献できるようにしたいと考えています。初心者であっても、gitを知り始めて最初のコミットに取り組んでいるだけでも、経験豊富な開発者が一連の変更をレビューする場合でもです。 開発環境のセットアップやブランチ間の切り替えなど、タスクをローカルで実行すると、開発プロセスが複雑になる可能性があります。 Web IDEを使用すると、ブラウザから直接ファイルの変更、コミット、変更の確認、Markdownのプレビューを行うことができます。 マージ要求の差分を開いて、並べて変更を視覚的に表示することもできます。 Web IDEはバージョン10.7と共有されており、ソースコードへのアクセス公開しています







展開トークン



コンテナを扱う組織にとって、レジストリはインフラストラクチャの重要なコンポーネントです。コンテナイメージへの簡単で安全なアクセスを提供するバージョン管理されたリポジトリです。 レジスタの一般的な用途は、Kubernetes( https://kubernetes.io/ )などのオーケストラプレーヤーに画像を提供することです。 同じKubernetesが初期展開中、ハースの再起動時、およびスケーリングプロセス中の追加ハースの追加時にコンテナイメージをプルするため、このシステムは常にレジスタにアクセスできることが重要です。







以前は、レジスタとリポジトリにアクセスする方法は2つしかありませんでした。 それらの1つはCI作業トークンで、作業中に一時的なアクセスを提供し、もう1つは個人アクセストークンで、特定のユーザーに無制限の時間アクセスを提供します。 トークンを使用すると、CI Kubernetesはシャットダウン時にアクセスできなくなるため、このオプションは炉床の再起動やスケーリングなどの繰り返しイベントには適していません。 個人用アクセストークンの使用には、短所もあります。特定のユーザーにアクセスを関連付ける必要があるか、ライセンスが必要な追加のアカウントの作成が必要です。







この問題を解決するために、継続的な読み取り許可を提供する展開トークンを作成しました。 Kubernetesは、展開トークンを使用して、特定のユーザーに縛られたり、不必要なアクセス権を取得したりすることなく、必要に応じて必要なすべてのイメージを取得できます。







変数ベースのCI / CDフロー制御



CI / CDサービスは、ソフトウェア開発プロセスの主要な駆動要素の1つです。 アセンブリ、テスト、展開などの基本的なタスクから、より創造的なタスクまで、多くのタスクを実行します。 実行されるタスクの範囲を考えると、ユーザーが特定の要件に対してのみ特定のジョブを開始できることが重要です。 GitLab CI / CDには、 実行フロー制御するための多数の設定が既に用意されていますが、ナイトリービルドなど、いくつかのシナリオがあり、設定がそれほど簡単ではありませんでした。







GitLab 10.7では、 特定の変数の値に基づいて作業を開始する機能を追加しました。 これにより、特定のスケジュールに関連する作業の開始やAPIのトリガーなど、新しいスクリプトを実行できます。







GoおよびC / C ++のSAST



完全なDevOpsプロジェクトの一部は、一流のセキュリティツールを提供することです。 静的アプリケーションセキュリティテストシステム(SAST)は、ソースコードの脆弱性を分析し、結果をマージリクエストウィンドウに直接表示します。 ただし、この分析を行うには、SASTで記述しているプログラミング言語のサポートが必要です。 このため、SASTにGoおよびC / C ++のサポートを追加しています。







ミーティングにご招待します!







GitLab MVPバッジ







MVP )今月- ロブ・ワトソン



Robは、 GitLab PagesのHTTP接続をHTTPSリダイレクトできるチェックボックスを追加しました。これにより、コンテンツのセキュリティが向上します。







ありがとうロブ! 感謝の気持ちで、私たちは彼にGitLabのシンボルをあしらったブランドのセーター、靴下、手作りのタヌキを送りました。







オープンソースWeb IDE(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



新しいWeb IDEは、小さな修正の追加を簡素化および高速化し、変更のローカルストレージおよびブランチの切り替えの必要性を排除するため、マージ要求に対するフィードバックを処理します。







Web IDEを使用して、ファイルの変更、Markdownのプレビュー、変更の確認、およびブラウザーからの直接コミットを行うことができます。 Web IDEは、リポジトリと個々のファイルの表示ウィンドウ、およびマージ要求ウィンドウで使用できます。これにより、フィードバックにすばやく応答したり、コードレビューのプロセスで直接小さな変更を加えたりできます。 Web IDEでマージリクエストを開くと、コミット前にその差分を表示することもできます。これにより、マージリクエストの変更の全体像をIDEで直接確認できます。







最初に、Web IDEがGitLab Ultimate 10.4追加され 、このリリースで公開されました。 ソースコードをオープンにすることにしました。IDEのような複雑で主観的な機能を作成できるのは、連携することだけだと考えているためです。 さらに、これにより、より多くのユーザーがお気に入りのプロジェクトの作業に参加できるようになります。







Web IDEドキュメント







展開トークン(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



GitLabコンテナレジスタに長時間アップロードされたリポジトリまたはDockerイメージへの読み取りアクセスを提供する必要がある場合があります。 以前は、このために個人用アクセストークン(PAT)を使用する必要がありましたが、そのようなトークンは特定のユーザーとそのアクセス権に関連付けられています。







GitLab 10.7に追加された展開トークンは、特定のプロジェクトに関連付けられた永続的なトークンを提供することでこの問題を解決します。 ユーザーは、リポジトリまたはコンテナレジスタへのアクセスを有効にし、このトークンを選択して有効期限を設定できます。







展開トークンのドキュメント







トークンを展開する







キーワード「only」および「except」の可変サポート(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



GitLab CI / CDでは、キーワード「only」および「except」を使用して特定のジョブを開始するための条件を設定できます。 たとえば、「マスター」ブランチでのみ展開作業を有効にできます。







GitLab 10.7では、このような条件の構文機能を拡張しました。これにより、特定の環境変数またはその値の存在に応じて作業の実行が決まる変数を含む式を使用できます。 たとえば、プロジェクト変数の値を変更することにより、開始する作業を指定できます。 または、変数GITLAB_USER_NAME



値が特定のユーザーの名前と一致する場合に、特定の作業の起動を制限できます。







可変サポートドキュメント







変数のサポートは'のみ'および''を除くキーワード







GoおよびC / C ++のSAST(ULTIMATE、GOLD)



静的アプリケーションセキュリティテストシステム(SAST)は、プロジェクトがGitLabツールのいずれかでサポートされているプログラミング言語を使用している場合にのみ機能します。 したがって、各リリースでは、新しい言語のサポートが追加されます。







GitLab 10.7では、GoおよびC / C ++のサポートが追加されたため、これらの言語で書かれたプロジェクトの自動脆弱性チェックを使用できます。 この機能を接続するには、追加の手順は必要ありません-言語は実行時に自動的に決定されます。







SASTドキュメント







GoおよびC / C ++のSAST







GitLab 10.7のその他の改善点



エピックに関するコメント(究極、ゴールド)



このリリースでは、 ポートフォリオ管理機能をエピックに導入する作業を続けています。 これで、エピックにコメントを追加したり、タスクやマージリクエストの場合と同じように、エピックを議論するための個別のスレッドを作成することもできます。 これにより、より高い抽象度で叙事詩自体で議論を行うことが可能になり、既存のタスクをこれに使用したり、さらに悪いことに新しいタスクを作成したりすることができなくなりました。







この機能はAPIでもサポートされています







Epicsはまだtodoやメールアラートをサポートしていませんが、現在取り組んでいます。







エピックのコメント







エピックドキュメント







すべてのメールメッセージにテキストを一括追加(PREMIUM、ULTIMATE、SILVER、GOLD)



法的理由から技術的理由までのさまざまな理由により、組織がすべてのメール通信に免責事項やその他のテキストを追加することは珍しくありません。







このリリースでは、この機能が追加されました。GitLab管理者はメール設定に任意のテキストを入力できるようになりました。 このテキストは、GitLabによって送信されるすべての電子メールの最後に追加されます。







すべてのメールのカスタム追加テキスト







電子メールメッセージにテキストを追加するためのドキュメント







グループタスクボードのサブグループタスク(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



グループタスクボードは、1つのグループの複数のプロジェクトに一度に1つのタスク管理インターフェイスを提供します。 このアプローチは、さまざまなリポジトリ(およびさまざまなGitLabプロジェクト)で作業が行われるチームに役立ちます。







GitLabの以前のバージョンでは、このグループ(1レベルのみ)の直接子プロジェクトのみのタスクがグループボードに追加されました。 このリリースから、このグループのすべてのサブグループのすべてのプロジェクトのタスクがグループボードに追加されます。 したがって、サブグループの複雑なマルチレベル階層を使用する場合、この階層はグループタスクボードでもサポートされます。







グループ発行委員会のサブグループ発行







タスクボードのドキュメント







サブグループ(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)のラベルのフィルタリングと追加



サブグループの操作はGitLabの重要な機能であり、ラベルの使用と同様のアプローチを使用したいと考えています。 このリリースから、タスクにラベルを追加し、サブグループのさまざまなレベルでリクエストをマージする機能を拡張しました。







特に、特定のグループのグループタグをその子タスクのいずれかに追加し、リクエストをマージできるようになりました。 つまり、特定のグループレベルで作成されたラベルは、下位レベルのすべてのサブグループで使用できます。







サブグループに属するオブジェクトはタスクおよびマージリクエストのリストに表示されるため、子グループと親グループの両方に属するグループラベルによるこれらのリストのフィルタリングを追加しました(すべてのグループがそのようなラベルを持つことができるようになったため)。 つまり、階層内の位置に関係なく、オブジェクトのすべての可能なラベルでフィルタリングすることができます。







このフィルター処理のアプローチは、フィルターウィンドウとボード設定の両方で、グループタスクボードでも使用できます。







サブグループラベルによる割り当てとフィルタリング







タグのドキュメント







プロジェクトアイコン(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



GitLab CI / CDshields.ioなどの多くのプロジェクトは、バッジを使用してビルドステータスとコード品質を表示します。 通常、アイコンはプロジェクトのreadmeに追加されます。







これで、グループ内のすべてのプロジェクトの表示だけでなく、プロジェクトの説明の下にアイコンの表示を接続できます。







プロジェクトバッジ







プロジェクトアイコンのドキュメント







ブランチ(PREMIUM、ULTIMATE、SILVER、GOLD)から保護を削除する権限



保護されたブランチの機能により、特定のブランチにプッシュおよびマージする権限が制限されます。たとえば、 master



へのプッシュを直接無効にできます。 ただし、マスターアクセスレベルを持つユーザーはブランチの保護を解除できます。これにより、そのような禁止事項を回避できます。 保護の削除に関する新しい制限により、特定のブランチの保護を解除できるユーザーとグループを指定できます。







現在、このような制限はAPIを介してのみ設定できます。 次のリリースでインターフェースのサポート追加します 。 また、将来のバージョンでは、管理者アクセスレベル( 60



)を削除し、代替として所有者レベルの制限を追加する可能性があります。







セキュアブランチのドキュメント







タスクボードカード上のタスクの重量(スターター、プレミアム、アルティメイト、ブロンズ、シルバー、ゴールド)



以前は、タスクボードを使用して特定のタスクの重量を表示するには、そのカードをクリックする必要がありました。その重量はサイドウィンドウに表示されていました。 これで、カード自体に表示されます。 この革新のおかげで、ボード上のすべてのタスクの重量とそれらを完了するために必要な作業量を一目で評価できます。 これは、特にアジャイルのような方法論に役立ちます。







発行ボードカードの発行重量







タスクボードのドキュメント







GitLabプラグイン(CORE、STARTER、PREMIUM、ULTIMATE)



GitLabはオープンソースプロジェクトであるため、誰でも補完できます。 しかし、すべてのユーザーがすぐに一般に変更を加えることを望んでいるわけではなく、最初に何が起こったのかを個人的に試してみたいと思うかもしれません。 これまでは、GitLabの別のフォークを起動することによってのみこれを行うことができましたが、これを最新に保つのはかなり困難です。







プラグインを使用すると、GitLabサーバーに保存されたスクリプトを使用してGitLabシステムフックに応答できます。GitLabをニーズに合わせて簡単に拡張できます。 たとえば、新しいプロジェクトを作成するときに、独自のセキュアブランチルールを自動的に構成します。







プラグインのドキュメント







Git HTTP(s)は、CI / CD(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)で常に使用可能です



GitLabでは、SSHまたはHTTPを使用してリポジトリにアクセスできます。 GitLab管理者は、セキュリティ上の理由からHTTP経由のアクセスをブロックすることを好む場合があります。 たとえば、HTTPをブロックすると、安全でないクライアント設定で作業しているときにユーザーがログイン情報を公開できなくなります。 ただし、HTTP(s)ロックは、GitLab Runnerがリポジトリを複製することも防ぎます。これが、CI / CDが期待どおりに機能しない理由です。







GitLab 10.7以降、GitLab Runnerからのクローン/フェッチリクエストは、HTTP(s)プロトコルへのアクセスが許可されます(そのようなアクセスがユーザーに拒否された場合でも)。 セキュリティの観点からは、GitLab Runnerは常に攻撃を実行するために使用できないOTPトークンを使用するため、これは同じことではありません。







可視性とアクセス制御のドキュメント







JSON Web Token OmniAuthのサポート(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



GitLabはOmniAuthを使用しているため、ユーザーはTwitterやGoogleなどの一般的なサービス、およびOAuth2などの標準認証ツールを使用してGitLabにログインできます。 OmniAuthのGitlab 10.7では、JSON Web Token(JWT)のサポートが追加されました。







JSON Web Tokenは、さまざまなサービス間の識別によく使用される、安全な情報転送のコンパクトなスタンドアロン方式です。







JWT OmniAuthドキュメント







Geoコピーの自動バックグラウンド検証(PREMIUM、ULTIMATE)



Geoの実行中にコピーの自動バックグラウンドチェックが行われ、コピーがソースと一貫していることを確認します。 これは、Geoを災害復旧に使用する場合に重要です。障害が発生した場合、バックアップに確実に切り替えることができます。これはメインのGitLabインスタンスと同じです。







GitLabはtags



heads



tags



を使用しheads



、各Gitリポジトリのチェックサムを計算し、ソースインスタンスのチェックサムがバックアップのチェックサムと一致することを確認します。 検証は将来のリリースで拡張され、 ダウンロードkeep-around



リンク
も含まkeep-around



ます







地理的背景検証ドキュメント







スターター(STARTER、PREMIUM、ULTIMATE、BRONZE、SILVER、GOLD)のグループでプロジェクトを作成する



アクセス権モデルがより柔軟になりました。管理者は、開発者アクセスレベルのユーザーがプロジェクトを作成できるようにする設定のオプションを有効にできるようになりました。







以前は、この機能はGitLab Premiumプランのユーザーのみが利用できました。







グループドキュメンテーション







プロジェクトのエクスポートにはLFSオブジェクト(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)が含まれます



プロジェクトをエクスポートすると、GitLabインスタンス間でプロジェクトを(タスク、マージリクエスト、タグ、Wiki、ダウンロードとともに)簡単に移動できます。 LFSオブジェクトもプロジェクトのエクスポートに含まれるようになりました。通常のプロジェクトエクスポートを使用して、LFSオブジェクトのあるリポジトリを移動できます。







プロジェクトのインポートとエクスポートのドキュメント







依存関係スキャンは独立した機能になりました(ULTIMATE、GOLD)



このリリース以前は、アプリケーションで使用される外部依存関係とライブラリのセキュリティチェックはSASTで行われていました。 これらは密接に関連するものであるという事実を考慮しても、2つの独立した機能に分割する必要があると判断しました。







GitLab 10.7では、依存関係のスキャンがセキュリティレポートの別の強調表示された部分として示されており、更新に値する脆弱なライブラリに関する情報が提供されます。 結果は、マージ要求とパイプラインのレビューの両方で利用可能になります。







依存関係スキャンのドキュメント







ランナーの特別な作業タイムアウト(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



GitLabは現在、プロジェクトレベルでCI / CDの作業期限を定義しています。 作業に時間がかかる場合、エラーレポートで自動的に停止します。







GitLab 10.7では、起動するすべてのジョブに適用される新しいランナータイムアウト設定が導入されています。 これは、プロジェクトで長いタイムアウトが設定されたときに悪用される可能性を防ぐために、一般的なランナーにとって特に便利です。







ランナー向けの特別な作業タイムアウトのドキュメント







CI / CDの下落の理由を見つけるのは簡単です(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



CI / CD操作がクラッシュした場合、ユーザーは通常、何が起こったのかを見つけて修正をコミットし、その後、期待どおりに作業が実行されます。 このリリースの前に、作業の詳細を調べてログを確認する必要がありました。







デバッグをより簡単かつ迅速にするために、GitLab 10.7には新しい機会が導入されました。クラッシュの理由はステータスの一部として示され、カーソルを合わせると完全に表示できます。







CI / CDジョブの失敗理由を簡単に取得







CI / CDクラッシュのドキュメント







Ubuntu 18.04 Bionic(CORE、STARTER、PREMIUM、ULTIMATE)のサポート



4月26日、Ubuntuの新しいバージョン( Ubuntu 18.04 Bionic)がリリースされました。 GitLabが利用可能になりました。







Ubuntu 18.04 BionicにGitLabをインストールする







GitLabバックアップリカバリの強化(CORE、STARTER、PREMIUM、ULTIMATE)



GitLab 10.7は、ユーザーのサブディレクトリの復元をサポートしています。 たとえば、レジ​​ストリが/var/mypath/gitlab/registry



場合、回復は機能します。 以前は、プロセスは既存のディレクトリの<name>.<timestamp>



<name>.<timestamp>



に変更しようとしましたが、これには許可がありませんでした。 これで、復元されたディレクトリに一時的なtmp



フォルダーが作成され、バックアップが復元されるまですべての既存のファイルがそこに移動されます。







バックアップと復元のドキュメント







GitLabページのHTTPSへの自動リダイレクト(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



GitLab Pagesは、HTTPまたはHTTPSを介して静的なWebサイトを提供できます。 HTTPSは、すべてのトラフィックを暗号化し、ネットワークを介して送信されるコンテンツを保護するため、通常は優先されます。







両方のオプションが利用可能な場合、GitLab 10.7では、HTTP要求がHTTPSプロトコルで対応するURLに自動的にリダイレクトされるように、ユーザーがプロジェクトを構成できます。 これにより、セキュリティが向上し、データがプレーンテキストで送信されないようになります。







GitLab PagesでのHTTPSへの自動リダイレクトのドキュメント







GitLab Let's Encrypt証明書(CORE、STARTER、PREMIUM、ULTIMATE)を自動的に更新する



GitLab 10.5では、 Let's Encryptとの統合により GitLabインスタンスのHTTPS接続を簡素化しました。







GitLab 10.7では、このプロセスをさらに簡単にします。 更新プロセスを自動化し、Let's Encryptを常にオンにしておく必要をなくしました。 HTTPSを有効にするために必要なことは、 https://



-でexternal_url



を開始することだけです!







自動更新ドキュメントを暗号化しましょう







GitLab Cloud Chart for Core(alpha)(CORE、STARTER、PREMIUM、ULTIMATE)が利用可能



Core Object Object Storageサポートの導入により、 GitLabクラウドネイティブチャートのアルファ版ライセンスなしで利用可能になりました。 このグラフは、各GitLabコンポーネントのコンテナを備えた、よりクラウドベースの独自アーキテクチャを表しており、共有ストレージを必要としません。 これらの変更により、Kubernetes上のGitLabの柔軟性、スケーラビリティ、およびパフォーマンスが向上します。







バックアップと復元のドキュメント







環境メトリックボードの改善(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



統計の概要が環境メトリックボードに表示されました。 一定期間の各シリーズの平均値と最大値が表示されます。 たとえば、過去8時間の平均応答時間をすばやく見つけて、ユーザーが通常遭遇することを理解できるようになりました。







炉床のプロセッサとメモリの総消費量も表示されるようになりました。これにより、クラスター内の特定の環境のリソースがどのように使用されているかがわかります。







環境メトリックスダッシュボードの改善







環境追跡ドキュメント







GitLab Runner 10.7(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



このリリースでは、GitLab Runnerの新しいバージョン10.7もリリースされています。 GitLab Runnerは、CI / CD作業の結果を実行してGitLabに送り返すために使用されるオープンソースプロジェクトです。







最も重要な変更:




変更の完全なリストについては、 CHANGELOG GitLab Runnerを参照してください。







GitLab Runnerドキュメント







オムニバス拡張(CORE、STARTER、PREMIUM、ULTIMATE)





Omnibus GitLabドキュメント







パフォーマンスの改善(CORE、STARTER、PREMIUM、ULTIMATE、FREE、BRONZE、SILVER、GOLD)



GitLab 10.7のすべてのパフォーマンスの改善の中で、別に注意したいことがあります。









GitLab 10.7のパフォーマンス変更の完全なリスト










詳細なリリースノートと更新/インストール手順は、元の英語の投稿にあります: GitLab 10.7は、オープンソースWeb IDEとSAST for GoおよびC / C ++と共にリリースされています







英語からの翻訳はrishavantsgnl_05によって行われました








All Articles