Introducing pre-start feature and bugfix name filtering
Summary
Pre-start NAME filtering for feature and bugflix flows.
This mostly replicates the pre-start VERSION filtering performed for release, hotfix and support flows, to facilitate standardised naming - to your spec - for features and bugfixes that most tooling can work with.
Motivation
Many of us developers are at least familiar with JIRA - or similar management tools - and, where possible, may leverage any integrations possible to facilitate a smooth workflow.
Different tools and integrations can not all handle the same free-form feature and bugfix branch names; one tool might handle [/] brackets fine, the next might meltdown... the meltdown possibilities are endless.
What would be nice would be to copy the title of your JIRA ticket and use that as the feature/bugfix name, but have it automatically whipped into shape that all tools and integrations are happy.
An example developer setup
I tend to replicate this setup at any and every client possible:
- JIRA
- Git with Git Flow AVH installed
- IntelliiJ IDEA with Git, Git Flow and Task Management plugins installed
-
Tools / Tasks configured to talk to JIRA:
-
Changelist name format set to
[{id}] {summary} -
Feature branch name format set to
${id}-${summary}, replace space with_(undescore) -
Commit Message template enabled and set to
[{id}] {summary}(server config)
-
Changelist name format set to
-
Version Control / Issue Navigation configured with
[A-Z]+\-\d+mapping to JIRA
-
Tools / Tasks configured to talk to JIRA:
How that works
With this setup, from IntelliJ I can open or switch to a task assigned to me in JIRA and it will mostly do the right thing.
If for whatever reason, the BA, Product Owner or Scrum Master created a JIRA with weirdness in the name, it could all or partially meltdown... or at least look weird in IntelliJ and weirder still in the Terminal shell e.g. with PS1 command prompt integration enabled.
The hope for NAME filtering
The hope is that Git Flow and these new NAME filters will have the final say on what the feature or bugfix branch name will be, hence regardless what the orchestrating tool is, that essentially requested a new feature or bugfix be started, it will automatically work with the name Git Flow decides.
I'm in the process of updating gitflow. If you could kindly resubmit your pull request against my fork here as it appears this fork is no longer being updated.