GitRepositoryManager/README.md

52 lines
2.9 KiB
Markdown

# Git repositories manager
Sync your repositories with single click
## Usage
Create a yaml file with the given structure
```yaml
# Place where your repositories should be saved
workspace: ${HOME}/workspace
# List with repositories, that you want to manage with GRM
repositories:
- src: "git@github.com:Revalus/GitRepositoryManager.git" # Required - specified repository to clone/fetch data
name: GRM # Optional, Uniq - if no name is specified, the repository will be treated as a name
dest: manager # Optional, Uniq - if no value is specified, name will be taken as destination
tags: ['companyX', 'departmentY'] # Optional - tags to specify to limit/exclude actions on the repository
```
### Note
By default, the config file is searched for in `[HOME_DIR]./config/grm/config.yaml`.
## Commands and arguments
### Global args
| argument | type | default | Description |
|------------------------------|----------|--------------------------------------|------------------------------------------------------------------------|
| **-c**, **--config-file** | *string* | `[HOME_DIR]./config/grm/config.yaml` | Path to configuration file, where the repositories must be specified |
| **-v**, **--version** | *bool* | `false` | Display current version |
| **--no-color** | *bool* | `false` | Turning off the display of output in color |
| **-n** **--name** | *string* | `empty` | Limit action to the specified repository name |
| **-t** **--tag** | *string* | `empty` | Limit action to the specified repository tag (may be more than one tag)|
| **max-concurrent-process** | *string* | `empty` | Determine how many tasks can run simultaneously |
### Commands
| command | Description |
|---------|--------------------------------------------------------------------------------------------------------------------|
| sync | Fetches changes from repositories or pulls a repository if one does not exist. |
| status | Get repository information - what is the current branch, how many commits are above and behind it for each remote. |
## Changelog
- 0.3.2 3rd party security libs update
- 0.3.1 Upgrade to Go 1.19
- 0.3.0 Adding the ability to limit actions to repositories containing a given name or tags
- 0.2.0 Add status command - get information about the current status in the repository
- 0.1.1 Allow to use env vars in config
- 0.1.0 Add sync command - allow to fetch and clone repositories