English | 简体中文
Action for mirroring repos between Hubs (like Github and Gitee)
steps:
- name: Mirror the Github organization repos to Gitee.
uses: Yikun/hub-mirror-action@master
with:
src: github/kunpengcompute
dst: gitee/kunpengcompute
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
account_type: org
Here is a workflow to mirror the kunpengcompute org repos from Github to Gitee, see more complete workflows in here.
src
source account, such asgithub/kunpengcompute
, is the Github kunpengcompute account.dst
Destination account, such as/kunpengcompute
, is the Gitee kunpengcompute account.dst_key
the private key to push code in destination account (default in ~/.ssh/id_rsa), you can see generating SSH keys to generate the pri/pub key, and make sure the pub key has been added in destination. You can set Github ssh key in here,set the Gitee ssh key in here.dst_token
the API token to create non-existent repo, You can get Github token in here, and the Gitee in here.
account_type
(optional) default isuser
, the account type of src and dst account, can be set toorg
oruser
,only support mirror between same account type (that is "org to org" or "user to user").clone_style
(optional) default ishttps
, can be set tossh
orhttps
.cache_path
(optional) let code clone in specific path, can be used with actions/cache to speed up mirror.black_list
(optional) the black list, such as “repo1,repo2,repo3”.white_list
(optional) the white list, such as “repo1,repo2,repo3”.static_list
(optional) Only mirror repos in the static list, but don't get list from repo api dynamically (the white/black list is still available). like 'repo1,repo2,repo3'force_update
(optional) Force to update the destination repo, use '-f' flag do 'git push'
- name: Organization mirror
uses: Yikun/hub-mirror-action@master
with:
src: github/kunpengcompute
dst: gitee/kunpengcompute
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
account_type: org
- name: Single repo mirror
uses: Yikun/hub-mirror-action@master
with:
src: github/Yikun
dst: gitee/yikunkero
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
white_list: "hub-mirror-action"
white_list: "hashes"
- name: Black list
uses: Yikun/hub-mirror-action@master
with:
src: github/Yikun
dst: gitee/yikunkero
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
static_list: "hub-mirror-action,hashes"
- name: ssh clone style
uses: Yikun/hub-mirror-action@master
with:
src: github/Yikun
dst: gitee/yikunkero
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
clone_style: "ssh"
- name: Mirror with specific cache
uses: Yikun/hub-mirror-action@master
with:
src: github/Yikun
dst: gitee/yikunkero
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
cache_path: /github/workspace/hub-mirror-cache
- name: Mirror with force push (git push -f)
uses: Yikun/hub-mirror-action@master
with:
src: github/Yikun
dst: gitee/yikunkero
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
force_update: true
debug: true
- name: Mirror with force push (git push -f)
uses: Yikun/hub-mirror-action@master
with:
src: github/Yikun
dst: gitee/yikunkero
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
force_update: true
timeout: '1h'
-
How to use
secrets
to add token and key?You can use below steps to add secrets, you can also see more in Secrets.
- Hub mirror template: A template repo to show how to use this action. from @yi-Xu-0100
- Auto-Sync GitHub Repositories to Gitee: An introduction about how to use this action. from @ShixiangWang
- Use Github Action to sync reois to Gitee: The blog for this action.