Open fakeh opened 9 years ago
IIRC (should I say that? :smile_cat: ), you do not need to put your Jira credential as the clojure server is used as a webhook target.
In jira, you need to add a new webhook, and there add the address where your clojure server can be reached.
Then when a ticket is updated, your clojure server will be notified.
Hope it helps :+1:
Thanks. I really should have realised that! I created a test issue and it was created in Todoist. Great! Then I resolved the issue in JIRA (we have a simple project setup for this integration with OPEN, IN PROGRESS, TODO and DONE statuses, DONE also resolves the issue) but it was not marked as done in Todoist. I then made a second issue where the web hook call caused a 500 error on the server (sorry for the formatting, it's from Wireshark):
</style></head><body><div id="exception"><h1>java.lang.IllegalArgumentException</h1><div class="message">No method in multimethod 'dispatch-ticket-event' for dispatch value: jira:issue_created</div><div class="trace"><table><tbody><tr class="java"><td class="source">MultiFn.java:160</td><td class="method">clojure.lang.MultiFn.getFn</td></tr><tr class="java"><td class="source">MultiFn.java:227</td><td class="method">clojure.lang.MultiFn.invoke</td></tr><tr class="clojure"><td class="source">post.clj:14</td><td class="method">jira-todoist.post/handle-post</td></tr><tr class="clojure"><td class="source">handler.clj:9</td><td class="method">jira-todoist.handler/fn</td></tr><tr class="clojure"><td class="source">core.clj:99</td><td class="method">compojure.core/make-route[fn]</td></tr><tr class="clojure"><td class="source">core.clj:45</td><td class="method">compojure.core/if-route[fn]</td></tr><tr class="clojure"><td class="source">core.clj:30</td><td class="method">compojure.core/if-method[fn]</td></tr><tr class="clojure"><td class="source">core.clj:112</td><td class="method">compojure.core/routing[fn]</td></tr><tr class="clojure"><td class="source">core.clj:2515</td><td class="method">clojure.core/some</td></tr><tr class="clojure"><td class="source">core.clj:112</td><td class="method">compojure.core/routing</td></tr><tr class="java"><td class="source">RestFn.java:139</td><td class="method">clojure.lang.RestFn.applyTo</td></tr><tr class="clojure"><td class="source">core.clj:626</td><td class="method">clojure.core/apply</td></tr><tr class="clojure"><td class="source">core.clj:117</td><td class="method">compojure.core/routes[fn]</td></tr><tr class="clojure"><td class="source">keyword_params.clj:32</td><td class="method">ring.middleware.keyword-params/wrap-keyword-params[fn]</td></tr><tr class="clojure"><td class="source">nested_params.clj:75</td><td class="method">ring.middleware.nested-params/wrap-nested-params[fn]</td></tr><tr class="clojure"><td class="source">params.clj:58</td><td class="method">ring.middleware.params/wrap-params[fn]</td></tr><tr class="clojure"><td class="source">multipart_params.clj:107</td><td class="method">ring.middleware.multipart-params/wrap-multipart-params[fn]</td></tr><tr class="clojure"><td class="source">flash.clj:31</td><td class="method">ring.middleware.flash/wrap-flash[fn]</td></tr><tr class="clojure"><td class="source">session.clj:85</td><td class="method">ring.middleware.session/wrap-session[fn]</td></tr><tr class="java"><td class="source">Var.java:379</td><td class="method">clojure.lang.Var.invoke</td></tr><tr class="clojure"><td class="source">reload.clj:18</td><td class="method">ring.middleware.reload/wrap-reload[fn]</td></tr><tr class="clojure"><td class="source">stacktrace.clj:17</td><td class="method">ring.middleware.stacktrace/wrap-stacktrace-log[fn]</td></tr><tr class="clojure"><td class="source">stacktrace.clj:80</td><td class="method">ring.middleware.stacktrace/wrap-stacktrace-web[fn]</td></tr><tr class="clojure"><td class="source">jetty.clj:18</td><td class="method">ring.adapter.jetty/proxy-handler[fn]</td></tr><tr class="java"><td class="source">(Unknown Source)</td><td class="method">ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle</td></tr><tr class="java"><td class="source">HandlerWrapper.java:116</td><td class="method">org.eclipse.jetty.server.handler.HandlerWrapper.handle</td></tr><tr class="java"><td class="source">Server.java:363</td><td class="method">org.eclipse.jetty.server.Server.handle</td></tr><tr class="java"><td class="source">AbstractHttpConnection.java:483</td><td class="method">org.eclipse.jetty.server.AbstractHttpConnection.handleRequest</td></tr><tr class="java"><td class="source">AbstractHttpConnection.java:931</td><td class="method">org.eclipse.jetty.server.AbstractHttpConnection.content</td></tr><tr class="java"><td class="source">AbstractHttpConnection.java:992</td><td class="method">org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content</td></tr><tr class="java"><td class="source">HttpParser.java:856</td><td class="method">org.eclipse.jetty.http.HttpParser.parseNext</td></tr><tr class="java"><td class="source">HttpParser.java:235</td><td class="method">org.eclipse.jetty.http.HttpParser.parseAvailable</td></tr><tr class="java"><td class="source">AsyncHttpConnection.java:82</td><td class="method">org.eclipse.jetty.server.AsyncHttpConnection.handle</td></tr><tr class="java"><td class="source">SelectChannelEndPoint.java:628</td><td class="method">org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle</td></tr><tr class="java"><td class="source">SelectChannelEndPoint.java:52</td><td class="method">org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run</td></tr><tr class="java"><td class="source">QueuedThreadPool.java:608</td><td class="method">org.eclipse.jetty.util.thread.QueuedThreadPool.runJob</td></tr><tr class="java"><td class="source">QueuedThreadPool.java:543</td><td class="method">org.eclipse.jetty.util.thread.QueuedThreadPool$3.run</td></tr><tr class="java"><td class="source">Thread.java:722</td><td class="method">java.lang.Thread.run</td></tr></tbody></table></div></div></body></html>
Now I can't get subsequent issues to be Todoified. Thanks! Dan.
I made to work with the work flow I use at work, so it can be that some ticket types are not supported. Sorry
Also it was one of my first clojure project ever, so it could be that some part of the code are smelly.
I think that adding the ticket type of event in the multimethod is enough :smile:
On Fri, Jan 16, 2015 at 11:42 AM, fakeh notifications@github.com wrote:
Thanks. I really should have realised that! I created a test issue and it was created in Todoist. Great! Then I resolved the issue in JIRA (we have a simple project setup for this integration with OPEN, IN PROGRESS, TODO and DONE statuses, DONE also resolves the issue) but it was not marked as done in Todoist. I then made a second issue where the web hook call caused a 500 error on the server (sorry for the formatting, it's from Wireshark):
</style></head><body><div id="exception"><h1>java.lang.IllegalArgumentException</h1><div class="message">No method in multimethod 'dispatch-ticket-event' for dispatch value: jira:issue_created</div><div class="trace"><table><tbody><tr class="java"><td class="source">MultiFn.java:160</td><td class="method">clojure.lang.MultiFn.getFn</td></tr><tr class="java"><td class="source">MultiFn.java:227</td><td class="method">clojure.lang.MultiFn.invoke</td></tr><tr class="clojure"><td class="source">post.clj:14</td><td class="method">jira-todoist.post/handle-post</td></tr><tr class="clojure"><td class="source">handler.clj:9</td><td class="method">jira-todoist.handler/fn</td></tr><tr class="clojure"><td class="source">core.clj:99</td><td class="method">compojure.core/make-route[fn]</td></tr><tr class="clojure"><td class="source">core.clj:45</td><td class="method">compojure.core/if-route[fn]</td></tr><tr class="clojure"><td class="source">core.clj:30</td><td class="method">compojure.core /if-meth od[fn]</td></tr><tr class="clojure"><td class="source">core.clj:112</td><td class="method">compojure.core/routing[fn]</td></tr><tr class="clojure"><td class="source">core.clj:2515</td><td class="method">clojure.core/some</td></tr><tr class="clojure"><td class="source">core.clj:112</td><td class="method">compojure.core/routing</td></tr><tr class="java"><td class="source">RestFn.java:139</td><td class="method">clojure.lang.RestFn.applyTo</td></tr><tr class="clojure"><td class="source">core.clj:626</td><td class="method">clojure.core/apply</td></tr><tr class="clojure"><td class="source">core.clj:117</td><td class="method">compojure.core/routes[fn]</td></tr><tr class="clojure"><td class="source">keyword_params.clj:32</td><td class="method">ring.middleware.keyword-params/wrap-keyword-params[fn]</td></tr><tr class="clojure"><td class="source">nested_params.clj:75</td><td class="method">ring.middleware.nested-params/wrap-nested-params[fn]</td></tr><tr class="clojure"><td class="sou rce">par ams.clj:58</td><td class="method">ring.middleware.params/wrap-params[fn]</td></tr><tr class="clojure"><td class="source">multipart_params.clj:107</td><td class="method">ring.middleware.multipart-params/wrap-multipart-params[fn]</td></tr><tr class="clojure"><td class="source">flash.clj:31</td><td class="method">ring.middleware.flash/wrap-flash[fn]</td></tr><tr class="clojure"><td class="source">session.clj:85</td><td class="method">ring.middleware.session/wrap-session[fn]</td></tr><tr class="java"><td class="source">Var.java:379</td><td class="method">clojure.lang.Var.invoke</td></tr><tr class="clojure"><td class="source">reload.clj:18</td><td class="method">ring.middleware.reload/wrap-reload[fn]</td></tr><tr class="clojure"><td class="source">stacktrace.clj:17</td><td class="method">ring.middleware.stacktrace/wrap-stacktrace-log[fn]</td></tr><tr class="clojure"><td class="source">stacktrace.clj:80</td><td class="method">ring.middleware.stacktrace/wrap-stacktrace-web[fn]</td> </tr><tr class="clojure"><td class="source">jetty.clj:18</td><td class="method">ring.adapter.jetty/proxy-handler[fn]</td></tr><tr class="java"><td class="source">(Unknown Source)</td><td class="method">ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle</td></tr><tr class="java"><td class="source">HandlerWrapper.java:116</td><td class="method">org.eclipse.jetty.server.handler.HandlerWrapper.handle</td></tr><tr class="java"><td class="source">Server.java:363</td><td class="method">org.eclipse.jetty.server.Server.handle</td></tr><tr class="java"><td class="source">AbstractHttpConnection.java:483</td><td class="method">org.eclipse.jetty.server.AbstractHttpConnection.handleRequest</td></tr><tr class="java"><td class="source">AbstractHttpConnection.java:931</td><td class="method">org.eclipse.jetty.server.AbstractHttpConnection.content</td></tr><tr class="java"><td class="source">AbstractHttpConnection.java:992</td><td class="method">org.eclipse.jetty .server. AbstractHttpConnection$RequestHandler.content</td></tr><tr class="java"><td class="source">HttpParser.java:856</td><td class="method">org.eclipse.jetty.http.HttpParser.parseNext</td></tr><tr class="java"><td class="source">HttpParser.java:235</td><td class="method">org.eclipse.jetty.http.HttpParser.parseAvailable</td></tr><tr class="java"><td class="source">AsyncHttpConnection.java:82</td><td class="method">org.eclipse.jetty.server.AsyncHttpConnection.handle</td></tr><tr class="java"><td class="source">SelectChannelEndPoint.java:628</td><td class="method">org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle</td></tr><tr class="java"><td class="source">SelectChannelEndPoint.java:52</td><td class="method">org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run</td></tr><tr class="java"><td class="source">QueuedThreadPool.java:608</td><td class="method">org.eclipse.jetty.util.thread.QueuedThreadPool.runJob</td></tr><tr class="java"><td class="source">QueuedThreadPool.java:543</td ><td cla ss="method">org.eclipse.jetty.util.thread.QueuedThreadPool$3.run</td></tr><tr class="java"><td class="source">Thread.java:722</td><td class="method">java.lang.Thread.run</td></tr></tbody></table></div></div></body></html>
Now I can't get subsequent issues to be Todoified.
Thanks! Dan.
Reply to this email directly or view it on GitHub: https://github.com/BenjaminVanRyseghem/jira-todoist/issues/8#issuecomment-70236603
Thanks Benjamin, Having fixed issue #7 , I can now run it:
How am I to use it? I've configured the info.json, but am surprised that there's no login information necessary for Jira, so I included this information in the url like: http://user:pass@myjira.atlassian.net Is this correct?
Should I see anything at localhost:3000? I get a 200 but empty response.
I don't get any Todoist output when I create and assign Jira issues. How can I check what part of the integration is failing?
Thanks a lot, Dan.