{"meta":{"title":"カスタム アクションの管理","intro":"独自のアクションを作成および管理し、 GitHub コミュニティによって共有されるアクションをカスタマイズする方法について説明します。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/enterprise-cloud@latest/actions","title":"GitHub Actions"},{"href":"/ja/enterprise-cloud@latest/actions/how-tos","title":"方法"},{"href":"/ja/enterprise-cloud@latest/actions/how-tos/create-and-publish-actions","title":"アクションの作成と公開"},{"href":"/ja/enterprise-cloud@latest/actions/how-tos/create-and-publish-actions/manage-custom-actions","title":"カスタム アクションの管理"}],"documentType":"article"},"body":"# カスタム アクションの管理\n\n独自のアクションを作成および管理し、 GitHub コミュニティによって共有されるアクションをカスタマイズする方法について説明します。\n\n## アクションの場所を選択する\n\n他のユーザーが使うアクションを開発する場合には、他のアプリケーションコードにバンドルするのではなく、アクションをそれ自体のリポジトリに保持しておくことをお勧めします。 こうすると、他のソフトウェアと同様にアクションのバージョニング、追跡、リリースが可能になるからです。\n\nアクションを独自のリポジトリに格納すると、 GitHub コミュニティがアクションを簡単に検出できるようになり、開発者が問題を修正してアクションを拡張するためのコード ベースの範囲が狭くなり、アクションのバージョン管理が他のアプリケーション コードのバージョン管理から切り離されます。\n\nアクションを公開せずに企業全体でアクションを共有するには、アクションを内部リポジトリに格納し、同じ組織または企業内の任意の組織が所有する他のリポジトリの GitHub Actions ワークフローへのアクセスを許可するようにリポジトリを構成します。 詳しくは、「[アクションとワークフローを企業と共有する](/ja/enterprise-cloud@latest/actions/how-tos/reuse-automations/share-with-your-enterprise)」をご覧ください。\n\n他のユーザーが使用できるようにする予定のないアクションを作成している場合は、リポジトリ内の任意の場所にアクションのファイルを格納できます。 アクション、ワークフロー、アプリケーション コードを 1 つのリポジトリで組み合わせる予定の場合、アクションは `.github` ディレクトリに保存することをお勧めします。 たとえば、`.github/actions/action-a` と`.github/actions/action-b` です。\n\n## その他のプラットフォームとの互換性を維持する\n\nGitHubやGitHub.comのカスタム ドメインなど、多くのユーザーがGHE.com以外のドメインでGitHub Enterprise Serverにアクセスします。\n\nアクションが他のプラットフォームと確実に互換性があるようにするには、`https://api.github.com` などの API URL へのハードコーディングされた参照を使用しないでください。 代わりに、以下を行うことができます。\n\n* 環境変数を使用する (「[変数リファレンス](/ja/enterprise-cloud@latest/actions/reference/workflows-and-actions/variables#default-environment-variables)」を参照してください):\n\n  * REST APIは、`GITHUB_API_URL` 環境変数を使用します。\n  * GraphQLは、`GITHUB_GRAPHQL_URL` 環境変数を使用します。\n\n* 適切な URL を自動的に設定できる [`@actions/github`](https://github.com/actions/toolkit/tree/main/packages/github) などのツールキットを使用する。\n\n## アクションにリリース管理を使用する\n\n他のユーザが使用するアクションを開発している場合は、リリース管理を使用して、更新の配布方法を管理することをお勧めします。 ユーザーは、アクションのパッチ バージョンについて、必須の重要修正およびセキュリティ パッチが含まれ、既存のワークフローとの互換性も引き続き維持していることを期待できます。 変更が互換性に影響する場合は、新しいメジャーバージョンのリリースを検討する必要があります。\n\nこのリリース管理アプローチでは、アクションが最新のコードを含む可能性が高く、結果として不安定になる可能性があるため、ユーザはアクションのデフォルトブランチを参照しないでください。 代わりに、ユーザにアクションの使用時にメジャーバージョンを指定するように勧めて、問題が発生した場合にのみ、さらに特定したバージョンを指定するようにすることができます。\n\n特定のアクション バージョンを使用するために、ユーザーはタグ、コミットの SHA、またはリリース用に名前付けされたブランチをターゲットにするように、 GitHub Actions ワークフローを構成できます。\n\n### タグを使用したリリース管理\n\n> \\[!NOTE] サプライ チェーン攻撃やリリースの意図しない変更を防ぐために変更不可リリースを有効にしている場合は、代わりに「[変更不可リリースとタグを使ったアクションのリリース管理](/ja/enterprise-cloud@latest/actions/how-tos/create-and-publish-actions/using-immutable-releases-and-tags-to-manage-your-actions-releases)」を参照してください。\n\nアクションのリリース管理にはタグを使用することをお勧めします。 この方法を使用すると、ユーザはメジャーバージョンとマイナーバージョンを簡単に区別できます。\n\n1. リリース ブランチ (たとえば、`release/v1`) 上でリリースを開発し、検証します。\n2. セマンティック バージョニングを使ってリリース タグ付きのリリースを作成します (たとえば、`v1.0.1`)。 詳しくは、「[リポジトリのリリースを管理する](/ja/enterprise-cloud@latest/repositories/releasing-projects-on-github/managing-releases-in-a-repository)」をご覧ください。\n3. メジャー バージョン タグ (たとえば、`v1`) を、現在のリリースの Git 参照を指すように移動します。 詳細については、「[Git basics - tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging)」(Git の基本 - タグ付け) を参照してください。\n4. アクションの入力を変更するなど、既存のワークフローを中断するような変更に対しては、新しいメジャー バージョン タグ (たとえば、`v2`) を設定します。\n\n#### タグを参照するための構文\n\nこの例では、ユーザーがメジャー バージョン タグを参照する方法を示しています。\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@v1\n```\n\n次の例は、ユーザが特定のパッチリリースタグを参照する方法を示しています。\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@v1.0.1\n```\n\n### ブランチを使用したリリース管理\n\nリリース管理にブランチ名を使用する場合、次の例では名前付きブランチを参照する方法を示しています。\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@v1-beta\n```\n\n### コミットの SHA を使用したリリース管理\n\n各 Git コミットは、計算された SHA 値を受け取ります。これは一意で不変のものです。 アクションのユーザは、コミットの SHA 値に依存することを好む場合があります。削除や移動ができるタグを指定するよりこの方法のほうが信頼できるためです。 ただし、これは、ユーザがアクションに対して行われた更新をそれ以上受け取らないことを意味しています。 短縮された値ではなく、コミットの完全な SHA 値を使う必要があります。\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f\n```\n\n## アクションのREADMEファイルを作成する\n\nアクションの使用方法を伝えるため、README ファイルを作成することをお勧めします。\n`README.md` には、以下の情報を含めることができます。\n\n* アクションが実行する内容の説明\n* 必須の入力引数と出力引数\n* オプションの入力引数と出力引数\n* アクションが使用するシークレット\n* アクションが使用する環境変数\n* ワークフローにおけるアクションの使用例"}