Automate Your Release Process with Precision and Ease.
- Generate well-crafted release notes using GPT-3.5 and GPT-4 models
- Fetch git commit logs in various formats (
compact
,full
) - Filter commit logs between two specified tags
- Filter commit logs from the last tag to the current date
- Seamlessly integrates with CI/CD pipelines
π¦ Prompts can be improved much more
- ChatGPT integration for generating release notes
- Predefined prompts
- Better error handling
- Create different file formats, with generated content for example: Markdown
- Spinner, activity indicator or some funny activity in terminal, while GPT is generating relese notes
- Interactivity, step by step asking user to input data.
- Custom prompts
- Github and Gitlab integration to create tags + releases.
Once installed, you can run releasecraftsman
from the terminal to start generating release notes.
releasecraftsman
will ask you couple of questions based on your need, then it will generate and create markdown file for you.
If you want to run it with single command without prompts, below are available options and commands.
This current command crafts release notes, with specific version from last tag to recent commit, using GPT4 model.
releasecraftsman -f compact -s v1.0.0 -k API_KEY -m Gpt_4 -v1.0.1
You can customize it and use GPT_3_5Turbo, you need to use your own, or companies API_KEY.
This will run the program using the default 'compact' format for git logs for latest 5 commit logs
releasecraftsman
Choose between 'compact' and 'hard' formats for the git logs.
releasecraftsman -f hard
Fetch git logs between specified start and end tags.
releasecraftsman -s v1.0 -e v1.2
This will defaultly uses compact mode, if you want hard format
releasecraftsman -f hard -s v1.0 -e v1.2
From Specified start tag to the latest commit.
releasecraftsman -s v1.0
Clone the repository:
git clone https://github.com/tornikegomareli/releasecraftsman.git
cd releasecraftsman
To compile and install using Cargo, ensure you have Cargo installed on your machine.
Then run the following commands:
cargo build --release
# Add to PATH
echo 'export PATH=$PATH:/path/to/target/release' >> ~/.bashrc
source ~/.bashrc
After building, you'll find the executable in the target/release
directory. You'll need to include this in your PATH in your .zshrc
or .bashrc
file
Alternatively, you can compile using the provided Makefile, it still uses cargo, so you still need to have cargo on your machine. So you need to follow above steps.
cd releasecraftsman
make build
It will compile and build
cd releasecraftsman
make install
It will move executable to /user/local/bin
cd releasecraftsman
make all
It will do both above commands in order You can change release/debug variable inside makefile
If you're on macOS, you can also install using Homebrew:
brew tap tornikegomareli/homebrew-releasecraftsman
brew install releasecraftsman
Currently releasecraftsman is not on official homebrew, thats why it usess my own tap, but soon will be there. Also it will be soon on popular package managers for different OS's, its not only designed for mac.
Compiled binaries are also available for download from the Releases section on GitHub.
Please note that releasecraftsman
is currently in a very early stage of development.
We welcome contributions of all types. Here are some ways you can contribute:
- Bug Fixes: If you find a bug, feel free to open an issue or create a pull request.
- New Features: New ideas and features are always welcome. Please open an issue for discussion before submitting a pull request.
- Code Quality: Improvements to the codebase, like optimizations or even simple clean-ups, are always appreciated.
- Documentation: Enhancements to the README or in-code documentation are fantastic and extremely helpful.
-
Fork the Repository: Start by forking the ReleaseCraftsman repository.
-
Clone the Fork: Clone your forked repository onto your local machine.
git clone https://github.com/your-username/releasecraftsman.git
-
Create a New Branch: Create a new branch on your local repository to implement your changes.
git checkout -b new-feature-or-fix
-
Implement Changes: Make your changes to the codebase, ensuring that they are well-documented.
-
Commit and Push: Once you're happy with your changes, commit them and push the changes to your GitHub repository.
git add . git commit -m "Describe your changes here" git push origin new-feature-or-fix
-
Create a Pull Request: Navigate to your repository on GitHub and click on "New Pull Request" to submit your changes for review.
For any questions or feedback, please open an issue on GitHub.