开源项目 repository-mirroring-action
使用教程
项目介绍
repository-mirroring-action
是一个用于在不同代码托管平台之间镜像仓库的 GitHub Action。该项目支持将 GitHub 仓库镜像到 GitLab、BitBucket、AWS CodeCommit 等其他平台。通过使用这个 Action,开发者可以轻松实现代码仓库的同步,确保多个平台上的代码一致性。
项目快速启动
安装与配置
-
创建 GitHub Actions 工作流文件:在你的 GitHub 仓库中,创建一个
.github/workflows/mirroring.yml
文件。 -
编辑工作流文件:将以下内容复制到
mirroring.yml
文件中,并根据需要进行修改。
name: Mirroring Repository
on: [push, delete]
jobs:
to_gitlab:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Mirroring Action
uses: pixta-dev/repository-mirroring-action@v1.1.1
with:
target_repo_url: 'https://gitlab.com/<username>/<target_repository_name>.git'
ssh_private_key: ${{ secrets.GITLAB_SSH_PRIVATE_KEY }}
- 添加 SSH 密钥:在 GitHub 仓库的设置中,添加
GITLAB_SSH_PRIVATE_KEY
作为秘密。这个密钥需要与目标仓库的 SSH 密钥匹配。
运行工作流
提交并推送 mirroring.yml
文件到 GitHub 仓库后,每当有 push
或 delete
事件发生时,GitHub Actions 将自动执行镜像操作。
应用案例和最佳实践
应用案例
- 跨平台开发:开发者在 GitHub 上进行开发,同时将代码镜像到 GitLab,以便在 GitLab 上进行 CI/CD 操作。
- 备份策略:将 GitHub 仓库镜像到 AWS CodeCommit,作为代码的备份和灾难恢复策略。
最佳实践
- 定期测试:定期手动触发镜像操作,确保镜像过程无误。
- 监控与日志:在 GitHub Actions 中启用详细日志,便于排查问题。
- 权限管理:确保使用的 SSH 密钥权限最小化,避免安全风险。
典型生态项目
actions/checkout
:用于在 GitHub Actions 中检出代码的官方 Action。yesolutions/mirror-action
:另一个用于镜像仓库的 GitHub Action,支持更多自定义选项。
通过以上步骤和最佳实践,你可以有效地使用 repository-mirroring-action
在不同代码托管平台之间同步仓库,确保代码的一致性和安全性。