This action sync a repository when pushed changes to another repository, like subdir.
I have a Repo with HTML slides and I pushed changes frequently. I also have a second repository which is also a Github Page. This action publish my commits of the first repo in the second one. In the target repository, the source will be copied like sub directory.
There are 3 required arguments:
##username/repository_name##
: Target repository name (not url). Show actions/checkout documentation.##commit_github_username##
: User to show like Author in Github Commit##subdir_name_on_target##
: Name of directory on Target Repository
You have to define the secret API_TOKEN_GITHUB
in the source repo secrets section. You have define a Token here (set the repo
permission).
Create an action file .github/workflows/action-sync-repos.yml
in your source repo (where do you want to commit) with the next code:
on: [push]
jobs:
sync-with-gh-page:
runs-on: ubuntu-latest
name: Sync this repo with GH pages
steps:
- name: Checkout source repository
uses: actions/checkout@v2
with:
path: source-repo
- name: Checkout target repository
uses: actions/checkout@v2
with:
repository: ##username/repository_name##
path: target-repo
token: ${{ secrets.API_TOKEN_GITHUB }}
- name: Sync the repo
id: sync
uses: tomasdelvechio/[email protected]
with:
github-username: ##commit_github_username##
target-subdir-name: ##subdir_name_on_target##
The action file content:
on: [push]
jobs:
sync-with-gh-page:
runs-on: ubuntu-latest
name: Sync this repo with GH pages
steps:
- uses: actions/checkout@v2
with:
path: source-repo
- uses: actions/checkout@v2
with:
repository: pawunlu/pawunlu.github.io
path: target-repo
token: ${{ secrets.API_TOKEN_GITHUB }}
- name: Sync the repo
id: sync
uses: tomasdelvechio/[email protected]
with:
github-username: 'tomasdelvechio'
target-subdir-name: 'slides'
- Target Repo:
pawunlu/pawunlu.github.io
(A Github page repo) - Github Username:
tomasdelvechio
(Commit's author) - Subdir name:
slides
(You have this directory on the repository)
This file is created in the source repository. Example name: .github/workflows/action-sync-repos.yml
.