Lighthouse Rake Tasks

I just added a patch adding rake tasks to the rails project that list
and help apply patches in Lighthouse using the LH API. This is to
help the patch application section of the new 'Sending Patches' page:

It adds the following rake tasks:

rake patch:list # list all open patch tickets
rake patch:show:ticket # show patch ticket, include ID=XX
rake patch:show:attach # outputs actual patch file, include ID=XX
rake patch:show:comments # lists all comments on a ticket and adds up
the +1s
rake patch:setup # setup your token, TOKEN=XXXX..
rake patch:comment # review a patch - comment and optionally +1

One of the cooler things is that you don't need to go to LH and
download a patch file to apply it. You can do something like this:

$ rake patch:show:attach ID=102 | git am

If this doesn't belong in the core, I can release it as a script or
something, I just thought it would be useful to build up rake tasks
that help simplify and solidify the patching process.

Let me know what you think.


Hah, very cool. Though I'd personally think it should be a plugin.
I'm not sure it's really needed for the majority of framework users vs
the (relatively) few contributors.

Also, maybe it should be prefixed with a 'rails' rake namespace?

I'm not sure how it would work as a plugin (since a rails repo != a
rails app), but maybe if we could install it for use with sake[1],
then contributors could use it pretty easily.


I just released this as a ruby script:

It is something like git-trac - you can setup your account by running
this in your 'rails' checkout:

git config lighthouse.account rails
git config lighthouse.projectId 8994

Then you can list open tickets that have patches like this:

$ git-lh list

Date Num Attch Title
05/01 87 1 Dependencies shouldn't swallow errors from required files.
05/02 94 2 quote_string don't work with some postgres drivers
05/08 142 1 belongs_to association not updated when assigning to foreign key
05/14 191 0 Belongs to polymorphic association assignment with new
records doesn't
05/14 192 1 AR Test failure on latest mysql

You can then test a patch like this:

$ git-lh checkout 94

Which will stash any changes that are pending, checkout the commit
closest to the time that ticket was created into a new branch called
'ticket94', and apply the patch.

Anyhow, hope you find it useful - let me know if there are any other
features that you would find helpful.