Creative use of
git blame for slack deploys notifications
The goal is to make explicit who coded a deployed feature so that people (outside the dev team) know who to contact in case of complaints or praises.
Slack deploy notification with authors faces
This technique requires to have facemojis named after each developer (4 first letters of firstnames). It relies on a
develop.md file that contains the changelog of the upcoming release, like so :
Higher level release description ### Added - item 1 ### Fixed - item 2 - item 3
We parse the output of
git blame on that file to prepend a developer facemoji for each item.
For example, imagine I’ve coded item 1 feature and added it to the
develop.md, then line
- item 1 becomes
:fabr: item 1.
Code is straight-forward :
def get_changelog(changelog_path): """Extract release synopsis and changelog from given file. """ blamelog = subprocess.check_output('git blame %s' % changelog_path) synopsis =  changelog =  h3_found = False for blameline in blamelog.split('\n'): line = ''.join(blameline.split(') ')[1:]) if line.startswith('###'): h3_found = True if not h3_found: synopsis.append(line) else: if line.startswith('- '): author = blameline.split()[1:5].lower() line = ':%s: %s' % (author.lower(), line[2:]) changelog.append(line) return synopsis, changelog
We’re done, you can craft a message with the synopsis and changelog and post a slack notification using requests.
Obviously, for this trick to work, each developer must log his activity in
develop.md and one should avoid at all costs editing others lines or the output of
git blame won’t reflect original authors.