我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

手动从 GitHub.com 同步操作

对于需要访问 GitHub.com 上操作的用户,您可以将特定操作同步到 GitHub Enterprise Server 实例。

本文内容

此文档对您有帮助吗?

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。

注:GitHub Enterprise Server 2.22 上的 GitHub Actions 支持是有限的公测版。 要查看外部存储要求并请求访问测试版,请参阅“启用 GitHub Actions 和配置存储”。

注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。

GitHub Enterprise Server 上的 GitHub Actions 设计为在没有互联网连接的环境中工作。 默认情况下,工作流程不能使用直接来自 GitHub.com 和 GitHub Marketplace 的操作。

要使 GitHub.com 中的特定操作可用于工作流程,您可以使用 GitHub 的开源 actions-sync 工具将操作仓库从 GitHub.com 同步到企业实例。 有关访问 GitHub.com 上操作的其他方式,请参阅“关于 GitHub Enterprise Server 上的 GitHub.com 操作”。

关于 actions-sync 工具

actions-sync 工具必须在可以访问 GitHub.com API 和 GitHub Enterprise Server 实例的 API 的计算机上运行。 计算机不需要同时连接到两者。

如果计算机可以同时访问这两个系统,您可以使用单一 actions-sync sync 命令进行同步。 如果您一次只能访问一个系统,您可以使用 actions-sync pullpush 命令。

actions-sync 工具只能从存储在公有仓库中的 GitHub.com 下载操作。

基本要求

  • 在使用 actions-sync 工具之前,您必须确保所有目标组织已经存在于您的企业实例中。 以下示例演示如何将操作同步到企业实例上名为 synced-actions 的组织。 更多信息请参阅“创建组织”。
  • 您必须在企业实例上创建可以创建并写入目标组织中的仓库的个人访问令牌 (PAT)。 更多信息请参阅“创建个人访问令牌”。

示例:使用 actions-sync 工具

此示例演示使用 actions-sync 工具将个别操作从 GitHub.com 同步到企业实例。

注:此示例使用 actions-sync sync 命令 它要求从您的计算机同时访问 GitHub.com API 和 GitHub Enterprise Server 实例的 API。 如果您一次只能访问一个系统,您可以使用 actions-sync pullpush 命令。 更多信息请参阅 actions-sync 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-toke:目标企业实例的个人访问令牌。

    • --destination-url:目标企业实例的 URL。

    • --repo-name:要同步的操作仓库。 这将使用格式 owner/repository:destination_owner/destination_repository

      • 上面的示例将 docker/build-push-action 仓库同步到目标 GitHub Enterprise Server 实例上的 synced-actions/docker-build-push-action 仓库。 在运行上述命令之前,您必须在企业实例上创建名为 synced-actions 的组织。
      • 如果您省略 :destination_owners/destination_repost,工具将使用企业实例的原始所有者和仓库名称。 在运行命令之前,必须在实例上创建一个与操作的所有者名称匹配的新组织。 考虑使用一个中心组织来存储实例上同步的操作,因为这样在同步来自不同所有者的操作时,将无需创建多个新的组织。
      • --repo-name 参数替换为 --repo-name-list--repo-name-list-file 便可同步多个操作。 更多信息请参阅 actions-sync README
  4. 在企业实例上创建操作仓库后,企业中的人员可以使用目标仓库在其工作流程中引用操作。 对于上面显示的示例操作:

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

    更多信息请参阅“GitHub 操作的工作流程语法”。

此文档对您有帮助吗?

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。