ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

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

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

ここには以下の内容があります:

ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。


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

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

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

ただし、Enterprise で許可されるアクションをより厳密に制御する場合は、このガイドに従って、GitHub のオープンソース actions-sync ツールを使用して、個々のアクションリポジトリを GitHub.com から 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 インスタンスにすでに存在していることを確認する必要があります。 次の例は、Enterprise インスタンスの synced-actions という名前の Organization にアクションを同期する方法を示しています。 詳しい情報については、「新しい Organization をゼロから作成する」を参照してください。

  • Enterprise インスタンスに、宛先 Organization のリポジトリを作成して書き込むことができる個人アクセストークン (PAT) を作成する必要があります。 詳しい情報については、「個人アクセストークンを作成する」を参照してください。

  • If you want to sync the bundled actions in the actions organization on your GitHub Enterprise Server instance, you must be an owner of the actions organization.

    Note: By default, even site administrators are not owners of the bundled actions organization.

    Site administrators can use the ghe-org-admin-promote command in the administrative shell to promote a user to be an owner of the bundled actions organization. For more information, see "Accessing the administrative shell (SSH)" and "ghe-org-admin-promote."

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

例: actions-sync ツールを使用する

この例は、actions-sync ツールを使用して、個々のアクションを GitHub.com から Enterprise インスタンスに同期する方法を示しています。

注釈: この例では、actions-sync sync コマンドを使用します。これには、マシンから GitHub.com API と GitHub Enterprise Server インスタンスの API の両方への同時アクセスが必要です。 一度に 1 つのシステムにのみアクセスできる場合は、actions-sync pull および push コマンドを使用できます。 詳しい情報については、「actions/cache README」を参照してください。

  1. マシンのオペレーティングシステムの最新の actions-sync リリースをダウンロードして抽出します。

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

  3. actions-sync sync コマンドを実行します。

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

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

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

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

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

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

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

    uses: synced-actions/docker-build-push-action@v1
    

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

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.