3
3
mirror of https://github.com/octoleo/octosync.git synced 2024-10-31 18:52:35 +00:00
octosync/README.md

67 lines
2.3 KiB
Markdown

## Github Sync Bot Setup
- We use this script to setup a github user on the Ubuntu systems in the Github Actions Workflows. See setup instructions below.
- Then the sync of each set of repositories are manage with a config file found in the conf folder.
- So we have to setup multiple workflows for each set repositories (config) you would like to sync.
### How To SETUP gitHub User
You will need to setup a list of secrets in your account. You can do this per/repository or per/organization.
> The github user email being used to build
- GIT_EMAIL
> The github username being used to build
- GIT_USER
> gpg -a --export-secret-keys >myprivatekeys.asc
> The whole key file text from the above myprivatekeys.asc
> This key must be linked to the github user being used
- GPG_KEY
> The name of the myprivatekeys.asc user
- GPG_USER
> A id_ed25519 ssh private key liked to the github user account
- SSH_KEY
> A id_ed25519.pub ssh public key liked to the github user account
- SSH_PUB
All these secret values are needed to fully automate the setup to easily interact with gitHub.
### Workflows
In your workflows action script you will need to add the following as an example:
```yaml
jobs:
build:
runs-on: [ubuntu-20.04]
steps:
- name: Setup gitHub User Details
env:
GIT_USER: ${{ secrets.GIT_USER }}
GIT_EMAIL: ${{ secrets.GIT_EMAIL }}
GPG_USER: ${{ secrets.GPG_USER }}
GPG_KEY: ${{ secrets.GPG_KEY }}
SSH_KEY: ${{ secrets.SSH_KEY }}
SSH_PUB: ${{ secrets.SSH_PUB }}
run: |
/bin/bash <(/bin/curl -s https://raw.githubusercontent.com/vdm-io/github-user/master/src/setup.sh) --gpg-key "$GPG_KEY" --gpg-user "$GPG_USER" --ssh-key "$SSH_KEY" --ssh-pub "$SSH_PUB" --git-user "$GIT_USER" --git-email "$GIT_EMAIL"
- name: Clone Sync Bot Repo
# this is the repo that does the work
run: |
/bin/git clone -b master --single-branch git@github.com:[org]/github-sync-bot.git bot
- name: Sync The Repo Files
run: |
cd bot
/bin/bash ./src/sync.sh --conf=./conf/[config]
```
### Free Software License
```txt
@copyright Copyright (C) 2021 Llewellyn van der Merwe. All rights reserved.
@license GNU General Public License version 2 or later; see LICENSE.txt
```