How to provide a prepared git commit message?

git, scripting, shell

Solution

The `commit` command has an option for reading a commit message from a template:

 -t <file>, --template=<file>
       When editing the commit message, start the editor with the contents
       in the given file. The commit.template configuration variable is often
       used to give this option implicitly to the command. This mechanism can
       be used by projects that want to guide participants with some hints on
       what to write in the message in what order. If the user exits the editor
       without editing the message, the commit is aborted. This has no effect
       when a message is given by other means, e.g. with the -m or -F options.

Problem

By convention I create my story branches in git to include Jira issue ids in them, e.g. FOO-1001. I have a script to do that for me. Now, I have prepared another script that fetches the title of FOO-1001 from Jira API. I want to achieve that when I type: ``` $ git commit ``` My editor opens up prefilled with the following: ``` BUGFIX: FOO-1001 Some sample issue title downloaded using my script ``` What is the easiest way to achieve this using the scripts I described? My idea is to somehow format the commit message to a file so that git can find it and use as default. One way seems to be to use `prepare-commit-msg` hook, but I would prefer to achieve my goal using a standalone script, without any configuration in `.git` (so that my colleagues can easily reuse it).

Original source

Related problems