Qodana クラウド API
Qodana Cloud API を使用すると、ビルドパイプラインを使用して、チームやプロジェクトを作成したり、Qodana Cloud および Qodana Self-Hosted 組織のユーザーリストやインサイトデータを取得したりできます。この API は Ultimate Plus ライセンスで利用可能です。利用可能な Qodana ライセンスの詳細については、サブスクリプションのオプションと価格ページを参照してください。デモをリクエストすることもできます。
前提条件
Qodana クラウド API は、認証のために組織 API トークンを必要とします。
Qodana クラウド API を使用する前に、以下の要件が満たされていることを確認してください。
組織 API トークンを作成して管理するには、
OwnerまたはAdminロールで既存の Qodana Cloud 組織にアクセスできる必要があります。Qodana Cloud 組織は、Qodana の Ultimate Plus ライセンスに基づいてライセンスされます。
組織 API トークンを生成するには、組織設定の API トークンタブを使用します。このトークンは、リクエスト内で
$permanent_organization_token認証ヘッダーとして参照する必要があります。例:-H "Authorization: Bearer $permanent_organization_token"このセクションで紹介するすべての API リクエスト例では、Qodana Cloud の場合は
https://qodana.cloudURL を、Qodana Self-Hosted の場合はカスタムベース URL を使用する必要があります。ここでは、簡略化のため Qodana Cloud URL を使用します。
チームとプロジェクト
チームとプロジェクトを作成する
プロジェクトと併せて新しいチーム(該当する場合)を作成し、プロジェクトトークンを取得するには、次のリクエストを送信してください。
リクエスト本文の説明は以下のとおりです。
パラメーター | タイプ | 説明 | 例の値 |
|---|---|---|---|
| 文字列 | 作成するチームの名前(null 不可)。すでに存在する場合は、作成はスキップされます。 |
|
| 文字列 | 作成するプロジェクトの名前(null 不可)。すでに存在する場合は、作成はスキップされます。 |
|
| Boolean | 作成したチームを公開するか非公開にするかを指定します |
|
エンドポイントは、次の HTTP コードで応答を提供します。
応答コード | 説明と例 |
|---|---|
| 既存のチーム内の既存のプロジェクトのプロジェクトトークンを返します。
HTTP/2 200 OK
date: Wed, 24 Sep 2025 10:35:13 GMT
content-type: application/json
x-request-id: vbf3up0ktfm6b25o
vary: Origin
content-length: 178
x-http2-stream-id: 3
{
"projectToken": "{TheProjectTokenValue}"
}
|
| 新しいチーム (該当する場合) とチーム内の新しいプロジェクトを作成し、新しく作成されたプロジェクトのプロジェクトトークンを生成して返します。
HTTP/2 201 Created
date: Wed, 24 Sep 2025 10:33:37 GMT
content-type: application/json
x-request-id: nrkvy1od9m3ohb9u
vary: Origin
content-length: 178
x-http2-stream-id: 3
{
"projectToken": "{TheProjectTokenValue}"
}
|
| 特定の環境で Qodana クラウド API が無効になっている場合、不正なリクエスト応答が返されます。
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "PUBLIC_API_DISABLED",
"details": "Public API is disabled"
}
Qodana クラウド組織内のプロジェクト数が 5000 を超える場合は、次の結果が返されます。
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "TOO_MANY_PROJECTS_FOR_ORGANIZATION",
"details": "Creation of the project failed because of reaching the limit of projects per organization"
}
|
| API トークンが提供されなかった場合、不正アクセスが発生します。
HTTP/2 401 Unauthorized
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_AUTH",
"details": "User is not authorized"
}
|
| アクセス禁止。 API トークンが無効になった場合は、次のコードが返されます。
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "Invalid organization API token"
}
Qodana クラウド組織が Qodana クラウド API 機能を使用できない場合、以下の値を返します。
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "User has no public_api_create_or_get_project_token permission"
}
|
| エンドポイントが見つかりません |
| プロジェクトトークンを作成できなかった場合は、内部サーバーエラーが返されます。
HTTP/2 500 Internal Server Error
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "PROJECT_TOKEN_CREATION_FAILED",
"details": "Creation of the project token failed because of an internal error"
}
|
プロジェクト名でプロジェクトのメタデータを取得する
プロジェクトのデフォルトブランチのプロジェクトメタデータを取得するには、Qodana Cloud プロジェクト名を指定してリクエストを送信します。
以下に、受け入れられるパラメーターの説明を示します。
パラメーター | タイプ | 必須 | 説明 | 例の値 |
|---|---|---|---|---|
| 文字列 | いいえ | 取得するプロジェクト名 |
|
回答内容の説明は以下のとおりです。
応答コード | 説明と例 |
|---|---|
| プロジェクトのメタデータを含む JSON オブジェクトを返します。
HTTP/2 200 OK
date: Wed, 24 Sep 2025 10:35:13 GMT
content-type: application/json
x-request-id: vbf3up0ktfm6b25o
vary: Origin
content-length: 178
x-http2-stream-id: 3
{
"id": "proj_123",
"name": "My Awesome Project",
"teamId": "team_456",
"teamName": "Dev Team A",
"defaultBranchName": "main",
"latestFullScanReport": {
"id": "report_789",
"timestamp":"2026-05-28T14:34:52.935342Z",
"licenseAudit": {
"isPassed": true,
"isEnabled": true
},
"codeCoverage": {
"percentage": 85,
"isEnabled": true
},
"inspections": [
{
"id": "insp_12345",
"name": "Security Scan",
"severity": "HIGH",
"baseline": 10,
"actual": 5
}
]
},
"publicKey": "ssh-rsa AAAAB3NBFye+4lsYw== qodana.cloud\n"
}
この応答において、 |
|
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "VALIDATION_FAILED",
"details": "Invalid projectName: must be a non-empty string."
}
|
|
HTTP/2 401 Unauthorized
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_CREDENTIALS_PROVIDED",
"details": "API token is required."
}
|
|
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "User does not have permission to view projects."
}
|
|
HTTP/2 404 Not Found
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PROJECT",
"details": "Project 'nonexistent-project' not found."
}
|
プロジェクト ID でプロジェクトメタデータを取得する
プロジェクト ID を含むリクエストを送信して、プロジェクトのメタデータを取得します。
パラメーター | タイプ | 必須 | 説明 | 例の値 |
|---|---|---|---|---|
| 文字列 | はい | プロジェクトの ID |
|
回答内容の説明は以下のとおりです。
応答コード | 説明と例 |
|---|---|
| プロジェクトのメタデータを含む JSON オブジェクトを返します。
HTTP/2 200 OK
date: Wed, 24 Sep 2025 10:35:13 GMT
content-type: application/json
x-request-id: vbf3up0ktfm6b25o
vary: Origin
content-length: 178
x-http2-stream-id: 3
{
"id": "proj_123",
"name": "My Awesome Project",
"teamId": "team_456",
"teamName": "Dev Team A",
"defaultBranchName": "main",
"latestFullScanReport": {
"id": "report_789",
"timestamp":"2026-05-28T14:34:52.935342Z",
"licenseAudit": {
"isPassed": true,
"isEnabled": true
},
"codeCoverage": {
"percentage": 85,
"isEnabled": true
},
"inspections": [
{
"id": "insp_12345",
"name": "Security Scan",
"severity": "HIGH",
"baseline": 10,
"actual": 5
}
]
},
"publicKey": "ssh-rsa AAAAB3NBFye+4lsYw== qodana.cloud\n"
}
この応答において、 |
|
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "VALIDATION_FAILED",
"details": "Invalid projectId: must be a non-empty string."
}
|
|
HTTP/2 401 Unauthorized
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_CREDENTIALS_PROVIDED",
"details": "API token is required."
}
|
|
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "User does not have permission to view this project."
}
|
|
HTTP/2 404 Not Found
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PROJECT",
"details": "Project with ID 'proj_999' not found."
}
|
ユーザー
特定の Qodana クラウド組織のユーザーをページ分割形式で一覧表示するには、次のリクエストを送信してください。
次のオプションパラメーターを使用してリクエストをカスタマイズできます。
パラメーター | タイプ | 説明 |
|---|---|---|
| 整数 | 返されるリスト内のユーザー数を制限する |
| 番号 | 返されるリストのオフセットを |
| 文字列 | ユーザーのメールアドレスの並べ替え順序を設定します。降順の場合は |
| 文字列 | |
例: このリクエストは、email または displayName フィールドに abc が含まれている場合にのみ、2 番目のエントリから始まる 10 個のユーザーエントリを返し、選択したリストを降順で並べ替えます。
このエンドポイントは、表に記載されているとおりに応答します。
応答コード | 説明と例 |
|---|---|
| 指定された Qodana クラウド組織の組織ユーザーのリストを返します。
HTTP/2 200 OK
date: Wed, 24 Sep 2025 10:39:06 GMT
content-type: application/json
x-request-id: 7vrrlorq2ocrz957
vary: Origin
content-length: 514
x-http2-stream-id: 3
{
"count": 3, // The number of entries retrieved
"next": 3, // The `offset` value to fetch the next chunk of entries
"prev": 0, // The offset from the first entry
"items": [
{
"id": "GoKgG",
"email": "email-address1@example.com",
"displayName": "email-address1@example.com",
"role": "OWNER", // Qodana Cloud role
"isActive": true,
"isSsoManaged": false, // SSO feature is disabled
"invitationId": "G4O3Y",
"invitationUrl": "https://qodana.cloud/invite/G4O3Y"
},
{
"id": "bvWmV",
"email": "email-address2@example.com",
"displayName": "email-address2@example.com",
"role": "VIEWER",
"isActive": false,
"isSsoManaged": false
},
{
"id": "NG4kY",
"email": "email-address3@example.com",
"displayName": "email-address3@example.com",
"role": "VIEWER",
"isActive": false,
"isSsoManaged": false,
"invitationId": "bLmWV",
"invitationUrl": "https://qodana.cloud/invite/bLmWV"
}
]
}
|
| Qodana クラウド API は無効になっています。
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "PUBLIC_API_DISABLED",
"details": "Public API is disabled"
}
|
| API トークンが提供されなかった場合、不正アクセスが発生します。
HTTP/2 401 Unauthorized
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_AUTH",
"details": "User is not authorized"
}
|
| アクセス禁止。 API トークンが無効になった場合は、次のコードが返されます。
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "Invalid organization API token"
}
Qodana クラウド組織が Qodana クラウド API 機能を使用できない場合、以下の値を返します。
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "User has no public_api_get_organization_users permission"
}
|
インスペクション
組織が使用しているすべてのインスペクション (FlexInspect インスペクションを含む) を一覧表示するには、リクエストを送信してください。
このエンドポイントはパラメーターを提供しません。
回答内容の説明は以下のとおりです。
応答コード | 説明と例 |
|---|---|
| インスペクションのリストを返します。
HTTP/2 200 OK
date: Wed, 24 Sep 2025 10:39:06 GMT
content-type: application/json
x-request-id: 7vrrlorq2ocrz957
vary: Origin
content-length: 514
x-http2-stream-id: 3
{
"inspections": [
{
"id": "insp_12345",
"name": "Security Scan"
},
{
"id": "insp_67890",
"name": "Code Quality"
}
]
}
|
|
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "VALIDATION_FAILED",
"details": "Invalid query parameter."
}
|
|
HTTP/2 401 Unauthorized
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_AUTH",
"details": "Authentication required to access inspections."
}
|
|
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "Invalid organization API token"
}
|
インサイト
プロジェクトに関する考察
プロジェクトに関するインサイトを取得するには、以下のリクエストを送信してください。
リクエスト本文の説明は以下のとおりです。
パラメーター | タイプ | 必須 | 説明 | 例の値 |
|---|---|---|---|---|
| 配列 [ 文字列 ] | いいえ | クエリに含めるプロジェクト ID のリスト |
|
| 配列 [ 文字列 ] | いいえ | クエリに含めるインスペクション ID のリスト |
|
| 配列 [ 文字列 ] | いいえ | クエリに含めるチーム ID のリスト |
|
| オブジェクト | いいえ | クエリの期間。開始時刻と終了時刻のタイムスタンプが含まれます |
|
回答内容の説明は以下のとおりです。
応答コード | 説明と例 |
|---|---|
| 指定されたタイムスタンプに対応するスキャンデータを持つプロジェクトのリスト。プロジェクト ID とタイムスタンプの固有の組み合わせごとに 1 つのエントリが存在します。時間範囲が指定されていない場合は、最新のタイムスタンプのエントリが返されます。
HTTP/2 200 OK
date: Wed, 24 Sep 2025 10:39:06 GMT
content-type: application/json
x-request-id: 7vrrlorq2ocrz957
vary: Origin
content-length: 514
x-http2-stream-id: 3
{
"projects": [
{
"id": "proj_123",
"name": "My Awesome Project",
"teamId": "team_456",
"teamName": "Dev Team A",
"codeCoverage": {
"percentage": 85,
"isEnabled": true
},
"licenseAudit": {
"isPassed": true,
"isEnabled": true
},
"severityToActualProblems": {
"info": 5,
"low": 10,
"moderate": 3,
"high": 1,
"critical": 0,
"total": 19
},
"severityToBaselineProblems": {
"info": 8,
"low": 12,
"moderate": 5,
"high": 2,
"critical": 0,
"total": 27
},
"timestamp": "2026-05-12T00:00:00Z"
}
]
}
|
|
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_FILTER_SELECTION",
"details": "At least one filter (includeProjectIds, includeInspectionIds, or includeTeamIds) must be provided."
}
|
|
HTTP/2 401 Unauthorized
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "INVALID_TOKEN",
"details": "The provided API token is expired or invalid."
}
|
|
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "FEATURE_NOT_SUPPORTED",
"details": "Project insights are not enabled for this organization."
}
|
インスペクションに関するインサイト
インスペクションに関するインサイトを取得するには、以下のリクエストを送信してください。
リクエスト本文の説明は以下のとおりです。
パラメーター | タイプ | 必須 | 説明 | 例の値 |
|---|---|---|---|---|
| 配列 [ 文字列 ] | いいえ | クエリに含めるプロジェクト ID のリスト |
|
| 配列 [ 文字列 ] | いいえ | クエリに含めるインスペクション ID のリスト |
|
| 配列 [ 文字列 ] | いいえ | クエリに含めるチーム ID のリスト |
|
| オブジェクト | いいえ | クエリの期間。開始時刻と終了時刻のタイムスタンプが含まれます |
|
回答内容の説明は以下のとおりです。
応答コード | 説明と例 |
|---|---|
| インスペクションのカウントのリストです。インスペクション ID、名前、重大度、ベースライン、実際値、タイムスタンプの固有の組み合わせごとに 1 つのエントリが存在します。時間範囲が指定されている場合は、その範囲内の等間隔の 10 個のタイムスタンプのエントリが返されます。時間範囲が指定されていない場合は、最新のタイムスタンプのエントリが返されます。
HTTP/2 200 OK
date: Wed, 24 Sep 2025 10:39:06 GMT
content-type: application/json
x-request-id: 7vrrlorq2ocrz957
vary: Origin
content-length: 514
x-http2-stream-id: 3
{
"inspections": [
{
"id": "insp_12345",
"name": "Security Scan",
"severity": "HIGH",
"baseline": 10,
"actual": 5,
"timestamp": "2026-05-12T00:00:00Z"
},
{
"id": "insp_67890",
"name": "Code Quality",
"severity": "MODERATE",
"baseline": 20,
"actual": 15,
"timestamp": "2026-05-12T00:00:00Z"
}
]
}
|
|
HTTP/2 400 Bad Request
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89ztzxra5ptt3vio
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "VALIDATION_FAILED",
"details": "Invalid timeRange: 'end' must be after 'start'."
}
|
|
HTTP/2 401 Unauthorized
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_CREDENTIALS_PROVIDED",
"details": "Authentication token is missing or invalid."
}
|
|
HTTP/2 403 Forbidden
date: Wed, 24 Sep 2025 10:36:37 GMT
content-type: application/json
x-request-id: 89zthxrm5pxt9phi
vary: Origin
content-length: 67
x-http2-stream-id: 3
{
"name": "NO_PERMISSION",
"details": "User does not have permission to query inspection insights."
}
|
関連ページ:
チーム
チームは、特定のプロジェクトを蓄積する組織の一部です。チームを使用すると、Qodana クラウドの専用プロジェクトごとにユーザーをグループ化できます。チームを作成する:プロジェクトのセットアップ段階では、Qodana Cloud がチームの作成を支援するため、この手順は追加のチームを作成する場合にのみ必要です。組織ページで、「」をクリックします。これにより、ダイアログが開きます。ダイアログで、チーム名と可視性を指定して、をクリックします。チームを移動する:組織ページでチームのタイルをクリック...
プロジェクト
プロジェクトは Qodana レポートを蓄積します。各プロジェクトはプロジェクトトークンによって一意に識別されます。プロジェクトの作成:チームページで、ボタンをクリックします。プロジェクトのセットアップ段階を完了します。この段階の詳細については、前提条件セクションを参照してください。プロジェクトを管理する:プロジェクトが作成された後、その VCS に移動して VCS 設定を更新したり、プロジェクトを別のチームに移動したり、プロジェクトの名前を変更したり、ここですでに使用可能なプロジェクトトーク...
インサイト
Insights を使用すると、Qodana Cloud で組織レベルおよびチームレベルの集計データを分析できます。Insights ダッシュボードは Ultimate Plus ライセンスで利用可能です。利用可能な Qodana ライセンスの詳細については、サブスクリプションのオプションと価格ページを参照してください。デモをリクエストすることもできます。組織レベルでインサイトを表示するには、組織ページの上部にあるインサイトボタンをクリックします。チームレベルで同じ操作を行うには、チームページでこ...
Qodana のエディション
ニーズに応じて、次の表に示す適切なライセンスを選択できます。Community フリー孤立した問題の解決に最適 Ultimate 詳細については、サブスクリプションのオプションと価格を参照してくださいさまざまなビジネスタスクを解決するために設計されています。試用版をご利用いただけます。Ultimate Plus 詳細については、サブスクリプションのオプションと価格を参照してください Ultimate ライセンスと同じ機能がすべて含まれていますが、追加機能と無制限の履歴データストレージも含まれています。試用...
組織
組織は、Qodana クラウド内のすべてのエンティティの最上位レベルの構造を提供します。すべての組織は、特定の JetBrains アカウントに基づいて作成され、プライベートまたはパブリックのいずれかになります。Qodana Cloud のすべてのアカウントは、デフォルト組織となる組織に基づいています。Qodana Cloud UI の左上にあるリストを使用して、組織間を移動できます。組織を構成する:組織のメンバーシップや公開範囲を設定したり、組織から脱退したりできます。サイドバーで、構成する...
構造検索
構造検索は、JetBrains IDE に組み込まれた強力で柔軟なメカニズムです。検索テンプレートを使用することで、コードベースのセマンティクスを考慮しながら解析できます。独自の検索テンプレートを作成し、Qodana インスペクションとして利用することも可能です。構造検索の仕組み:例として、次の検索テンプレートを考えてみましょう。$Instance$.$MethodCall$($Parameter$) これにより、Java ステートメントを検出できます。のようなハードコードされたテキストを含むス...