Hey there! Thanks for your interest in contributing to this project.
If you find a bug, please create an issue on GitHub. Make sure to include as much information as possible so that anyone can try to reproduce the bug.
If you have an idea for a new feature, please create an issue on GitHub.
Before submitting a pull request, let's discuss the changes you'd like to make. You can create an issue on GitHub to start the discussion. Any changes are welcome as long as they align with the spirit of the project. Please make sure to update any tests and documentation as needed.
This project is licensed under the MIT License - see the LICENSE file for details. Any contributions to this project are made under the same license.
gut
is a statically compiled binary written in Golang. To develop the project, you will only need Go installed on your machine.
To get started, clone the repository and run go build -o gut main.go
to build the binary.
Except for main.go, the source code is split into several folders within the src
folder:
cmd
: contains the main entrypoints of the application. Each.go
file in this folder is a subcommand ofgut
. No code should be written in this folder. It's only a declaration of the subcommands. Each declaration must then call the associated function in the controller package.controller
: contains the business logic of each command. Each.go
file in this folder is a subcommand ofgut
.executor
: contains the code to interact with the git repository.print
: helpers to print messages to the console.profile
: contains the code to interact with the authentication profile.prompt
: helpers to prompt the user for input.telemetry
: handles the telemetry of the application.provider
: contains the code to interact with some git hosting providers (GitHub, GitLab, Bitbucket, etc.).
To build the binary for production on all supported platforms, run ./script/release.sh
from the root of the project.
Before running the command, make sure you have tagged the last commit with the version number you want to release.
This project uses Gitmoji to add emojis to commit messages. If you don't know how to use it,
don't hesitate to commit your code with gut
.
This project uses gofmt to format the code.