Using Git and Subversion tools to update DoneDone issues
January 25, 2012
Last Friday we released Git and Subversion integration for two fantastic version control services, GitHub and Beanstalk. What this means is that programmers can make a number of changes to DoneDone issues directly from their version control tools (Cornerstone, Tortoise, command line, etc.), provided their repositories are hosted at one of the above services.

We follow the same general conventions other issue tracking services have followed in the past in that you’ll be using some simple syntax in your commit messages, the contents of which are sent over to DoneDone via webhook by the respective service.
While we’re cooking up more formal documentation for both services, we wanted to get some preliminary instructions for getting DoneDone speaking version-controlese.
What you can do
- Change an issue’s status
- Change an issue’s Fixer
- Add a comment to an issue
- Add tags to an issue
Information you need to get started
- Your DoneDone API key - This is located on your own Profile page (screenshot)
- Your DoneDone URL - You’ll find this, eh hmm, in your browser’s address bar provided you have DoneDone open.n (screenshot)
- A DoneDone project’s ID - This is the number right after the *.com/ if you’re on a project’s landing page. (screenshot)
Why don’t we put this info on the Project Settings page? Good idea. It’ll be up this Friday, January 27th
Setting up Beanstalk
First, log into your Beanstalk account, navigate to the repository you want to integrate with a DoneDone project, and select Setup > Integration > Web Hooks. For the URL, enter the URL tied to your DoneDone project’s integration endpoint. For Beanstalk, it looks like this:
https://user:APIKEY@[account].mydonedone.com/issuetracker/hook/process/[projectID]/beanstalk
Once integrated, Beanstalk will post data to DoneDone each time you commit something to your SVN repo or each time you push something to your Git repo. If you’re interested in a bit more help, there’s a good article on the subject over at www.BeanstalkApp.com.
Setting up GitHub
To integrate with your Github repository, you’ll need to add a post-receive URL to the Service Hooks settings of any repository at GitHub. They’ve got some pretty simple instructions for how to do this up at http://help.github.com/post-receive-hooks/. As for providing a URL endpoint for DoneDone, you’ll need to create something as follows:
https://user:APIKEY@[account].mydonedone.com/issuetracker/hook/process/[projectID]/github
Creating your message to DoneDone
Regardless of whether you’re using Beanstalk (svn or git) or GitHub, when your repository receives a commit or a push from a developer, it will send a message describing what happened to DoneDone. This message, in essence, is a formatted comment included in your push/commit. The syntax DoneDone expects to see is as follows:
Your general commit comments would go here. This will be inserted as a comment in DoneDone for the issues you specify below. [#ISSUE_NUMBER tags:"QUOTED,LIST,OF,COMMA,SEPARATED,TAGS"] [#ISSUE_NUMBER reassign:VALID_EMAIL@OF.DONEDONE.USER] [#ISSUE_NUMBER status:VALID_STATUS]
If you want to include several edits in a single action, it would look something like this:
[#ISSUE_NUMBER status:VALID_STATUS tags:"QUOTED,LIST, OF,
COMMA, SEPARATED,TAGS" reassign:VALID_EMAIL@OF.DONEDONE.USER]Valid Edits
Each action tag must begin with a pound sign (#) followed by a valid issue number after which at least one (and up to all three) of the following actions (case-sensitive):
- status
- tags
- reassign
Valid Statuses
The status action, if provided, changes the status of the issue and valid values for this key are as follows (case-insensitive):
- Ready For Next Release
- Closed
- Fixed
- Open
- In Progress
- Not An Issue
- Not Reproducible
- Missing Information
- Pushed Back
- Ready For Retest
- Fix Not Confirmed
Tag additions
The tags action, if provided, must be a comma separated list of tags wrapped in quotes.
Reassigning Fixers
The reassign action, if provided, must be the valid email address of a person on the DoneDone project to whom you wish to reassign the issue.
A note on limits
You can add a total of 10 of actions in a commit (for SVN) or push (for Git). If you provide more than 10, only the first 10 will be processed. This is an arbitrary number in place to prevent overuse while we ensure the service is in healthy shape under normal usage.
It’s also important to mention that DoneDone maps users via their email address, so the email address you use with Github or Beanstalk needs to match the email address of your DoneDone account.
Examples
Example A
I fixed the weird glitch with the font that happens in IE7 and IE8. I also fixed a javascript bug. Lastly, I stubbed in an image for the new graphic we want to use so that the designer can create a new one.[#19 status:Fixed tags:"ui"] [#20 status:Fixed tags:"javascript"] [#23 reassign:designer@wearemammoth.com tags:"graphics,ui" status:In Progress]
In DoneDone, this will mark issues #19 and #20 as Fixed and add the tags “ui” and “javascript”. Issue #23 will be reassigned to designer@wearemammoth.com, the tags “graphics” and “ui” will be added, and the status will be set to In Progress. The comment describing the changes to these issues will be “I fixed the weird glitch with the font that happens in IE7 and IE8. I also fixed a javascript bug. Lastly, I stubbed in an image for the new graphic we want to use so that the designer can create a new one.”
Example B
Sped up the issue detail page by 10%. [#22]
In DoneDone, the only thing that’ll happen is the comment “Sped up the issue detail page by 10%” will be added to issue #22.
Wrap up
This should get the party started for now. We’ll be working on the experience a bit, by adding some preformed URL endpoints under the Project Settings page in DoneDone. Hopefully, the good fellas over at Beanstalk will help get DoneDone-specific updates refined on their end of things.
If you’ve got any questions or issues, please holler. Either here in comments or via www.getdonedone.com/support if it’s urgent. Otherwise, enjoy, and happy committing.
Bitbucket integration as well please!
Hey Dan –
We’re aware of an army of passionate Bitbucket users as well. This is a service we can and will get up and running soon. Thanks for the ding.
Cheers,
Craig
Fantastic work guys!
I managed to get this working with Beanstalk, except for Example B (where only an issue number is specified). When I tried this, no comments appear in DoneDone – but as soon as I add a status change, it works!
Any ideas what I may be doing wrong?
Thank, Rob
Hey Rob –
Sorry about that one, it’s being addressed as we speak, and most likely will be released in our 5:30 CST build today. Also, going up … this documentation will be available inside of the app, so no more clicking over to the blog :)
Thanks for the bug report, and chat soon.
Cheers,
CB
Oh, my goodness. That is a smily face emoticon thing above. Last time I do that. I had no idea wordpress was a 14 yr old.
-CB
Thanks CB, appreciate the update!
I don’t even mind the smiley :)