Add documentation for Repository Synchronization

- add install_gh_tool.md
- add install_tea_tool.md
- add synchronize-repositories.md
Tino Schreiber 2023-04-05 08:23:41 +00:00
parent 701935c01d
commit e26b24754b
5 changed files with 117 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

37
install-gh-tool.md Normal file

@ -0,0 +1,37 @@
# Installation of gh (GitHub) CLI tool
This tools is used to interact with GitHub via CLI to e.g. create PullRequests.
## Prerequisits
* ssh public-key for GitHub
* [Personal Access Token](https://github.com/settings/token) (classic)
* Link: GitHub -> Developer Settings -> Personal Access Tokens -> Tokens (classic)
* Permissions: `admin:public_key, read:org, repo`
## Installation of gh Tool on Debian / Ubuntu and co.
Use the following bash snippet to get `gh` tool installed on your machine.
```bash
type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
```
## Authentication with gh tool
Run the following command to authenticate against Github
```
gh auth login
```
Fill in the following information and paste the Token.
![Alt-Text](_static/images/gh_auth_login.png)
The tool gives access to your GitHub account.

30
install-tea-tool.md Normal file

@ -0,0 +1,30 @@
# Installation of tea (Gitea) CLI tool
This tool is used to interact with Gitea via CLI to e.g. create PullRequests.
## Prerequisits
* ssh public-key for Gitea
* An [Access Token](https://gitea.eco.tsi-dev.otc-service.com/user/settings/applications)
* Gitea -> Settings -> Applications -> Manage Access Tokens -> \<Token-Name\> -> Generate Token
## Installation
Run the following command to get the `tea` tool and change permissions.
```
sudo wget https://dl.gitea.com/tea/0.9.2/tea-0.9.2-linux-amd64 -O /usr/local/bin/tea
sudo chmod +x /usr/local/bin/tea
```
## Authentication with tea
Run the following command to authenticate against our Gitea.
```
tea login add
```
Add the following information and your personal `Access Token`.
![Alt-Text](_static/images/tea_login_add.png)

50
synchronize-repository.md Normal file

@ -0,0 +1,50 @@
# Synchronize Repositories
It is important to know to which git service the synchronization will happen. You need different CLI tools for either Gitea or GitHub.
## Synchronize to GitHub
Install the tools from prerequesits section and authenticate to GH to begin the synchronization.
### Prerequisits
* [Install `gh` tool](install-gh-tool.md)
* Directory as workspace e.g. `~/workspace`
### Synchronize from Gitea to GitHub
Change directory to tools directory
```bash
cd ~/workspace/gitea/infra/otc-metadata/tools/
```
Run the following command to clone the prefered documentation of one service by selecting service-type and document-type. In our example: We clone the whole user manual from service CCE from internal (Gitea) to external (GitHub) repository. The option `--open-pr-gh` opens a Pull Request on GitHub side.
```bash
python sync_doc_repo.py --source-environment internal --target-environment public --service-type cce --document-type umn --branch-name main --work-dir ~/workspace/ --open-pr-gh
```
## Synchronize to Gitea
Install the tools from prerequesits section and authenticate to Gitea to begin the synchronization.
### Prerequisits
* [Install `tea` tool](install-tea-tool.md)
* Directory as workspace e.g. `~/workspace`
### Synchronize from Gitea to GitHub
Change directory to tools directory
```bash
cd ~/workspace/gitea/infra/otc-metadata/tools/
```
Run the following command to clone the prefered documentation of one service by selecting service-type and document-type. In our example: We clone the whole user manual from service Cloud Container Engine (cce) from external (GitHub) to internal (Gitea) repository.
```bash
python sync_doc_repo.py --source-environment public --target-environment internal --service-type cce --document-type umn --branch-name main --work-dir ~/workspace/
```