【问题标题】:Is there any way to get edit branch protection rules in a mirrored repo in local?有没有办法在本地的镜像仓库中获取编辑分支保护规则?
【发布时间】:2023-01-18 13:10:53
【问题描述】:

我正在尝试将具有分支保护规则的存储库从 Github Enterprise Server 迁移到 Github Enterprise Cloud。

使用git clone --mirrorgit push --mirror 命令克隆并推送镜像仓库后。

在克隆和推送之后,我试图重命名我本地的分支(从mastermain)。

我已经将分支保护规则作为 push --mirror 的一部分推送。如果我在本地将分支从master 重命名为main,则会抛出错误,因为master 分支本身已被完全删除。

我正在寻找是否有一种方法可以在镜像仓库中本地编辑保护规则,甚至在将其推送到 Github Cloud 之前。

我确实查看了镜像仓库的内容。但似乎无法找到分支保护规则在镜像仓库中的位置(如果有的话)。

我该如何解决这个问题?

【问题讨论】:

  • 我不是 100% 精通 github 的设置,但我猜你在那个“镜像”repo 上有分支保护规则,因为它们以某种方式在 github 端被复制,AFAIK 这些规则没有出现在任何 git 对象中你会从 git clonegit clone --mirror 得到。
  • 是的。我没有看到他们。但它们肯定在某个地方。否则新的回购怎么会知道分支保护规则。
  • 你是如何在 github 上创建这个镜像仓库的?您是否在 github GUI 中单击了某种形式的“克隆存储库”或“复制存储库”?
  • 我确实在 GHEC 上创建了一个空的 repo,使用 --mirror 从 GHES 镜像克隆了 repo,并使用 --mirror 推送了相同的 repo。

标签: git github branch github-api git-branch


【解决方案1】:

我会建议 :

  • 转到你的镜像仓库的github GUI,移除master上的保护规则,
  • 推送你重命名的分支(通过完整的git push --mirror,或git push origin <local main>:main; git push origin --delete master
  • 在github GUI上设置保护规则main

[编辑]

通过评论中的附加信息,您表明您需要对整个存储库列表执行多次此操作,并且您正在使用 gh cli 工具。

  • gh 可能有管理这个的命令,我会引导你到gh help

  • 您可以使用 github API for protected branches 编写一种方法来删除 master 上的规则并将其添加到 main

【讨论】:

  • 我实际上正在寻找迁移具有分支保护规则的多个回购协议。因此,手动删除并再次添加会很麻烦。
  • 在那种情况下:检查 API (link to docs)
  • 有没有办法只重命名分支保护中的模式?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多