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 all repos from Github/kunpengcompute organization to Gitee/kunpengcompute organization.
You can see more real 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 ssh key to push code in destination account,You can get the Github sshkeys in here,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"
- 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 }}
black_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
-
How to use
secrets
to add token and key?You can use below steps to add secrets, you can also see more in Secrets.