I’ve been turned on to JetBrains’ RubyMine quite a bit lately. Despite my affinity for more “old school” development environments like Emacs (which I used for many years in my former development life), I’ve really been enjoying working with RubyMine. In fact, I’m pretty sure it’s winning my most recent “Screw this IDE crap, I’m going back to a text editor!” self-battle.
Still, we could always improve, and there’s one particular improvement that would be a dream come true for me (and insure that, following my 30 day trial, I actually purchase the software rather than moving on to something else to try in my new found romance with Ruby). That feature is true integration between RubyMine, PivotalTracker and Github.
It’s actually something that I’m surprised doesn’t already exist, considering that, by all accounts, the PivotalTracker team actually uses RubyMine. Furthermore, PivotalTracker’s new API has great integration with GitHub’s service hooks. Telling me that surely this problem has been bumped into before.
In fact, it’s such an obvious need, and I’m so convinced that a solution has to exist, that I pretty much want someone to just point me to the plugin! A free pint at Double Mountain Brewery in Hood River for anyone who can point me to that plugin!
My current workflow is disconnected because, while I can easily create a commit message that starts/finishes a PivotalTracker story, I still have to go to the PivotalTracker website to get the story number, which involves a lot of window switching and mouse clicking. And as anybody knows, the moment I switch the window, my mental context goes right out the window.
Hell, at that point, I may as well see who’s complain about the new Apple announcement on Twitter. In order to use RubyMine and PivotalTracker, I have to check on Twitter a lot.
Current workflow
- Working on feature A, but realize that there’s a need for fix B as a consequence. Want to add fix B as a story?
- Go to PivotalTracker website, add story, then go back. Or stage story somehow, but something so that you don’t forget.
- Back to RubyMine to finish feature A development. Commit using PivotalTrack’s Github integration?
- Back to PivotalTracker website to look up story, copy story ID to clipboard
- Back to RubyMine (or terminal) to add story ID to commit message. Want to start working on fix B?
- Back to PivotalTracker website to start story for fix B
- Work on fix B, but realize that there’s a desire for feature C…
- Back to PivotalTracker website…
- Lather, rinse, repeat…
Realizing that this is a simplified workflow, but it illustrates the point of the contextual switching needed to use both of these tools. Because of this, I often end up just thinking of stuff and forgetting it and/or dumping a long list of stories at once that may or may not be relevant. Ideally, I’d be quickly and easily able to add stories to the icebox that can later be assessed for need and added to the project’s iteration quickly. Plus, I’d be able to quickly pull a story to start/finish it from within RubyMine.
Desired Workflow
- Working on feature A, but realize a need for fix B. Keyboard shortcut to add feature in (modal?) window and save with <enter> closing window and cursor is right where it was.
- Finish feature A and keyboard shortcut to stage/commit with optional alternative keyboard shortcut to bring window of “active stories” that I can cursor down to and hit <enter> (add story to commit message) type commit message and hit <enter> (again, closing window and returning with cursor placed)
- work on fix B…
- M-I-C-K-E-Y without using my M-O-U-S-E
Want that beer?
Someone tell me how to do this. Let me buy you that pint!
I know we’ve got to be able to do this, because, well, why the heck wouldn’t we?1 What I want to know is what is the PivotalTracker team itself using?
What are you using? I’ve searched for a solution to no avail. Is there a better way to add stories and get the story id into a commit message? Or am I just being ridiculous?
Give me this, JetBrains, and I will buy RubyMine today.
- The usual answer to this is “because my lazy ass hasn’t coded it up yet.” To which I have no real response. <cough><cough>it’s commercial software<cough> [↩]


