Live feed of LH activity

peeja's Avatar

peeja

10 Dec, 2008 03:42 PM

It would be incredibly sweet to be able to get an XMPP feed (or other push-style feed) of a Lighthouse's activity. I'd like to make a chatbot to announce when certain things happen on the LH (and in our Git repo).

I know that's a pretty big deal to implement, but I figure it's worth asking.

  1. 1 Posted by Will Duncan on 10 Dec, 2008 03:44 PM

    Will Duncan's Avatar

    We actually had a very similar idea and I'm not sure if some of the team have hacked on it yet or not. Let me check on that today and get back to you.

  2. 2 Posted by Rick on 10 Dec, 2008 07:42 PM

    Rick's Avatar

    ejabberd was a bit too much hassle to deal with, so we added http callbacks. It currently powers the Tender Support ticket integration. If you're using the Lighthouse API gem, you can just add a CallbackHandler class. This lets you setup a callback URL that gets some JSON posted on every event.

    # lighthouse-api gem
    module Lighthouse
    # ... other classes
      class CallbackHandler < Base
      end
    end
    
    # your code
    Lighthouse.account = "foo"
    callback = Lighthouse::CallbackHandler.new
    callback.url = "http://myserver.com"
    callback.project_id = 1
    callback.save
    

    This is still pretty experimental. We may change the formats a bit, or lock down the number of callbacks you can use based on your plan. Once we release the new api with support baked in, you can consider this "final".

    Please do play around with it and share what you come up with!

  3. 3 Posted by self+lucidmac on 14 Dec, 2008 11:03 PM

    self+lucidmac's Avatar

    I'd settle for a legible RSS feed that I could give to people who wanted to see what was going on in our project.

  4. 4 Posted by Will Duncan on 14 Dec, 2008 11:27 PM

    Will Duncan's Avatar

    rss feeds already exist in Lighthouse though.

  5. 5 Posted by self+lucidmac on 14 Dec, 2008 11:36 PM

    self+lucidmac's Avatar

    Will given that I asked the Q I obviously don't know how to find them. Can you give me a clue? I did look.

    M.

  6. 6 Posted by Will Duncan on 15 Dec, 2008 12:18 AM

    Will Duncan's Avatar

    My apologies, I think I originally assumed you were inquiring about a specific type of feed vs the general account/project feeds.

    We probably should have a small rss option in the UI, but in order to cut down clutter some things have been decided to be left out.

    The Lighthouse feed can be found in your browsers auto discovery, which is typically in the browsers URL bar.

    Safari:

    safari

    Firefox:

    firefox

    You can reach the feed manually by adding /events.atom to the end of your account or project URL.

  7. 7 Posted by vgraupera on 16 Jan, 2009 01:27 AM

    vgraupera's Avatar

    Hi,

    I am interested in the callbacks.

    I am just calling the rest api directly. Can I use the experimental callbacks without the lighthouse api gem. Where do you get this btw? Are you referring to git://github.com/Caged/lighthouse-api.git?

    I was looking at the RSS feeds as well. They don't seem to contain all the events, only a subset. Is this a bug?

    Thanks.

    Vidal.

  8. 8 Posted by Rick on 16 Jan, 2009 01:37 AM

    Rick's Avatar

    Yes of course! It should match any other top level resource like project.

    Lighthouse.account = "foo"
    callback = Lighthouse::CallbackHandler.new
    callback.url = "http://myserver.com"
    callback.project_id = 1
    callback.save
    

    To do this with http, post this to http://foo.lighthouseapp.com/callback_handlers.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <callback-handler>
      <url>http://myserver.com</url>
      <project-id>1</project_id>
    </callback-handler>
    

    Or change the URL to *.json

    {"callback_handler":
      {"url": "http://myserver.com",
       "project_id": 2}}
    

    Pay special attention to the way xml uses dashes and json uses underscores. Also, keep the api basics in mind when dealing with authentication and http headers.

    Part of the new Lighthouse client api will include generation built from the ruby library. We'll just run something like rake restdoc to get something similar to the current docs.

  9. 9 Posted by vgraupera on 21 Jan, 2009 05:15 PM

    vgraupera's Avatar

    If you register a callback like above for <project-id>1</project_id> do you get notifications for all the tickets in that project? or just changes in the project itself? Thanks.

  10. 10 Posted by Rick on 21 Jan, 2009 05:38 PM

    Rick's Avatar

    You get all notifications for the project: tickets, memberships, messages, changesets. It sends you the full data for the object, so you don't have to worry about making another call to look up the modified object.

    I'll eventually add a filter field so you can set that you only want messages and tickets. I may go a step further and let you specify a ticket search query to specify that you only want closed tickets.

  11. 11 Posted by vgraupera on 22 Jan, 2009 01:17 AM

    vgraupera's Avatar

    Thanks.

    I understand this is still "private and experimental". Does this mean I have ask to have it enabled for my accounts so I can try it? Or is it on for all accounts?

  12. 12 Posted by Rick on 22 Jan, 2009 01:32 AM

    Rick's Avatar

    It's on, but we'll be limiting it in the near future. All non-free plans will be allowed to create just 1 callback handler. We'll be setting up some sort of api token program for other products that want to integrate. For instance, Tender uses callbacks, so it'll get its own callback token. We hope to partner with other products too. In the end, you'll be able to integrate with unlimited approved services that create callback handlers, and one private one.

  13. 13 Posted by System on 11 Mar, 2009 05:28 PM

    System's Avatar

    A Lighthouse ticket was created for this discussion

  14. brandi closed this discussion on 29 Jun, 2012 10:10 PM.

Discussions are closed to public comments.
If you need help with Lighthouse please start a new discussion.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac