JetBrains Space ヘルプ

コード分析ツールの統合

CI サーバーSARIF フォーマット済み(英語)レポートのエクスポートをサポートするコード分析ツールを使用している場合、それを Space と統合して、静的コード分析結果を Space merge request diffs に表示できます。

Space HTTP API には、変更されたコードフラグメントのコード分析ツールによって生成された sarif 形式の .json ファイルとしてコード分析レポートを受け入れることができる専用のエンドポイントがあります。

統合を設定する方法は、CI サーバーとコード分析ツールの詳細によって異なりますが、一般原則は同じです。

  • 自動化されたジョブまたはパイプラインは、新しいマージリクエストが作成されるとき、または既存のマージリクエストにコミットがプッシュされるときに実行されるように、CI サーバー上でセットアップされます。

  • このジョブは、Space 側で構成された Webhook によってトリガーされるか、代替として、Space がマージリクエストごとに作成する正規表現 refs/merge/(.*?-MR-\\d+)/head を使用して、Space リポジトリにポーリングしてブランチの変更を確認することによってトリガーされます。

  • トリガーされると、ジョブはブランチ名を受け取り、マージリクエスト ID を抽出し、ソースとターゲットのコミット ID の Space API をリクエストします。

  • 最後に、ジョブは、新しい変更のみを分析するように指示されたコード分析ツールを起動します。結果のレポートは SARIF 形式のファイルとして生成され、Space にアップロードされます。

コード分析 API

Space HTTP API には、特定のコミットのコード分析ツールから SARIF レポートを受信するために使用できる専用のエンドポイントがあります。

POST /api/http/projects/{project}/code-reviews/{reviewId}/sarif/{commitId}

where

  • {project} は、コード分析を表示する Space プロジェクトの識別子です。プロジェクト ID またはプロジェクトキーのいずれかを使用できます: key:MY-PROJECT-KEY または id:my-project-id

  • {reviewId} はマージリクエストの識別子です。マージリクエスト ID または番号 (id:mr-id または number:mr-number) を使用できます

  • {commitId} は、マージリクエスト内の最新のコミットの識別子です。id:commit-id

コード分析ツールからフェッチされた SARIF 形式のレポートは、リクエスト本文で .json ファイルとして送信されます。

許可

このエンドポイントでは、呼び出し元にリポジトリのコードの課題を報告するアクセス許可が付与されている必要があります。SARIF ファイルを Space API にアップロードする Space アプリケーションまたはユーザーに必ずこの権限を付与してください。

エンドポイントを試して構成をテストするには、Space HTTP API Playground を使用する

  1. メインメニューで、 extensions.png 拡張をクリックし、API Playground を選択します。

  2. エンドポイントリストで、実験的な API を表示するを選択します。

  3. エンドポイント検索フィールドに sarif と入力し、マージリクエストの SARIF レポートをアップロードするをクリックします。SARIF エンドポイントが表示されます。

apiSARIF.png

関連ページ:

Space とサードパーティのサービスを統合する

Space はさまざまなサードパーティサービスと統合できます。統合の中には、すぐに使えるように提供されているものもありますが、別の Space アプリケーションとしてインストールする必要があるものもあります。Space と統合したい独自のサービスがある場合は、アプリケーションを利用してこれを行うことができることに注意してください。継続的な統合と配信 (CI/CD):外部 CI サーバーとの統合により、Space は特定のリポジトリのビルドステータスを受信して表示できます。プロジェクト参加者は、各...

マージリクエスト

作業中のブランチをベースブランチ (メイン、マスター) にマージする前に、チームメイトに変更を調べて承認するよう招待するマージリクエストを作成できます。マージリクエストは、次のことを可能にする特別な種類のコードレビューです。2 つのブランチを比較してください。競合がある場合は簡単に発見できます。ブランチをマージするはレビューページから直接アクセスできます (リベースとスカッシュも同様)。マージリクエストを作成する:コミットリストのグラフに従って、マージするブランチを見つけます。ブランチの最上位...

Slack 統合

Slack との統合により、Space からの通知を Slack ワークスペース内の指定されたチャネルで受信できるようになります。前提条件:Space を Slack に接続する前に、Space 通知を受信するチャネルを持つアクティブな Slack ワークスペースが必要です。Slack ワークスペースとのリンクを確立するには、そのワークスペースの管理者権限と Space のシステム管理者権限が必要です。Slack に接続する:メインメニューから管理を選択します。左側のサイドバーメニューを下に...

Zapier

Zapier は、Gmail、Slack、Mailchimp などのお気に入りのアプリを接続するオンライン自動化ツールです。コーディングをしたり開発者に依存して統合を構築したりすることなく、2 つ以上のアプリを接続して反復的なタスクを自動化できます。数回クリックするだけで、誰でも独自のアプリのワークフローを構築できるほど簡単です。JetBrains Space Zapier 統合を使用すると、Space を 2,000 以上の他の Web サービスに接続できます。Zaps と呼ばれる自動接続は、コ...