メモ
GitHub ホステッド ランナーは、現在 GitHub Enterprise Server ではサポートされていません。
GitHub Enterprise Server 上の GitHub Actions は、インターネット アクセスのない環境で動作するように設計されています。 既定では、ワークフローは GitHub.com と GitHub Marketplace からのアクションを使用できません。
GitHub Connect を使用して GitHub Enterprise Server と GitHub Enterprise Cloud を統合することで、パブリック アクションへの自動アクセスを有効にすることをお勧めします。 「GitHub Connect を使用した GitHub.com アクションへの自動アクセスの有効化」を参照してください。
企業で許可されるアクションをより厳密に制御する場合は、このガイドに従って、open source actions-sync ツールを使用して、GitHub.com から企業に個々のアクション リポジトリを同期できます。
GitHub Enterprise Server をアップグレードすると、バンドルされたアクションはアップグレード パッケージの既定のバージョンに自動的に置き換えられます。 これらは、利用可能な最新バージョンではない可能性があります。 成功事例として、actions-sync を使用してアクションを更新する場合、アクションを最新の状態に保つために、GitHub Enterprise Server アップグレード (メジャーまたはマイナー) の後に、必ず actions-sync を再実行する必要があります。
`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` ツールは、GitHub Connect が有効になっていないシステムで使うためのものです。 GitHub Connect が有効になっているシステムでツールを実行すると、エラー `The repository <repo_name> has been retired and cannot be reused` が表示されることがあります。 これは、ワークフローが GitHub.com に対してそのアクションを直接使用し、名前空間が お使いの GitHub Enterprise Server インスタンスで廃止されたことを示します。 「[AUTOTITLE](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)」を参照してください。
前提条件
-
`actions-sync` ツールを使用する前に、すべての同期先組織が既にエンタープライズに存在していることを確認する必要があります。 次の例は、アクションを `synced-actions` という名前の組織に同期する方法を示しています。 「[AUTOTITLE](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)」を参照してください。 -
Enterprise に、宛先 Organization のリポジトリを作成して書き込むことができるpersonal access tokenを作成する必要があります。 「個人用アクセス トークンを管理する」を参照してください。
-
お使いの GitHub Enterprise Server インスタンスで
actionsOrganization 内のバンドルされたアクションを同期する場合は、actionsOrganization の所有者である必要があります。メモ
既定では、サイト管理者であっても、バンドルされた
actionsorganization の所有者ではありません。サイト管理者は、管理シェルの
ghe-org-admin-promoteコマンドを使用して、バンドルされたactions組織の所有者にユーザーを昇格させることができます。 「管理シェル (SSH) にアクセスする」と「コマンド ライン ユーティリティ」を参照してください。ghe-org-admin-promote -u USERNAME -o actions
例: actions-sync ツールの使用
この例は、actions-sync ツールを使って、GitHub.com からの個々のアクションを Enterprise インスタンスに同期する方法を示しています。
メモ
この例では、actions-sync sync コマンドを使います。これには、マシンから GitHub.com API と Enterprise インスタンスの API の両方に同時にアクセスする必要があります。 一度に 1 つのシステムにのみアクセスできる場合は、actions-sync pull と push コマンドを使用できます。 「actions-sync README」をご覧ください。
-
マシンのオペレーティング システム用の最新の
actions-syncリリースをダウンロードして展開します。 -
ツールのキャッシュ ファイルを保存するディレクトリを作成します。
-
ターミナルで、先ほど抽出したリリース ディレクトリ内の
binディレクトリに移動します。 次に例を示します。cd PATH/TO/gh_DATETIME_OS_ARCHITECTURE/bin -
`actions-sync sync` コマンドを実行します。./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`: 対象のエンタープライズ インスタンスへの personal access token。 -
`--destination-url`: 同期先のエンタープライズ インスタンスの URL。 -
`--repo-name`: 同期するアクション リポジトリ。これは `owner/repository:destination_owner/destination_repository` 形式になります。- 上記の例では
actions/staleリポジトリを、同期先のエンタープライズ インスタンス上のsynced-actions/actions-staleリポジトリに同期します。 上記のコマンドを実行する前に、エンタープライズにsynced-actionsという名前の組織を作成する必要があります。 -
`:destination_owner/destination_repository` を省略した場合、ツールではエンタープライズの元の所有者とリポジトリ名を使用します。 コマンドを実行する前に、アクションの所有者名と一致する新しい Organization を Enterprise に作成する必要があります。 同期されたアクションを Enterprise に保存するために中枢の Organization を使用することを検討してください。これは、異なる所有者からのアクションを同期する場合、複数の新しい Organization を作成する必要がないということです。 -
`--repo-name` パラメーターを `--repo-name-list` または `--repo-name-list-file` に置き換えることで、複数のアクションを同期できます。 「[`actions-sync` README](https://github.com/actions/actions-sync#actions-sync)」をご覧ください。
- 上記の例では
-
-
Enterprise でアクションリポジトリが作成された後、Enterprise 内のユーザは、宛先リポジトリを使用してワークフロー内のアクションを参照できます。 上記のアクション例の場合:
# このワークフローはGitHubによって認定されていないアクションを使用します。 # それらはサードパーティによって提供され、 # 別個の利用規約、プライバシーポリシー、 # ドキュメントを参照してください。 uses: synced-actions/actions-stale@v1「GitHub Actions のワークフロー構文」を参照してください。