# go-utils
A set of utilities used by our Golang projects
* [errors](./errors/README.md)

## Install this private repo

Add this in your `~/.gitconfig`:
```
[url "ssh://git@gitlab.bob.co.za/"]
	insteadOf = https://gitlab.bob.co.za/
```

Run this to reset the go proxy
```
go env -w GOPROXY=
```

Set the private go module path
```
go env -w GOPRIVATE=gitlab.bob.co.za:bob-public-utils/bobgroup-go-utils
```

Run this in your project to add the private module
```
go get gitlab.bob.co.za:bob-public-utils/bobgroup-go-utils
```


## Creating a new release
When making changes, a new release needs to be made in order to use the updated library in your project.

1. First, make sure your `bob-tools` (https://gitlab.bob.co.za/bob-tools/bobgroup-tools) repository is up to date (minimum at commit `442f62f0`):
```
git pull
make install
```

2. After your changes have been merged to the `main` branch of `go-utils`, run the following command which will automatically create a new tag:
```
bob release tag 
```
and select project `bob-public-utils/bobgroup-go-utils`

3. For your project, upgrade to the new version by running the `go get` command and specifying the new tag:
```
go get gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils@v1.6.0
```

**Note:** The release documentation can be found in GitLab, by navigating to the new tag. For example: https://gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/-/tags/v1.6.0