{"meta":{"title":"ワークフローで事前に作成されたビルディング ブロックを使用する","intro":"あらかじめ記述されたアクションを使用およびカスタマイズして、ワークフローを強化できます。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/actions","title":"GitHub Actions"},{"href":"/ja/actions/how-tos","title":"方法"},{"href":"/ja/actions/how-tos/write-workflows","title":"ワークフローを書き込む"},{"href":"/ja/actions/how-tos/write-workflows/choose-what-workflows-do","title":"ワークフロー動作を選択する"},{"href":"/ja/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions","title":"アクションを検索してカスタマイズする"}],"documentType":"article"},"body":"# ワークフローで事前に作成されたビルディング ブロックを使用する\n\nあらかじめ記述されたアクションを使用およびカスタマイズして、ワークフローを強化できます。\n\n## ワークフローエディタで Marketplace アクションを参照する\n\nリポジトリのワークフローエディタで、直接アクションを検索し、ブラウズできます。 サイドバーから特定のアクションを検索し、注目のアクションを見て、注目のカテゴリをブラウズできます。 また、 GitHub コミュニティからアクションが受け取った星の数を表示することもできます。\n\n1. リポジトリで、編集したいワークフローファイルにアクセスします。\n2. ファイル ビューの右上隅にあるワークフロー エディターを開くには、\\[ <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-pencil\" aria-label=\"Edit file\" role=\"img\"><path d=\"M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z\"></path></svg>] をクリックします。\n\n![ヘッダー セクションを示すワークフロー ファイルのスクリーンショット。 ファイル編集用の鉛筆アイコンが濃いオレンジ色の輪郭で強調表示されています。](/assets/images/help/repository/actions-edit-workflow-file.png)\n\n1. エディターの右側にある GitHub Marketplace サイドバーを使用してアクションを参照します。 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-verified\" aria-label=\"Creator verified by GitHub\" role=\"img\"><path d=\"m9.585.52.929.68c.153.112.331.186.518.215l1.138.175a2.678 2.678 0 0 1 2.24 2.24l.174 1.139c.029.187.103.365.215.518l.68.928a2.677 2.677 0 0 1 0 3.17l-.68.928a1.174 1.174 0 0 0-.215.518l-.175 1.138a2.678 2.678 0 0 1-2.241 2.241l-1.138.175a1.17 1.17 0 0 0-.518.215l-.928.68a2.677 2.677 0 0 1-3.17 0l-.928-.68a1.174 1.174 0 0 0-.518-.215L3.83 14.41a2.678 2.678 0 0 1-2.24-2.24l-.175-1.138a1.17 1.17 0 0 0-.215-.518l-.68-.928a2.677 2.677 0 0 1 0-3.17l.68-.928c.112-.153.186-.331.215-.518l.175-1.14a2.678 2.678 0 0 1 2.24-2.24l1.139-.175c.187-.029.365-.103.518-.215l.928-.68a2.677 2.677 0 0 1 3.17 0ZM7.303 1.728l-.927.68a2.67 2.67 0 0 1-1.18.489l-1.137.174a1.179 1.179 0 0 0-.987.987l-.174 1.136a2.677 2.677 0 0 1-.489 1.18l-.68.928a1.18 1.18 0 0 0 0 1.394l.68.927c.256.348.424.753.489 1.18l.174 1.137c.078.509.478.909.987.987l1.136.174a2.67 2.67 0 0 1 1.18.489l.928.68c.414.305.979.305 1.394 0l.927-.68a2.67 2.67 0 0 1 1.18-.489l1.137-.174a1.18 1.18 0 0 0 .987-.987l.174-1.136a2.67 2.67 0 0 1 .489-1.18l.68-.928a1.176 1.176 0 0 0 0-1.394l-.68-.927a2.686 2.686 0 0 1-.489-1.18l-.174-1.137a1.179 1.179 0 0 0-.987-.987l-1.136-.174a2.677 2.677 0 0 1-1.18-.489l-.928-.68a1.176 1.176 0 0 0-1.394 0ZM11.28 6.78l-3.75 3.75a.75.75 0 0 1-1.06 0L4.72 8.78a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L7 8.94l3.22-3.22a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z\"></path></svg> バッジを持つアクションは、GitHubがパートナー組織としてアクションの作成者を検証したことを示します。\n\n![ファイル エディターでのワークフローのスクリーンショット。 サイドバーには、Marketplace のアクションが表示されています。 \"GitHub によって認証されたクリエイター\" バッジのアウトラインはオレンジ色です。](/assets/images/help/repository/actions-marketplace-sidebar.png)\n\n## ワークフローにアクションを追加する\n\nワークフロー ファイル内のアクションを参照することで、ワークフローにアクションを追加できます。 ワークフローで使用するアクションは、以下の場所で定義できます。\n\n* ワークフロー ファイルと同じリポジトリ\n* すべてのパブリック リポジトリ\n* Docker Hubに公開されたDockerコンテナイメージ\n\nGitHub Actions ワークフローで参照されているアクションは、ワークフローを含むリポジトリの依存関係グラフで依存関係として表示できます。 詳しくは、「[依存関係グラフ](/ja/code-security/concepts/supply-chain-security/dependency-graph)」をご覧ください。\n\n> \\[!NOTE]\n> セキュリティを強化するため、GitHub Actions はアクションまたは再利用可能なワークフローのリダイレクトをサポートしません。 つまり、所有者、アクションのリポジトリの名前、またはアクションの名前が変更されると、そのアクションを以前の名前で使用するすべてのワークフローは失敗します。\n\n### GitHub Marketplace からアクションを追加\n\nアクションのリストのページには、アクションのバージョンと、そのアクションを利用するために必要なワークフローの構文が含まれています。 アクションが更新された場合でもワークフローを安定させるために、ワークフローファイルで Git または Docker タグ番号を指定することにより、使用するアクションのバージョンを参照できます。\n\n1. ワークフローで使いたいアクションにアクセスしてください。\n2. クリックすると、マーケットプレースに登録されているそのアクションの完全な情報を参照できます。\n3. \\[インストール] で、 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copy\" aria-label=\"Copy to clipboard\" role=\"img\"><path d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z\"></path><path d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"></path></svg> をクリックしてワークフロー構文をコピーします。\n\n![マーケットプレースに登録されているそのアクションの完全な情報のスクリーンショット。 そのアクションの \\[クリップボードにコピー\\] アイコンが濃いオレンジ色の輪郭で強調表示されています。](/assets/images/help/repository/actions-sidebar-detailed-view.png)\n\n1. この構文をワークフロー中に新しいステップとして貼り付けてください。 詳しくは、「[GitHub Actions　のワークフロー構文](/ja/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idsteps)」をご覧ください。\n2. アクションで入力が必要な場合は、ワークフローで設定します。 アクションで必要な可能性がある入力については、「[ワークフローで事前に作成されたビルディング ブロックを使用する](/ja/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions#using-inputs-and-outputs-with-an-action)」をご覧ください。\n\nまた、ワークフローに追加するアクションの Dependabot version updates を有効にすることもできます。 詳しくは、「[Dependabot でアクションを最新に保つ](/ja/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/auto-update-actions)」をご覧ください。\n\n### 同じリポジトリからのアクションの追加\n\nワークフロー ファイルがアクションを使用するのと同じリポジトリでアクションが定義されている場合は、 `$/path/to/dir` 自己リポジトリ参照、またはワークフロー ファイル内の `{owner}/{repo}@{ref}` または `./path/to/dir` 構文を使用してアクションを参照できます。\n`$/`構文は、GitHub Enterprise Serverでは使用できません。\n\nリポジトリ ファイル構造の例:\n\n```shell\n|-- hello-world (repository)\n|   |__ .github\n|       └── workflows\n|           └── my-first-workflow.yml\n|       └── actions\n|           |__ hello-world-action\n|               └── action.yml\n```\n\n`$/path/to/dir`自己リポジトリ参照を使用してアクションを参照することをお勧めします。 これは実行中のコミットで同じリポジトリに解決されるため、最初にリポジトリをチェックアウトする必要はありません。\n`$/`が`{owner}/{repo}@{ref}`および`./`と比較する方法の詳細については、[GitHub Actions　のワークフロー構文](/ja/actions/reference/workflows-and-actions/workflow-syntax#example-using-an-action-in-the-same-repository-as-the-workflow-at-the-running-commit-recommended) を参照してください。\n\n`$/`を使用したワークフロー ファイルの例:\n\n```yaml\njobs:\n  my_first_job:\n    runs-on: ubuntu-latest\n    steps:\n      # This step references an action in the same repository at the\n      # running commit. No repository checkout is required.\n      - name: Use hello-world-action\n        uses: $/.github/actions/hello-world-action\n```\n\n相対 `./path/to/dir` 構文を使用してアクションを参照することもできますが、エラーが発生しやすくなります。 パスは既定の作業ディレクトリ (`./`、`github.workspace`) への相対パス (`$GITHUB_WORKSPACE`) であるため、チェックアウト手順が必要です。アクションがワークフローとは異なる場所にリポジトリをチェックアウトする場合は、相対パスを更新する必要があります。\n\n`./`を使用したワークフロー ファイルの例:\n\n```yaml\njobs:\n  my_first_job:\n    runs-on: ubuntu-latest\n    steps:\n      # This step checks out a copy of your repository.\n      - name: My first step - check out repository\n        uses: actions/checkout@v6\n      # This step references the directory that contains the action.\n      - name: Use local hello-world-action\n        uses: ./.github/actions/hello-world-action\n```\n\nこの `action.yml` ファイルは、アクションのメタデータを提供するために使用されます。 このファイルの内容については、「[メタデータ構文リファレンス](/ja/actions/reference/workflows-and-actions/metadata-syntax)」をご覧ください。\n\n### 別のリポジトリからのアクションの追加\n\nアクションがワークフロー ファイルとは異なるリポジトリで定義されている場合は、ワークフロー ファイル内で `{owner}/{repo}@{ref}` 構文を使用してアクションを参照できます。\n\nアクションは、パブリック リポジトリ」を参照してください。\n\n```yaml\njobs:\n  my_first_job:\n    steps:\n      - name: My first step\n        uses: actions/setup-node@v7\n```\n\n### Docker Hubでのコンテナーの参照\n\nDocker Hubの発行済み Docker コンテナー イメージでアクションが定義されている場合は、ワークフロー ファイルで `docker://{image}:{tag}` 構文を使用してアクションを参照する必要があります。 コードとデータを保護するには、ワークフローで使用する前に、Docker コンテナー イメージの整合性をDocker Hubから確認することを強くお勧めします。\n\n```yaml\njobs:\n  my_first_job:\n    steps:\n      - name: My first step\n        uses: docker://alpine:3.8\n```\n\nDocker アクションの例については、[Docker-image.yml ワークフロー](https://github.com/actions/starter-workflows/blob/main/ci/docker-image.yml)と「[Docker コンテナーのアクションを作成する](/ja/actions/tutorials/use-containerized-services/create-a-docker-container-action)」をご覧ください。\n\n### ワークフローでアクションを使用するためのセキュリティ強化\n\nGitHub には、ワークフローのセキュリティを強化するために使用できるセキュリティ機能が用意されています。\nGitHubの組み込み機能を使用して、使用するアクションの脆弱性に関する通知を受け取ったり、ワークフロー内のアクションを最新の状態に保つプロセスを自動化したりできます。 詳しくは、「[セキュリティで保護された使用に関するリファレンス](/ja/actions/reference/security/secure-use)」をご覧ください。\n\n## カスタムアクションにリリース管理を使用する\n\nコミュニティアクションの作者は、タグ、ブランチ、または SHA 値を使用してアクションのリリースを管理するオプションがあります。 他の依存関係と同様に、アクションの更新を自動的に受け入れる際のお好みに応じて、使用するアクションのバージョンを指定する必要があります。\n\nワークフローファイルでアクションのバージョンを指定します。 リリース管理へのアプローチに関する情報、および使用するタグ、ブランチ、または SHA 値を確認するには、アクションのドキュメントを確認してください。\n\n> \\[!NOTE]\n> サードパーティのアクションを使用する場合は、SHA 値を使用することをお勧めします。 ただし、Dependabot が Dependabot alerts を作成するのは、セマンティック バージョニングを使用する脆弱な GitHub Actions に対してのみである点に注意が必要です。 詳細については、「[セキュリティで保護された使用に関するリファレンス](/ja/actions/reference/security/secure-use#using-third-party-actions)」および「[Dependabot アラート](/ja/code-security/concepts/supply-chain-security/dependabot-alerts)」を参照してください。\n\n### タグの使用\n\nタグは、メジャーバージョンとマイナーバージョンの切り替えタイミングを決定するときに役立ちますが、これらはより一過性のものであり、メンテナから移動または削除される可能性があります。 この例では、`v1.0.1` としてタグ付けされたアクションをターゲットにする方法を示しています。\n\n```yaml\nsteps:\n  - uses: actions/javascript-action@v1.0.1\n```\n\n### SHA の使用\n\nより信頼性の高いバージョン管理が必要な場合は、アクションのバージョンに関連付けられた SHA 値を使用する必要があります。 SHA は不変であるため、タグやブランチよりも信頼性が高くなります。 ただし、このアプローチは、重要なバグ修正やセキュリティ更新プログラムなどのアクションの更新を自動的に受信しないことを意味します。 短縮された値ではなく、コミットの完全な SHA 値を使う必要があります。\nSHA を選択するときは、アクションのリポジトリからであり、リポジトリ フォークではないことを確認してください。 この例では、アクションの SHA を対象とします。\n\n```yaml\nsteps:\n  - uses: actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f\n```\n\n### ブランチの使用\n\nアクションのターゲットブランチを指定すると、そのブランチに現在あるバージョンが常に実行されます。 ブランチの更新に重大な変更が含まれている場合、このアプローチは問題を引き起こす可能性があります。 この例では、`@main` という名前のブランチを対象とします。\n\n```yaml\nsteps:\n  - uses: actions/javascript-action@main\n```\n\n詳しくは、「[カスタム アクションの管理](/ja/actions/how-tos/create-and-publish-actions/manage-custom-actions#using-release-management-for-actions)」をご覧ください。\n\n## アクションで入力と出力を使用する\n\n多くの場合、アクションは入力を受け入れたり要求したりして、使用できる出力を生成します。 たとえば、アクションでは、ファイルへのパス、ラベルの名前、またはアクション処理の一部として使用するその他のデータを指定する必要がある場合があります。\n\nアクションの入力と出力を確認するには、リポジトリのルート ディレクトリの `action.yml` を確認します。\n\nこの `action.yml` の例では、`inputs` キーワードによって `file-path` という名前の必須の入力が定義され、何も指定されていない場合に使用される既定値が含まれています。\n`outputs` キーワードは、結果を配置する場所を示す `results-file` という名前の出力を定義します。\n\n```yaml\nname: \"Example\"\ndescription: \"Receives file and generates output\"\ninputs:\n  file-path: # id of input\n    description: \"Path to test script\"\n    required: true\n    default: \"test-file.js\"\noutputs:\n  results-file: # id of output\n    description: \"Path to results file\"\n```"}