GitHub.com からアクションを手動で同期する

GitHub.com からのアクションにアクセスする必要があるユーザは、特定のアクションを Enterprise インスタンスに同期できます。

ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。

GitHub Enterprise Server上のGitHub Actionsは、完全なインターネットアクセスのない環境で動作するように設計されています。 デフォルトでは、ワークフローはGitHub.com及びGitHub Marketplaceからのアクションを使うことができません。

GitHub.com からのアクションへのアクセスを有効化する際に推奨されるアプローチは、すべてのアクションへの自動アクセスを有効化することです。 これを行うには、GitHub Connect を使用して GitHub Enterprise Server を GitHub Enterprise Cloud と統合します。 詳しい情報については、「GitHub Connect を使用した GitHub.com アクションへの自動アクセスを有効化する」を参照してください。

However, if you want stricter control over which actions are allowed in your enterprise, you can follow this guide to use GitHub's open source actions-sync tool to sync individual action repositories from GitHub.com to your enterprise.

actions-sync ツールについて

actions-sync ツールは、GitHub.com API と GitHub Enterprise Server インスタンスの API にアクセスできるマシンで実行する必要があります。 両方のマシンに同時に接続する必要はありません。

マシンが両方のシステムに同時にアクセスできる場合、1 つの actions-sync sync コマンドで同期を実行できます。 一度に 1 つのシステムにのみアクセスできる場合は、actions-sync pull および push コマンドを使用できます。

actions-sync ツールは、パブリックリポジトリに保存されている GitHub.com からのみアクションをダウンロードできます。

必要な環境

  • actions-sync ツールを使用する前に、すべての宛先 Organization が Enterprise にすでに存在していることを確認する必要があります。 次の例は、synced-actions という名前の Organization にアクションを同期する方法を示しています。 詳しい情報については、「新しい Organization をゼロから作成する」を参照してください。

  • Enterprise に、宛先 Organization のリポジトリを作成して書き込むことができる個人アクセストークン (PAT) を作成する必要があります。 For more information, see "Creating a personal access token."

  • your GitHub Enterprise Server instance の actions の Organization でバンドルされたアクションを同期する場合は、actions の Organization の所有者である必要があります。

    注釈: デフォルト設定では、サイト管理者であってもバンドルされたactions の Organization の所有者ではありません。

    サイト管理者は、管理シェルで ghe-org-admin-promote コマンドを使用して、ユーザをバンドルされたactions の Organization の所有者に昇格させることができます。 詳しい情報については、「管理シェル (SSH) へのアクセス」および「ghe-org-admin-promote」を参照してください。

    ghe-org-admin-promote -u USERNAME -o actions

Example: Using the actions-sync tool

This example demonstrates using the actions-sync tool to sync an individual action from GitHub.com to an enterprise instance.

Note: This example uses the actions-sync sync command, which requires concurrent access to both the GitHub.com API and your enterprise instance's API from your machine. If you can only access one system at a time, you can use the actions-sync pull and push commands. For more information, see the actions-sync README.

  1. Download and extract the latest actions-sync release for your machine's operating system.

  2. ツールのキャッシュファイルを保存するディレクトリを作成します。

  3. Run the actions-sync sync command:

    ./actions-sync sync \
      --cache-dir "cache" \
      --destination-token "aabbccddeeffgg" \
      --destination-url "https://my-ghes-instance" \
      --repo-name "actions/stale:synced-actions/actions-stale"

    上記のコマンドでは、次の引数を使用しています。

    • --cache-dir: コマンドを実行しているマシンのキャッシュディレクトリ。

    • --destination-token: 宛先 Enterprise インスタンスの個人アクセストークン。

    • --destination-url: 宛先 Enterprise インスタンスの URL。

    • --repo-name: 同期するアクションリポジトリ。 これは、owner/repository:destination_owner/destination_repository の形式を採用しています。

      • The above example syncs the actions/stale repository to the synced-actions/actions-stale repository on the destination enterprise instance. 上記のコマンドを実行する前に、Enterprise で synced-actions という名前の Organization を作成する必要があります。
      • :destination_owner/destination_repository を省略すると、ツールは Enterprise の元の所有者とリポジトリ名を使用します。 コマンドを実行する前に、アクションの所有者名と一致する新しい Organization を Enterprise に作成する必要があります。 同期されたアクションを Enterprise に保存するために中枢の Organization を使用することを検討してください。これは、異なる所有者からのアクションを同期する場合、複数の新しい Organization を作成する必要がないということです。
      • --repo-name パラメータを --repo-name-list または --repo-name-list-file に置き換えることにより、複数のアクションを同期できます。 詳しい情報については、「actions/cache README」を参照してください。
  4. Enterprise でアクションリポジトリが作成された後、Enterprise 内のユーザは、宛先リポジトリを使用してワークフロー内のアクションを参照できます。 上記のアクション例の場合:

    uses: synced-actions/actions-stale@v1
    

    詳しい情報については、「GitHub Actionsのワークフロー構文」を参照してください。

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?