このトピックでは、ビジネス要件を満たす検出戦略の設計方法について説明します。
コード検出サービスは Flow パイプラインリソースを使用します。同時実行数およびランタイムは、ご利用のパイプラインリソースに基づいて計算されます。リソースクォータの範囲内でサービスをご利用いただけます。クォータを超える場合は、従量課金を有効にして追加のランタイムリソースを取得できます。詳細については、「従量課金ルール」をご参照ください。
ステップ 1:検出戦略の作成
-
Codeup ホームページにログインします。左側のナビゲーションウィンドウで、 を選択します。

-
検出戦略を構成します。
プラットフォームにはいくつかの組み込み戦略が用意されています。既存の戦略をコピーするか、ニーズに合わせて新規に戦略を作成することもできます。
-
組み込み戦略
必要に応じて、組み込み戦略をコピーするか、独自の戦略を作成できます。
左側のリストで組み込み戦略(例:Python 推奨検出戦略)を選択します。右上隅の 戦略のコピー/編集 をクリックして戦略をコピーおよびカスタマイズするか、戦略のコピー ボタンをクリックして迅速にコピーできます。また、ルールの追加 をクリックして、戦略に新しいルールパッケージを追加することも可能です。

-
戦略のコピー
コピーする推奨検出戦略を選択します。検出戦略の追加 ダイアログボックスで、既存の戦略をコピー を選択し、戦略名 と 戦略の説明 を入力します。戦略の選択 ドロップダウンリストから対象の戦略を選択し、OK をクリックします。
-
新しい検出戦略の作成。検出戦略の追加 ダイアログボックスで、新規戦略の作成 を選択し、戦略名 と 戦略の説明 を入力します。ルールパッケージの追加 エリアで言語(例:TypeScript、Node.js、Python、Go、C/C++、Lua)を選択します。次に、ルールパッケージの追加 をクリックして、該当言語のリストから必要なルールパッケージを選択し、OK をクリックします。
-
ステップ 2:戦略内容の調整
検出戦略を選択した後、必要に応じてルールおよび構成を調整できます。
戦略の作成者または Codeup 組織管理者のみが戦略を編集・削除できます。他のユーザーは戦略を閲覧・コピーすることしかできません。
-
検出ルールの内容を調整します。
各ルールについて、重大度レベルを編集できます。一部のルールでは、正規表現を使用して検出範囲を制限するなど、検出パラメーターをカスタマイズすることも可能です。不適切なルールを無効化したり、再度有効化したりすることもできます。
警告ルールを無効化すると、以下の効果があります。
-
次回の検出実行後に、そのルールによって検出された問題が自動的にクローズされます。
-
現在の検出戦略を実行する際、そのルールは実行されません。
例として、ルールをクリックして編集ダイアログボックスを開きます。重大度レベル ドロップダウンリスト(重大、警告、提案)でレベルを調整するか、ルール詳細でカスタム正規表現パラメーターを構成できます。
-
-
検出戦略を検出タスクに関連付けます。検出戦略の詳細ページで、関連コード タブに移動します。検出タスクが関連付けられていない場合は、検出タスクの作成 ボタンをクリックして関連付けます。
新しい検出タスクを作成します。検出タスクの作成 ダイアログボックスで、コードソースタイプ(例:Codeup)を選択し、コードリポジトリ および 検出戦略 を選択します。トリガーメソッド(例:コミット時 または マージリクエスト時)を選択し、作成して実行 をクリックします。
-
検出戦略に対するすべての変更は、戦略の変更履歴に記録されます。
-
検出戦略の設定を調整します。
プランの設定ページで、プラン名の変更、説明の入力、検出対象ファイルのホワイトリストの構成を行い、[保存] をクリックします。
ホワイトリストに登録されたパス内のファイルは、検出時に自動的にスキップされます。
重要戦略を削除する前に、どの検出タスクとも関連付けられていないことを確認してください。関連付けられている場合は、実行中のタスクに影響を与えないよう、事前に検出タスクとの関連付けを解除する必要があります。
ステップ 3:戦略とコードリポジトリの関連付け
戦略をコードリポジトリに関連付けると、実行可能な検出タスクになります。コードリポジトリごとに最大 1 つの検出タスクを作成できます。このタスクは、異なるブランチで複数回実行可能です。
-
に移動し、検出タスクの作成 をクリックします。検出タスク ページでは、既存のタスクの実行ステータスおよび検出統計情報を確認できます。
-
適切な検出タスク構成を選択します。検出戦略 ドロップダウンリストで、組み込み戦略(例:Java 推奨検出戦略、Python 推奨検出戦略)またはカスタム戦略を選択できます。
-
手動トリガーに加えて、検出タスクの自動トリガー(コミットトリガーおよびマージリクエストトリガー)を設定できます。コミットトリガーを選択する場合は、監視対象のブランチを指定する必要があり、正規表現もサポートされています。マージリクエストトリガーを選択する場合、リポジトリ内のすべてのマージリクエストに対して、ソースブランチと送信先ブランチ間のコード変更がスキャンされます。
ステップ 4:検出結果の確認
-
検出タスクでの結果の確認
検出タスクに移動し、[概要] を選択して、最新の正常終了したフルスキャンの結果および現在のブランチの問題一覧を確認します。
-
概要 タブには以下が含まれます。
-
検出結果:合格/不合格ステータス、それに伴う問題数および品質ゲートしきい値。
-
問題概要:未解決および解決済みの問題数。
-
問題の重大度分布:重大、警告、提案の各レベルの問題分布。
-
問題タイプの分布:セキュリティおよびコーディング標準に関する問題の分布。
-
投稿者別の分布:異なるユーザーが導入した各種問題の数。
-
最も重大な問題を引き起こしたルール:最も多くの重大問題をトリガーしたルールのランキング。
-
問題の推移:各重大度レベルにおける未解決問題の推移傾向。
-
-
問題一覧
問題一覧は重大度レベルおよび解決ステータスでソートされています。問題行をクリックすると詳細を確認できます。問題を無視することで、そのブランチで再度レポートされないようにできます。
-
実行履歴
コード検出サービスは Flow パイプライン上で実行されます。検出実行が失敗した場合は、ページ上の 実行ログを表示 をクリックして Flow に移動し、エラーログを確認してトラブルシューティングを行います。
最新の検出実行が失敗した場合、検出タスク詳細ページには前回の成功実行の結果が保持され、失敗時刻を示すアラートが表示されます。実行ログにアクセスして問題を調査・解決できます。
-
-
コードリポジトリのコミットおよびマージリクエストでの検出結果の確認
-
コミット検出結果
コミットおよびブランチビューにおいて、特定のコミットにコード検出結果がある場合、リスト内のカードで素早く確認できます。カードをクリックすると問題の詳細を表示します。
-
マージリクエスト検出結果
マージリクエストトリガーが選択されている場合、マージリクエストリストおよびマージ詳細のマージ条件セクションで自動スキャンの結果を確認できます。
実行完了後、[詳細を表示] をクリックすると、現在のマージリクエストのファイル変更ビューで検出された問題を確認できます。問題をクリックすると、対応するコード行に直接移動します。
-
よくある質問
1. マージリクエストチェックポイントの設定
コード検出サービスはコードレビューを支援するものです。コーディング標準およびセキュリティ脆弱性の問題を自動的にスキャンしてハイライトすることで、手動レビューのコストを削減します。
マージリクエストでは、手動レビューに加えて、コードマージ前のチェックポイントとしてコード検出を設定できます。スキャンが設定された品質ゲートを通過しない場合、ユーザーはコードをマージできません。これにより、品質基準を満たさないコードが本番ブランチにマージされるのを防止します。
ステップ 1:品質ゲートしきい値の設定
まず、チェックポイントに必要な品質ゲートしきい値を設定します。
現在のリポジトリの検出タスクで、マージリクエスト品質ゲート設定を確認できます。デフォルトでは重大な問題が許可されず、警告および提案の問題数には制限がありません。ビジネス要件に応じてこれらの設定を変更できます。
ステップ 2:保護ブランチチェックポイントの構成
次に、「マージリクエストチェックポイントの設定に移動」をクリックするか、リポジトリ設定 > ブランチ設定 > 保護ブランチルールに移動します。
保護したいブランチに対して新しい保護ブランチルールを作成し、ブランチ名を選択します。ルール設定で「マージ前に自動チェックの通過を必須にする」を有効にし、コード検出タスクを選択します。
削除されたチェックポイント検出タスクの処理
検出タスクがチェックポイントとして設定されている場合、タスクを手動で削除してもマージリクエストチェックポイントはアクティブなまま維持されます。これにより、スキャンされていないコードが保護ブランチにマージされるのを防止します。
この場合、削除された古い検出タスクのチェックポイントは「失敗」ステータスを示します。管理者は現在のリポジトリに新しい検出タスクを作成する必要があります。新しいタスクは自動的に古いタスクに置き換わり、アクティブなマージリクエストチェックポイントとなります。
2. リソース消費を計算する
スキャンは Flow パイプラインリソースを使用します。このリソースにより、同時実行数およびランタイムが決定されます。パイプラインリソースクォータの範囲内でスキャンを実行できます。使用量がクォータを超える場合は、従量課金を有効にして追加のパイプラインリソースを取得できます。
Alibaba Cloud DevOps Pipeline Flow ページの左下隅にある [リソース] から、今月のリソース消費の詳細を確認できます。
3. コード検出の無効化
コードリポジトリから検出タスクを削除すると、関連付けられたシステムパイプラインも自動的に削除されます。
検出タスク詳細ページで、タスク設定 をクリックし、基本情報 タブ下部の タスクの削除 エリアで 削除 をクリックします。