Repository Sync Hub
A GitHub Actions for sync current repository to other hub.
Features
- Sync branches and tags to other repository (GitHub, GitLab, Gitee, etc.)
- Target repository support SSH and HTTP URL
- Automatic delete branches and tags that is deleted
- Retry on network errors
- Can triggered on
PUSH
andDELETE
event - Can triggered on a timer (
SCHEDULE
)
Usage
Be sure to run the actions/checkout in a step before this action.
SSH URL
# File .github/workflows/sync-ssh.yml
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
# Must be specified as 0, otherwise git does not allow push because of shallow updates.
fetch-depth: 0
-
name: Sync
uses: ttionya/Repository-Sync-Hub@v1
with:
# Sync to target repository full clone URL.
target_repository: 'git@github.com:ttionya/Repository-Sync-Hub-Test.git'
# SSH key used to authenticate with git operations.
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
HTTP URL
# File .github/workflows/sync-http.yml
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
# Must be specified as 0, otherwise git does not allow push because of shallow updates.
fetch-depth: 0
# Be sure use your own access token when you want to sync to GitHub repository,
# only HTTP URL need this.
token: ${{ secrets.HTTP_ACCESS_TOKEN }}
-
name: Sync
uses: ttionya/Repository-Sync-Hub@v1
with:
# Sync to target repository full clone URL.
target_repository: 'https://github.com/ttionya/Repository-Sync-Hub-Test.git'
# Login name used to authenticate with git operations.
http_access_name: 'ttionya'
# Personal Access Token (PAT) used to authenticate with git operations.
http_access_token: ${{ secrets.HTTP_ACCESS_TOKEN }}
Note: Access token needs workflow access, it will automatically check the full access to the repository.
You can see sample workflows for more usages.
About Dependabot
Dependabot triggered Actions can't access secrets now, you can view details here.
Thanks
Inspired by the following actions which may be more suitable for your workflow.
License
MIT