A GitHub Actions for sync current repository to other hub.
- 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
)
Be sure to run the actions/checkout in a step before this action.
# 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: '[email protected]:ttionya/Repository-Sync-Hub-Test.git'
# SSH key used to authenticate with git operations.
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
# 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.
Dependabot triggered Actions can't access secrets now, you can view details here.
Inspired by the following actions which may be more suitable for your workflow.
MIT