機密の課題

GitLab 8.6 で導入されました

コンフィデンシャル・イシューは、十分な権限を持つプロジェクトのメンバーだけが見ることができるイシューです。 コンフィデンシャル・イシューは、オープンソースプロジェクトでも企業でも、セキュリティの脆弱性を非公開にしたり、サプライズの漏えいを防ぐために使うことができます。

イシューの機密化

イシューを作成する際、または既存のイシューを編集する際に、機密扱いにすることができます。

新しいイシューを作成する際、テキスト・エリアのすぐ下に、そのイシューを機密扱いとしてマークするためのチェックボックスがあります。 このチェックボックスにチェックを入れ、[イシューを送信]ボタンをクリックすると、イシューが作成されます。 既存のイシューについては、編集して機密扱いチェックボックスにチェックを入れ、[変更を保存]をクリックしてください。

Creating a new confidential issue

イシューの機密性の変更

イシューの機密性を変更するには、2つの方法があります。

最初の方法は、イシューを編集し、機密性のチェックボックスをオン/オフすることです。 イシューを保存すると、そのイシューの機密性が変更されます。

2つ目の方法は、サイドバーの「守秘義務」セクションを探し、「編集」をクリックすることです。 ポップアップが表示され、守秘義務のオン・オフを選択することができます。

守秘義務オフ 機密保持をオン
Turn off confidentiality Turn on confidentiality

レギュラーからコンフィデンシャルへの変更、またはその逆は、イシューのコメントにシステム・ノートで表示されます。

Confidential issues system notes

機密イシューの兆候

注: 十分な権限がない場合、機密イシューを見ることはできません。

イシュー・インデックス・ページ・ビューでは、機密扱いとしてマークされたイシューの横に、アイ・スラッシュ・アイコンが表示されます。

Confidential issues index page


同様に、イシューの内部では、イシュー番号のすぐ横にアイ・スラッシュ・アイコンが表示されますが、コメント・エリアには、コメントしているイシューが機密事項であることを示すインジケータも表示されます。

Confidential issue page

サイドバーには機密性を示すインジケーターもあります。

機密イシュー 機密事項ではないイシュー
Sidebar confidential issue Sidebar not confidential issue

権限と機密事項へのアクセス

機密イシューのアクセス・レベルには2種類あります。 一般的なルールとして、機密イシューは少なくともレポーター・アクセス権を持つプロジェクトのメンバーのみが閲覧できます。 しかし、ゲスト・ユーザーも機密イシューを作成できますが、閲覧できるのは自身が作成したもののみです。

機密イシューは、権限のないユーザーの検索結果にも表示されません。 例えば、メンテナーとゲストのアクセス権を持つユーザーが、それぞれプロジェクトの検索結果に表示される内容は以下の通りです。

メンテナー・アクセス ゲストアクセス
Confidential issues search master Confidential issues search guest

機密イシューのマージリクエスト

GitLab 12.1で導入されました

非公開問題を解決する過程で公開プロジェクトから機密情報が漏れるのを防ぐため、非公開フォークからマージリクエストを作成することで機密問題を解決することができます。

作成されたマージリクエストは、非公開フォークのデフォルトブランチを対象とし、上流の公開プロジェクトのデフォルトブランチは対象としません。 これにより、マージリクエスト、ブランチ、コミットが公開リポジトリに入り、機密情報が早期に公開されることを防ぎます。 機密コミットを公開する準備ができたら、非公開フォークから上流の公開プロジェクトにマージリクエストをオープンすることで公開することができます。

ベストプラクティス:同じグループまたは元のアップストリームのサブグループに、長期間のプライベートフォークを作成した場合、公開プロジェクトの開発者メンバーシップを持つすべてのユーザは、非公開プロジェクトでも同じ権限を持つことになります。 こうすることで、機密イシューを閲覧する権限を持つすべての開発者は、そのイシューを修正するための合理的なワークフローを持つことができます。

どのように動作するか

機密イシューには、機密マージリクエストを作成するボタンがあります。 このボタンをクリックするとドロップダウンが開き、機密マージリクエストとブランチを作成するか、ブランチを作成するかを選択できます:

機密マージリクエストの作成 ブランチを作成
Create Confidential Merge Request Dropdown Create Confidential Branch Dropdown

プロジェクト] ドロップダウンには、そのユーザーが少なくとも開発者として所属し、マージリクエストが有効になっている非公開フォークのリストが含まれます。

ブランチ名と ソース(ブランチまたはタグ)フィールドが変更されるたびに、ターゲットブランチまたはソースブランチの可用性がチェックされます。 選択された非公開フォークでは、両方のブランチが利用可能でなければなりません。

Create confidential merge requestボタンをクリックすると、GitLabは非公開フォークにブランチとマージリクエストを作成します。Create branchを選択すると、GitLabはブランチのみを作成します。

非公開フォークにブランチが作成されると、開発者はそのブランチにコードをプッシュして、非公開のイシューを修正できるようになります。