- **status**: review --> in-progress
- **Reviewer**: Dave Brondsema
- **Comment**:

Feedback so far.  More to come, probably:

* I think we should make the payload format more like bitbucket and github.  In 
my testing so far I tried to piggy-back on 3rd parties' existing github or 
bitbucket integration but couldn't get it to work.  A big differnce is in using 
"commits" instead of "revisions" (which Google Code and this branch so far 
use).  I'd say match as much of the [github 
payload](https://developer.github.com/v3/activity/events/types/#pushevent) as 
we can.  There's a ton in there though that we won't be able to match, but the 
more the better.  [Bitbucket's 
payload](https://confluence.atlassian.com/display/BITBUCKET/POST+hook+management)
 is a bit more reasonably small.
* A big feature like this certainly needs docs.  I made a separate ticket for 
that [#7829]
* I haven't fully evaluated the way hooks are set up (entry points) vs having 
them be per-tool.  My initial thought is that this doesn't need to be on admin 
sidebar, but could be less prominent in the per-tool admin links.  Again, not 
fully thought through.. but I am thinking that when a user creates a webhook, 
they have to associate it with a specific tool anyway, so why not have it be a 
per-tool setting.  Different tools could still use a common controller/template 
for that.
* It's weird to me to have the edit link of a webhook be a (different) URL.  I 
think a link that just says "edit" would be better.

Need a tweak like this for better error handling:

~~~~
--- Allura/allura/webhooks.py
+++ Allura/allura/webhooks.py
@@ -256,11 +256,12 @@ def log_msg(self, msg, response=None):
             self.webhook.type,
             self.webhook.hook_url,
             self.webhook.app_config.url())
-        if response:
-            message = '{} {} {}'.format(
+        if response is not None:
+            message = '{} {} {} {}'.format(
                 message,
                 response.status_code,
-                response.reason)
+                response.text,
+                response.headers)
         return message
 
     def send(self):
~~~~



---

** [tickets:#4542] Implement webhooks**

**Status:** in-progress
**Milestone:** unreleased
**Labels:** sf-current sf-8 42cc 
**Created:** Fri Jul 13, 2012 02:55 PM UTC by Dave Brondsema
**Last Updated:** Wed Feb 04, 2015 10:46 PM UTC
**Owner:** Igor Bondarenko

We should have webhooks, compatible with github & bitbucket.  I don't see a 
spec for SCM webhooks anywhere.


---

Sent from forge-allura.apache.org because [email protected] is subscribed 
to https://forge-allura.apache.org/p/allura/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://forge-allura.apache.org/p/allura/admin/tickets/options.  Or, if this is 
a mailing list, you can unsubscribe from the mailing list.

Reply via email to