{"meta":{"title":"CodeQL パックを発行して使用する","intro":"CodeQL パックを共有またはダウンロードし、CodeQL データベースを分析します。","product":"セキュリティとコードの品質","breadcrumbs":[{"href":"/ja/code-security","title":"セキュリティとコードの品質"},{"href":"/ja/code-security/how-tos","title":"やり方"},{"href":"/ja/code-security/how-tos/find-and-fix-code-vulnerabilities","title":"コードの脆弱性を見つけて修正する"},{"href":"/ja/code-security/how-tos/find-and-fix-code-vulnerabilities/scan-from-the-command-line","title":"コマンド ラインからスキャンする"},{"href":"/ja/code-security/how-tos/find-and-fix-code-vulnerabilities/scan-from-the-command-line/publish-and-use-packs","title":"パックを発行して使用する"}],"documentType":"article"},"body":"# CodeQL パックを発行して使用する\n\nCodeQL パックを共有またはダウンロードし、CodeQL データベースを分析します。\n\n## 認証中 GitHubContainer registries\n\n適切な GitHubContainer registryに認証することで、パックを発行し、プライベート パックをダウンロードできます。\n\n```\n          Container registryに対して認証するには、次の 2 つの方法があります。\n```\n\n1\\.\n`--github-auth-stdin` オプションをCodeQL CLIに渡し、GitHub Apps トークンを指定するか、標準入力を使用してpersonal access tokenします。\n1\\.\n`GITHUB_TOKEN`環境変数をGitHub Appsトークンまたはpersonal access tokenに設定します。\n\n##\n\n```\n          CodeQL パックの発行\n\n          CodeQL パックを他のユーザーと共有するには、Container registryに発行します。\n```\n\n### 公開前に `qlpack.yml` ファイルを構成する\n\n発行する前に、 CodeQL パックの構成の詳細を確認して変更できます。 任意のテキスト エディターで `qlpack.yml` ファイルを開きます。\n\n```yaml\nlibrary: # set to true if the pack is a library. Set to false or omit for a query pack\nname: <scope>/<pack>\nversion: <x.x.x>\ndescription: <Description to publish with the package>\ndefaultSuite: # optional, one or more queries in the pack to run by default\n    - query: <relative-path>/query-file>.ql\ndefaultSuiteFile: default-queries.qls # optional, a pointer to a query-suite in this pack\nlicense: # optional, the license under which the pack is published\ndependencies: # map from CodeQL pack name to version range\n```\n\n* ```\n          `name:` は `<scope>/<pack>` 形式に従う必要があります。ここで、 `<scope>` は発行先の GitHub 組織で、 `<pack>` はパックの名前です。\n  ```\n\n* ```\n          `defaultSuite` または `defaultSuiteFile` のうち、許可されるのは 1 つのみです。 この 2 つは、実行する既定のクエリ スイートを定義する異なる方法です。1 つ目は qlpack.yml ファイルにクエリを直接指定し、2 つ目はパックにクエリ スイートを指定します。\n  ```\n\n### 実行中 `codeql pack publish`\n\nパックを GitHubContainer registryに発行する準備ができたら、pack ディレクトリのルートで次のコマンドを実行できます。\n\n```shell\ncodeql pack publish\n```\n\n発行されたパッケージは、GitHub ファイルのスコープで指定`qlpack.yml`組織のパッケージ セクションに表示されます。\n\n> \\[!NOTE]\n> 既定のセットアップ構成の一部として組織内のすべてのリポジトリにカバレッジを拡張するためにモデル パックを GitHubContainer registry に発行する場合は、コード スキャンを実行しているリポジトリがそれらのモデル パックにアクセスできることを確認する必要があります。 詳細については、「[既定設定の構成を編集する](/ja/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup)」および「[パッケージのアクセス制御と可視性の設定](/ja/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)」を参照してください。\n\n## 既存の CodeQL パックのダウンロード\n\n他のユーザーが作成したパックを実行するには、まず次のコマンドを実行してダウンロードする必要があります。\n\n```shell\ncodeql pack download <scope>/<pack>@x.x.x\n```\n\n* ```\n          `<scope>`: ダウンロードする GitHub 組織の名前。\n  ```\n* ```\n          `<pack>`: ダウンロードするパックの名前。\n  ```\n* ```\n          `@x.x.x`: 省略可能なバージョン番号。 省略すると、最新バージョンがダウンロードされます。\n  ```\n\nこのコマンドは、複数のパックの引数を受け入れます。\n\nダウンロードするクエリ パックの特定のバージョン番号を指定するスクリプトを記述する場合は、 CodeQL のバージョンを新しいバージョンに更新するときに、新しいバージョンのクエリ パックに切り替える必要がある場合があることに注意してください。 新しいバージョンの CodeQL\\_may\\_ は、非常に古いバージョンにピン留めされたクエリ パックで使用するとパフォーマンスが低下します。 詳細については、「[CodeQL クエリパック参照](/ja/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility)」を参照してください。\n\n##\n\n```\n          CodeQL パックを使用してCodeQL データベースを分析する\n\n          CodeQL パックを使用してCodeQL データベースを分析するには、次のコマンドを実行します。\n```\n\n```shell\ncodeql database analyze <database> <scope>/<pack>@x.x.x:<path>\n```\n\n* ```\n          `<database>`: CodeQL データベースを分析する。\n  ```\n* ```\n          `<scope>`: パックが発行される GitHub 組織の名前。\n  ```\n* ```\n          `<pack>`: 使うパックの名前。\n  ```\n* ```\n          `@x.x.x`: 省略可能なバージョン番号。 省略すると、最新バージョンが使われます。\n  ```\n* ```\n          `:<path>`: クエリ、ディレクトリ、またはクエリ スイートへの省略可能なパス。 省略すると、パックの既定のクエリ スイートが使われます。\n\n          `analyze` コマンドは、指定したCodeQL パックの既定のスイートを実行します。 \n          CodeQL データベースの分析に使用する複数のCodeQL パックを指定できます。 例えば次が挙げられます。\n  ```\n\n```shell\ncodeql <database> analyze <scope>/<pack> <scope>/<other-pack>\n```\n\n> \\[!NOTE]\n> 注: `codeql pack download` コマンドでは、ダウンロードされたパックが、ローカルの変更を意図していない内部の場所に格納されます。 パックをダウンロード後に変更すると、予期しない (トラブルシューティングが難しい) 動作が発生する可能性があります。 パックのカスタマイズの詳細については、「[CodeQL パックの作成と操作](/ja/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs)」を参照してください。"}