TFS issue tracker integration

Hi,

I've spent a couple of hours building an issue tracker integration plugin for TFS. Here the main issue is that TFS provides only an official .NET API to interact with it, so I went down the route of creating a .NET web service which the TC plugin talks to. After trying to figure out why my work items weren't being shown in TC I read the documentation a little more carefully and I realized than you need the check-in comment to contain the ID of the work item for it to work.

This is a requirement which entails changes to our current process and I'm wondering why TC cannot ask the issue tracker plugin by changeset number instead of parsing the check-in comment.

I am aware that the current ITI plugin infrastructure is built to be general-purpose, and this would work only if you are using TFS for both source control and issue tracking, but well, that would be a great optimization for those using both together.

10 comments

Hi Simone,

You're right. Except for TFS, no known issue-tracking system supports getting the issue by changeset id, and we have implemented the feature for use case that is most commonly used by developers.
What API could help you? How about a new method in IssueProvider:
Collection<IssueMention> getRelatedIssues(@NotNull VcsModification modification)

Do you plan to publish your plugin?


---
Maxim

0

Hi Maxim, yeas, that methods would definitely work.
I would be glad to release to plugin with an OSS license, although that wouldn't be a very reusable implementation since it requires some sort of gateway between the TC plugin and the only officially supported API for TFS which is written in .NET, that I currently implemented as a Web service.

Any suggestions on this side?

0

Simone,

The approach used in TeamCity for VCS-side TFS integration is to implement a .Net executable that will use TFS client API and call the tool from Java. It can play well too for Issue-tracker part of the play and if we start with TW-4384 ourselves, we are likely to use this same approach.

0

Hi Simone,

I see. No suggestions how to make it simpler. But this plugin could still be useful for others (e.g. serve as an example).
OK. I'll add a new API method in 6.0.
Please let us know, when you finish the plugin, so we could add it in our page: http://confluence.jetbrains.net/display/TW/TeamCity+Plugins

---
Maxim

0

Thanks Yegor, I guessed you were already doing something similar for the TFS VCS integration, but it seemed more complex to me compared to using a Web service, although definitely more usable and pluggable.
I will look into it, are there any classes in the open API which ease communication between Java and an external wrapper process yet?

0

Thanks a lot. Can you update this thread when the new method appears in the API so I can start playng with it, please?

0

I'm adding them now. You can start using the new API since next EAP (expected in a couple of weeks).

0

Simone,

There are some genral-purpose external proces runner utils. You can look into SimpleCommandLineProcessRunner. Here you can find an example usage from our Mercurial plugin.

0

Thanks Maxim, I'll give it a look then.


0

Please sign in to leave a comment.