Update README.md
Signed-off-by: Tiago Garcia <tiago.rgarcia@ua.pt>
This commit is contained in:
parent
11f0a82b23
commit
2409ec8f5a
110
README.md
110
README.md
|
@ -17,53 +17,105 @@ Run the application using your configuration file:
|
||||||
|
|
||||||
You can see the config file format below.
|
You can see the config file format below.
|
||||||
|
|
||||||
### Run from source
|
### Install from source
|
||||||
|
|
||||||
Install the dependencies:
|
#### Install the dependencies:
|
||||||
|
|
||||||
- [CrowCpp](https://crowcpp.org/master/)
|
- [CrowCpp](https://crowcpp.org/master/)
|
||||||
- [nlohmann::json](https://github.com/nlohmann/json)
|
- [nlohmann::json](https://github.com/nlohmann/json)
|
||||||
|
|
||||||
Build the application:
|
#### Build the application:
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
cmake -S . -B build
|
git clone https://github.com/TiagoRG/gh-wh-handler.git
|
||||||
cmake --build build
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Run the application using your configuration file:
|
2. Create the build directory:
|
||||||
```console
|
```console
|
||||||
bin/gh-wh-handler.<arch> /path/to/config.json
|
cd gh-wh-handler
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: default config file path is `/etc/gh-wh-handler/config.json`
|
3. Run CMake:
|
||||||
|
```console
|
||||||
|
cmake ..
|
||||||
|
```
|
||||||
|
|
||||||
## Config File
|
4. Build and install the application:
|
||||||
|
```console
|
||||||
|
sudo make install
|
||||||
|
```
|
||||||
|
|
||||||
The configuration file should be a JSON file with the following format:
|
#### Run the application:
|
||||||
|
|
||||||
|
The application is running on a systemd service, which is both enabled and started after installation.
|
||||||
|
|
||||||
|
You can start, stop, restart, and check the status of the service using the following commands:
|
||||||
|
|
||||||
|
```console
|
||||||
|
sudo systemctl start gh-wh-handler # Start the service
|
||||||
|
sudo systemctl stop gh-wh-handler # Stop the service
|
||||||
|
sudo systemctl restart gh-wh-handler # Restart the service
|
||||||
|
sudo systemctl status gh-wh-handler # Check the status of the service
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also check the logs of the service using the following command:
|
||||||
|
|
||||||
|
```console
|
||||||
|
journalctl -u gh-wh-handler
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
As of now, the configuration menu is not yet implemented so you have to create the configuration file manually.
|
||||||
|
|
||||||
|
### Config File
|
||||||
|
|
||||||
|
The configuration file can be found in `/services/gh-wh-handler/config.json` and has the following format:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"port": 8080,
|
"port": 65001,
|
||||||
"repos": {
|
"update-files": {
|
||||||
"repo_full_name": {
|
"owner/repo-name": {
|
||||||
"branch": "target_branch",
|
"branch": "main",
|
||||||
"files": {
|
"files": {
|
||||||
"remote_path": "local_path"
|
"path/to/remote/file": "/path/to/local/file",
|
||||||
}
|
"...": "..."
|
||||||
}
|
},
|
||||||
},
|
"post-update": [
|
||||||
"tokens": {
|
"post-update-command",
|
||||||
"repo_full_name": "github_token"
|
"post-update-script",
|
||||||
},
|
"..."
|
||||||
"actions": {
|
]
|
||||||
"repo_full_name": [
|
|
||||||
"command1",
|
|
||||||
"command2"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"run-scripts": {
|
||||||
|
"owner/repo-name": {
|
||||||
|
"branch": "main",
|
||||||
|
"actions": [
|
||||||
|
"command",
|
||||||
|
"script",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tokens": {
|
||||||
|
"owner/repo-name": "token"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Endpoint
|
## Endpoints
|
||||||
|
|
||||||
|
Currently, the only endpoint for the application is `/update-files`, which is used to update the local files on every push as well as run post-update scripts.
|
||||||
|
|
||||||
|
Since only the `/update-files` endpoint is implemented, the configuration file may not contain the `run-scripts` field.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
|
||||||
|
|
||||||
|
|
||||||
Currently, the only endpoint for the application is `/update-files`
|
|
||||||
|
|
Loading…
Reference in New Issue