GitHub Actions - 将公共回购克隆到我的私人回购?

Posted

技术标签:

【中文标题】GitHub Actions - 将公共回购克隆到我的私人回购?【英文标题】:GitHub Actions - Cloning a Public Repo To My Private Repo? 【发布时间】:2021-03-29 23:33:42 【问题描述】:

我在 Github 上有一个公共 repo,我想克隆它。

我的目标是设置一个 Github 操作,每月一次,它将克隆此存储库并将任何新更改从公共存储库(托管在 Github)上传到我的私人存储库。

到目前为止,这是我的 yml 文件:

name: Clone Repo Copy

on:
  schedule:    
      - cron: "0 0 1 * *"
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          repository: aws/aws-sdk-java-archetype
          token: $ secrets.GITHUBPAT 
      - uses: actions/checkout@v2
      - run: |
          git config user.name github-actions
          git config user.email github-actions@github.com
          git add .
          git commit -m "generated"
          git push

(my secrets.GITHUBPAT 是我的 Github 个人访问令牌,它可以访问所有内容以进行调试)

但是,正如预期的那样,它没有用,这是我的日志:https://pastebin.com/tHLP0rn5(已编辑以删除用户名和 repo) 如何让 GitHub Actions 克隆一个公共仓库并将其推送到我的私人仓库?

【问题讨论】:

【参考方案1】:

您可以使用Git Sync Action 之类的操作,它甚至适用于独立/非分叉的存储库。

【讨论】:

【参考方案2】:

如果您只想将更改推送到镜像仓库,则无需添加和提交任何内容。

在这种情况下,使用git remote add mirror https://url.to.your.private.repo,然后推送git push mirror branchname,源分支上不存在的提交将同步到远程。

这假设镜像是一个精确的副本,并且人们也没有将更改推送到该 repo,在这种情况下,这个过程会有点困难。

【讨论】:

以上是关于GitHub Actions - 将公共回购克隆到我的私人回购?的主要内容,如果未能解决你的问题,请参考以下文章

sh 克隆所有github回购

如何从 GitHub Actions 克隆 BitBucket 项目?

如何在 GitHub Actions 中构建的 Dockerfile 中使用 github 令牌并尝试克隆私有存储库?

如何将公共 Git 存储库恢复到特定的先前提交?

GitKraken没有显示回购我是贡献者

Git 克隆