注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。
关于自动访问 GitHub.com 操作
默认情况下,GitHub Enterprise Server 上的 GitHub Actions 工作流不能直接使用 GitHub.com 或 GitHub Marketplace 中的操作。 若要使 GitHub.com 中的所有操作在企业实例上可用,可以使用 GitHub Connect 将 GitHub Enterprise Server 与 GitHub Enterprise Cloud 集成。
若要使用 GitHub.com 中的操作,GitHub Enterprise Server 和自托管运行器必须能够与 GitHub.com 建立出站连接。 不需要来自 GitHub.com 的入站连接。 有关详细信息, 有关详细信息,请参阅“关于自托管运行程序”。
或者,如果想要更严格地控制企业中允许哪些操作,则可以使用 actions-sync
工具手动下载操作并将其同步到企业实例中。 有关详细信息,请参阅“手动从 GitHub.com 同步操作”。
关于使用 GitHub Connect 的操作的解决方案
当工作流通过引用存储操作的存储库来使用操作时,GitHub Actions 将首先尝试在 你的 GitHub Enterprise Server 实例 上查找存储库。 如果 你的 GitHub Enterprise Server 实例 上不存在存储库,并且你启用了对 GitHub.com 的自动访问,GitHub Actions 将尝试在 GitHub.com 上查找存储库。
如果用户在企业中创建的组织和仓库与 GitHub.com 上的组织和仓库名称匹配,则将使用企业上的仓库代替 GitHub.com 仓库。 有关详细信息,请参阅“自动停用在 GitHub.com 上访问的操作的命名空间”。
启用对公共 GitHub.com 操作的自动访问
在为企业启用对 GitHub.com 的公共操作的访问权限之前,必须:
- 配置 你的 GitHub Enterprise Server 实例以使用 GitHub Actions。 有关详细信息,请参阅“GitHub Actions for GitHub Enterprise Server 使用入门”。
- 启用 GitHub Connect。 有关详细信息,请参阅“在 GitHub.com 上启用 GitHub Connect”。
-
在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。
-
在企业帐户边栏中,单击 GitHub Connect。
-
在“用户在工作流运行中可以使用 GitHub.com 上的操作”下,使用下拉菜单选择“已启用”。
-
在启用 GitHub Connect 后,您可以使用策略限制哪些公共操作可用于您企业的仓库中。 有关详细信息,请参阅“在企业中为 GitHub Actions 实施策略”。
自动停用在 GitHub.com 上访问的操作的命名空间
启用 GitHub Connect 时,用户不会看到现有工作流的行为发生变化,因为在回退到 GitHub.com 之前,GitHub Actions 会搜索 你的 GitHub Enterprise Server 实例上的每个操作。 这可确保企业创建的任何自定义版本的操作优先于 GitHub.com 上的对应版本。
为了确保工作流使用其预期操作并阻止潜在的滥用行为,一旦在 GitHub.com 上首次使用某个操作,与该操作关联的命名空间就将在你的企业中停用。 这将阻止用户在企业中创建与 GitHub.com 上的操作命名空间匹配的组织和存储库。
使用 GitHub.com 中的操作后,如果要在 你的 GitHub Enterprise Server 实例中创建具有相同名称的操作,首先需要使该组织和存储库的命名空间可用。
-
在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击 。
-
如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。
-
在左侧边栏中的“站点管理员”下,单击“已停用的命名空间” 。
-
在要在 你的 GitHub Enterprise Server 实例中使用的命名空间的右侧,单击“取消停用”。
-
转到相关组织并创建新的存储库。
提示: 取消停用命名空间时,请务必尽快使用该名称创建新存储库。 如果在创建本地存储库之前,工作流程在 GitHub.com 上调用关联的操作,则命名空间将再次停用。 对于频繁运行的工作流程中使用的操作,您可能会发现命名空间在您有时间创建本地存储库之前再次停用。 在这种情况下,您可以暂时禁用相关工作流程,直到创建新存储库。