Redmine Plugin not working in Teamcity 9.1?

I changed my version from 9.0.3 to 9.1, the Redmine plugin is listed in the plugin list but i cant find it in the issue tracker list. How to configure or integrate Redmine properly in a project?

0
16 comments

Konstantin, due to api changes, existing Redmine plugin is not compatible with TeamCity 9.1.
We have made a 9.1 compatible fork: https://github.com/orybak/TeamCityRedmine
The stable build of 9.1 compatible plugin can be found here

0

I have the same problem with version 10.0: the Redmine plugin is listed in the plugin list but I can't find it in the issue tracker list. Fix it please.

0

Sergey, 

what version of TeamCity do you have and what version of RedMine plugin do you see loaded on plugins list page?

0

Oleg,

I have TeamCity version 10.0 and I used this plugin and its version is "@Version@"

0

Sergey, please remove your redmine plugin and download the recommended version from teamcity.jetbrains.com (file redmine.zip from this page https://teamcity.jetbrains.com/viewLog.html?buildId=715699&buildTypeId=TeamCityRedminePlugin_Fork_BuildAgainstTeamCity91x&tab=artifacts ) and put it in the plugins folder under your TeamCity data directory. 

I have checked, that the plugin works correctly under 9.1.x and 10.0.x versions

 

0

Thanks a lot, it works.

0

It looks like this plugin does not work with TeamCity 2018.1. I`ve got this error:

Error: Argument for @NotNull parameter 'element' of jetbrains/buildServer/issueTracker/AbstractIssueFetcher.getAttribute must not be null

 

Do you have any ideas?

0

Aleksandrus, do you have an example (xml from Redmine) of the issue that causes the exception?

0

I have made a build of redmine plugin that works with 2018.1. You can download it from our public server https://teamcity.jetbrains.com/viewLog.html?buildTypeId=TeamCityRedminePlugin_BuildForkAgainstTeamCity20181&buildId=lastPinned 

0

I`m sorry for delay, I was on vacation.

Thank you, Oleg, but with new version of plugin I`ve got different error:

 
Error: Error reading XML for issue '123' on 'http://rm.local/'.
 
 
How can I see this XML ?
0

To view xml of the issue go to http://<YOUR_REDMINE_SERVER>/issues/ISSUE_ID.xml

0

<?xml version="1.0" encoding="UTF-8"?>
<issue>
<id>123</id>
<project id="1" name="test"/>
<tracker id="1" name="Задача"/>
<status id="10" name="Ждет анализа"/>
<priority id="2" name="Нормальный"/>
<author id="2155" name="Игорь"/>
<assigned_to id="2059" name="Сергей"/>
<parent id="11771"/>
<subject>Тестирование</subject>
<description/>
<start_date>2018-09-11</start_date>
<due_date/>
<done_ratio>0</done_ratio>
<is_private>false</is_private>
<estimated_hours/>
<total_estimated_hours>0.0</total_estimated_hours>
<custom_fields type="array">
<custom_field id="1" name="Разработчик">
<value/>
</custom_field>
<custom_field id="2" name="Аналитик">
<value/>
</custom_field>
<custom_field id="3" name="Тестировщик">
<value>37</value>
</custom_field>
<custom_field id="4" name="Номер задачи в Devprom">
<value/>
</custom_field>
<custom_field id="5" name="Номер задачи в HelpDesk">
<value/>
</custom_field>
<custom_field id="6" name="Обновил">
<value>2155</value>
</custom_field>
<custom_field id="7" name="Порядковый номер">
<value/>
</custom_field>
<custom_field id="8" name="VersionPosition">
<value>9999</value>
</custom_field>
</custom_fields>
<created_on>2018-08-27T09:09:09Z</created_on>
<updated_on>2018-09-11T08:40:08Z</updated_on>
<closed_on/>
</issue>

0

Xml is well formed and is parsed correctly. My guess is that TeamCity server doesn't have access to http://rm.local/ Could you please check?

I have made a new build of the plugin with more extensive logging: https://teamcity.jetbrains.com/viewLog.html?buildId=1607089&buildTypeId=TeamCityRedminePlugin_BuildForkAgainstTeamCity20181&tab=artifacts

More detailed logs will appear in teamcity-issue-trackers.log  file inside logs directory

0

[2018-09-11 14:49:18,839] WARN - ins.buildServer.ISSUE_TRACKERS - IOException when trying to parse the issue data for '123' on 'http://rm.local/'
java.io.IOException: Expected END_ELEMENT, got event of type 1
at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream.skipEndElement(XmlTokenStream.java:190)
at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser.nextToken(FromXmlParser.java:584)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:542)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:248)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:526)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:248)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:526)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:248)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:543)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:248)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:516)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:248)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:527)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:364)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:29)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4001)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3058)
at com.marcusilgner.redcity.RedmineIssueParser.parseIssueData(RedmineIssueParser.java:22)
at com.marcusilgner.redcity.RedmineIssueFetcher.lambda$getIssue$0(RedmineIssueFetcher.java:46)
at jetbrains.buildServer.issueTracker.AbstractIssueFetcher$2.apply(AbstractIssueFetcher.java:280)
at jetbrains.buildServer.issueTracker.AbstractIssueFetcher$2.apply(AbstractIssueFetcher.java:277)
at jetbrains.buildServer.serverSide.ReadOnlyRestrictor.doReadOnlyNetworkOperation(ReadOnlyRestrictor.java:13)
at jetbrains.buildServer.issueTracker.AbstractIssueFetcher.getFromCacheOrFetch(AbstractIssueFetcher.java:277)
at com.marcusilgner.redcity.RedmineIssueFetcher.getIssue(RedmineIssueFetcher.java:44)
at jetbrains.buildServer.issueTracker.AbstractIssueFetcher.fetchIssue(AbstractIssueFetcher.java:158)
at jetbrains.buildServer.issueTracker.AbstractIssueProvider$3.testConnection(AbstractIssueProvider.java:352)
at jetbrains.buildServer.controllers.admin.issues.TestConnectionController.doPost(TestConnectionController.java:19)
at jetbrains.buildServer.controllers.BaseFormXmlController$1.handleRequest(BaseFormXmlController.java:54)
at jetbrains.buildServer.controllers.AjaxRequestProcessor.processRequest(AjaxRequestProcessor.java:47)
at jetbrains.buildServer.controllers.BaseFormXmlController.doHandle(BaseFormXmlController.java:52)
at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:101)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:174)
at jetbrains.buildServer.controllers.BaseController.handleRequest(BaseController.java:80)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.processedByMainServlet(TeamCityDispatcherServlet.java:46)
at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:25)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at jetbrains.buildServer.web.jsp.JspPrecompilerFilter.doFilter(JspPrecompilerFilter.java:69)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at jetbrains.buildServer.web.DisableSessionIdFromUrlFilter.doFilter(DisableSessionIdFromUrlFilter.java:4)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107)
at jetbrains.buildServer.diagnostic.web.DiagnosticFilter.doFilter(DiagnosticFilter.java:11)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
at jetbrains.buildServer.web.DependencyParametersCalculationContextFilter.doFilter(DependencyParametersCalculationContextFilter.java:3)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
at jetbrains.buildServer.web.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:39)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
at jetbrains.buildServer.web.CSRFFilter.doFilter(CSRFFilter.java:103)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73)
at jetbrains.buildServer.web.DelegatingFilter.doFilter(DelegatingFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at jetbrains.buildServer.web.ResponseFragmentFilter.doFilter(ResponseFragmentFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

0

Fresh build here: https://teamcity.jetbrains.com/viewLog.html?buildId=1607387&buildTypeId=TeamCityRedminePlugin_BuildForkAgainstTeamCity20181&tab=artifacts

 

I have added logging of the response body. To see it in teamcity-issue-trackers.log, go to Administration->Diagnostics and switch to debug-issue-trackers active logging preset

0

Oleg, thank you for this detailed log! Now I can see the actual problem - redmine`s IIS returned "HTTP 401.2 - Unauthorized". TeamCity don`t use authorization headers :( If I allow anonymous access in IIS - this plugin works!

0

Please sign in to leave a comment.