6 ms·
This is quite cool, and actually something I'll propose to use at some http://github.com/theforeman http://github.com/theforeman repos. I didn't really underst
by eLobato 12y ago
This is quite cool, and actually something I'll propose to use at some http://github.com/theforeman http://github.com/theforeman repos.
I didn't really understood the format rules, so if the author posted this, a help section would help. I try to enforce
'%(type) #xxxx(: | -) %{description}'
How would you do that? #xxxx is just an issue number, so it can be #23891, and after that I want a separator from the description, semi colon or hyphen are fine. Probably %{scope} can be used but I didn't really understand it from the inline help, sorry!
- Gazler 12y agoHi, thanks for the feedback, it would be great to be used by a project like Foreman! Currently the string for the format only allows the 3 defined variables, type, scope and description. I have been using this style at https://github.com/Gazler/changex/commits/master https://github.com/Gazler/changex/commits/master to give you an idea of how it works. I was concerned that the format string might be a little weird to get from the help. I will try and clear this up a bit. I have attempted to build the string that you requested, currently an or separator is not supported, but I can take a look at adding it in. Here are the format strings that I think match your use case. Using a colon as a separator: test string: "Fixes #1234: foo" format: "%{type} #%{scope}: %{description}" [type: "Fixes", scope: "1234", description: "foo"] Using a hyphen as a separator: test string: "Fixes #1234 - foo" format: "%{type} #%{scope} - %{description}" [type: "Fixes", scope: "1234", description: "foo"] I hope this makes sense, let me know if you get it working!
- eLobato 12y agoInteresting, that makes sense. I'll check if the rest of the team would be ok with forcing commits to use colon as a separator until that feature is added. :) Still, what does %{scope} actually catch? Anything that's not %{type}, %{description} or an explicit character?
- Gazler 12y agoGlad it made sense! So the match is exact between the non %{..} characters. The idea for scope is the context of the commit, in my libraries I use the name of the class as the scope. For example with the default format string: test string: "fix(User): ensure email address is required" format: "%{type}(%{scope}): %{description}" [type: "fix", scope: "User", description: "ensure email address is required"] So any literal characters are matched exactly and anything inside the capturing %{...} is assigned to that variable. This does fall over in the following case: "fix():(User): ensure email address is required" "%{type}(%{scope}): %{description}" [type: "fix", scope: "):(User", description: "ensure email address is required"] It is certainly a candidate for improvement in the future.