# ワークフローで事前に作成されたビルディング ブロックを使用する

あらかじめ記述されたアクションを使用およびカスタマイズして、ワークフローを強化できます。

## ワークフローエディタで Marketplace アクションを参照する

リポジトリのワークフローエディタで、直接アクションを検索し、ブラウズできます。 サイドバーから特定のアクションを検索し、注目のアクションを見て、注目のカテゴリをブラウズできます。 また、アクションがGitHubコミュニティから受けたStarの数も見ることができます。

1. リポジトリで、編集したいワークフローファイルにアクセスします。
2. ファイル ビューの右上隅の <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> をクリックして、ワークフロー エディターを開きます。

![ヘッダー セクションを示すワークフロー ファイルのスクリーンショット。 ファイル編集用の鉛筆アイコンが濃いオレンジ色の輪郭で強調表示されています。](/assets/images/help/repository/actions-edit-workflow-file.png)

1. エディタの右側で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 がパートナー組織としてアクションの作成者を検証したことを示します。

![ファイル エディターでのワークフローのスクリーンショット。 サイドバーには、Marketplace のアクションが表示されています。 "GitHub によって認証されたクリエイター" バッジのアウトラインはオレンジ色です。](/assets/images/help/repository/actions-marketplace-sidebar.png)

## ワークフローにアクションを追加する

ワークフロー ファイル内のアクションを参照することで、ワークフローにアクションを追加できます。 ワークフローで使用するアクションは、以下の場所で定義できます。

* ワークフロー ファイルと同じリポジトリ
* すべてのパブリック リポジトリ
* Docker Hubに公開されたDockerコンテナイメージ

GitHub Actions ワークフローで参照されているアクションは、ワークフローを含むリポジトリの依存関係グラフで依存関係として表示できます。 詳細については、「[依存関係グラフについて](/ja/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)」を参照してください。

> \[!NOTE]
> セキュリティを強化するため、GitHub Actions はアクションまたは再利用可能なワークフローのリダイレクトをサポートしません。 つまり、所有者、アクションのリポジトリの名前、またはアクションの名前が変更されると、そのアクションを以前の名前で使用するすべてのワークフローは失敗します。

### GitHub Marketplace からのアクションの追加

アクションのリストのページには、アクションのバージョンと、そのアクションを利用するために必要なワークフローの構文が含まれています。 アクションが更新された場合でもワークフローを安定させるために、ワークフローファイルで Git または Docker タグ番号を指定することにより、使用するアクションのバージョンを参照できます。

1. ワークフローで使いたいアクションにアクセスしてください。
2. クリックすると、マーケットプレースに登録されているそのアクションの完全な情報を参照できます。
3. \[インストール] の下で、<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> をクリックしてワークフローの構文をコピーします。

![マーケットプレースに登録されているそのアクションの完全な情報のスクリーンショット。 そのアクションの \[クリップボードにコピー\] アイコンが濃いオレンジ色の輪郭で強調表示されています。](/assets/images/help/repository/actions-sidebar-detailed-view.png)

1. この構文をワークフロー中に新しいステップとして貼り付けてください。 詳しくは、「[GitHub Actions　のワークフロー構文](/ja/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsteps)」をご覧ください。
2. アクションで入力が必要な場合は、ワークフローで設定します。 アクションで必要な可能性がある入力については、「[ワークフローで事前に作成されたビルディング ブロックを使用する](/ja/actions/learn-github-actions/finding-and-customizing-actions#using-inputs-and-outputs-with-an-action)」をご覧ください。

ワークフローに追加したアクションに対してDependabot version updatesを有効化することもできます。 詳しくは、「[Dependabot でアクションを最新に保つ](/ja/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot)」をご覧ください。

### 同じリポジトリからのアクションの追加

ワークフロー ファイルがアクションを使用するのと同じリポジトリでアクションが定義されている場合、そのアクションはワークフロー ファイル内の `{owner}/{repo}@{ref}` または `./path/to/dir` 構文を使用して参照できます。

リポジトリ ファイル構造の例:

```shell
|-- hello-world (repository)
|   |__ .github
|       └── workflows
|           └── my-first-workflow.yml
|       └── actions
|           |__ hello-world-action
|               └── action.yml
```

パスはデフォルトの作業ディレクトリ (`github.workspace`、`$GITHUB_WORKSPACE`) に対する相対パス (`./`) です。 アクションがワークフローとは異なる場所にリポジトリをチェックアウトする場合は、ローカル アクションに使用される相対パスを更新する必要があります。

ワークフロー ファイルの例:

```yaml
jobs:
  my_first_job:
    runs-on: ubuntu-latest
    steps:
      # This step checks out a copy of your repository.
      - name: My first step - check out repository
        uses: actions/checkout@v6
      # This step references the directory that contains the action.
      - name: Use local hello-world-action
        uses: ./.github/actions/hello-world-action
```

この `action.yml` ファイルは、アクションのメタデータを提供するために使用されます。 このファイルの内容については、「[メタデータ構文リファレンス](/ja/actions/creating-actions/metadata-syntax-for-github-actions)」をご覧ください。

### 別のリポジトリからのアクションの追加

アクションがワークフロー ファイルとは異なるリポジトリで定義されている場合は、ワークフロー ファイル内で `{owner}/{repo}@{ref}` 構文を使用してアクションを参照できます。

アクションはパブリック リポジトリに格納する必要があります。。

```yaml
jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: actions/setup-node@v4
```

### Docker Hubでのコンテナーの参照

Docker Hubの発行済み Docker コンテナー イメージでアクションが定義されている場合は、ワークフロー ファイルで `docker://{image}:{tag}` 構文を使用してアクションを参照する必要があります。 コードとデータを保護するには、ワークフローで使用する前に、Docker コンテナー イメージの整合性をDocker Hubから確認することを強くお勧めします。

```yaml
jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: docker://alpine:3.8
```

Docker アクションの例については、[Docker-image.yml ワークフロー](https://github.com/actions/starter-workflows/blob/main/ci/docker-image.yml)と「[Docker コンテナーのアクションを作成する](/ja/actions/creating-actions/creating-a-docker-container-action)」をご覧ください。

### ワークフローでアクションを使用するためのセキュリティ強化

GitHubは、ワークフローのセキュリティを強化するために使用できるセキュリティ機能が用意されています。 GitHubのビルトイン機能を使用し、実行するアクションの脆弱性に関する通知を受け取ったり、ワークフロー内のアクションを最新の状態に保つプロセスを自動化したりできます。 詳しくは、「[セキュリティで保護された使用に関するリファレンス](/ja/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions)」をご覧ください。

## カスタムアクションにリリース管理を使用する

コミュニティアクションの作者は、タグ、ブランチ、または SHA 値を使用してアクションのリリースを管理するオプションがあります。 他の依存関係と同様に、アクションの更新を自動的に受け入れる際のお好みに応じて、使用するアクションのバージョンを指定する必要があります。

ワークフローファイルでアクションのバージョンを指定します。 リリース管理へのアプローチに関する情報、および使用するタグ、ブランチ、または SHA 値を確認するには、アクションのドキュメントを確認してください。

> \[!NOTE]
> サードパーティのアクションを使用する場合は、SHA 値を使用することをお勧めします。 ただし、Dependabot では、セマンティック バージョン管理を使用する脆弱な Dependabot alerts に対してのみ GitHub Actions が作成されることに注意してください。 詳細については、「[セキュリティで保護された使用に関するリファレンス](/ja/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions)」および「[Dependabot alerts](/ja/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)」を参照してください。

### タグの使用

タグは、メジャーバージョンとマイナーバージョンの切り替えタイミングを決定するときに役立ちますが、これらはより一過性のものであり、メンテナから移動または削除される可能性があります。 この例では、`v1.0.1` としてタグ付けされたアクションをターゲットにする方法を示しています。

```yaml
steps:
  - uses: actions/javascript-action@v1.0.1
```

### SHA の使用

より信頼性の高いバージョン管理が必要な場合は、アクションのバージョンに関連付けられた SHA 値を使用する必要があります。 SHA は不変であるため、タグやブランチよりも信頼性が高くなります。 ただし、このアプローチは、重要なバグ修正やセキュリティ更新プログラムなどのアクションの更新を自動的に受信しないことを意味します。 短縮された値ではなく、コミットの完全な SHA 値を使う必要があります。 SHA を選択するときは、アクションのリポジトリからであり、リポジトリ フォークではないことを確認してください。 この例では、アクションの SHA をターゲットにしています。

```yaml
steps:
  - uses: actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f
```

### ブランチの使用

アクションのターゲットブランチを指定すると、そのブランチに現在あるバージョンが常に実行されます。 ブランチの更新に重大な変更が含まれている場合、このアプローチは問題を引き起こす可能性があります。 この例では、`@main` という名前のブランチを対象とします。

```yaml
steps:
  - uses: actions/javascript-action@main
```

詳しくは、「[カスタム アクションについて](/ja/actions/creating-actions/about-custom-actions#using-release-management-for-actions)」をご覧ください。

## アクションで入力と出力を使用する

多くの場合、アクションは入力を受け入れたり要求したりして、使用できる出力を生成します。 たとえば、アクションでは、ファイルへのパス、ラベルの名前、またはアクション処理の一部として使用するその他のデータを指定する必要がある場合があります。

アクションの入力と出力を確認するには、リポジトリのルート ディレクトリの `action.yml` を確認します。

この `action.yml` の例では、`inputs` キーワードによって `file-path` という名前の必須の入力が定義され、何も指定されていない場合に使用される既定値が含まれています。
`outputs` キーワードは、結果を配置する場所を示す `results-file` という名前の出力を定義します。

```yaml
name: "Example"
description: "Receives file and generates output"
inputs:
  file-path: # id of input
    description: "Path to test script"
    required: true
    default: "test-file.js"
outputs:
  results-file: # id of output
    description: "Path to results file"
```