About a month ago I did the following life hack:

cd ~/bin && git init

I am not a Linux guy and am using a Macbook for development. All things bash and unix are fairly new to me so take everything with a grain of salt. But I since I started writing little scripts I figured it would make sense to put them under version control. And indeed, instead of copying and deleting things I am growing a custom set of aliases and scripts thanks to Git. One of the scripts has matured into a small tool that I use for personal projects as well as work projects at WebKinder. I called it github-release and published it as its own repository on GitHub yesterday 1. On GitHub I describe it as “A bash script to draft a new GitHub release with an automatically generated changelog.”. It basically combines a commit message convention, a custom git log and a GitHub API call to create new GitHub releases with pre-populated changelogs. Check out the repository for all the details if you are interested!

github-release readme header

In case you wonder what the build step for a bash script might be: I use a tool called shellcheck2 to check coding styles of my bash scripts. It is like ESLint for JavaScript or PHPCodeSniffer for php, but for bash scripting instead. It has a wiki on GitHub with explanations and examples for all rules. I basically use it as a study tool to improve my bash scripts. Whenever shellcheck gives me an error, I check the corresponding Wiki entry and learn something about bash. In that regard this project has been a utility and learning experience simultaneously for me. The best!