Мне неизвестна какая-либо документация для веб-сервисов TFS, но я могу поделиться некоторыми советами по их вызову.
Упомянутая вами аутентификация NTLM на самом деле является отдельным уровнем: вы должны аутентифицироваться в IIS, прежде чем он сможет вызывать веб-сервисы TFS. Мне неизвестно о каком-либо программном обеспечении с открытым исходным кодом, которое выполнит для вас NTLM-аутентификацию, но TFS 2010 упрощает включение проверки подлинности с помощью переговоров ( SPNEGO в Википедии * , Проверка подлинности с использованием Kerberos Ticket on MSDN ). Negotiate поддерживает как подсистемы NTLM, так и Kerberos, и может существовать некоторое существующее программное обеспечение, которое вы можете использовать для управления им с помощью системных библиотек Kerberos (я думаю, что это делает curl). Если бы вам пришлось создать его самостоятельно, вероятно, было бы проще пойти по пути переговоров с Kerberos.
Как только вы авторизуетесь, вы можете начать звонить в службы. Начните с вытягивания WSDL для каждой службы (добавьте суффикс "? Wsdl" на каждый URI конечной точки). Перейдите к месту установки TFS и изучите каталог веб-приложений для определения конечных точек. Существует несколько версий некоторых конечных точек для обратного сравнения с TFS 2005 и 2008, но обычно новые версии не являются избыточными (они добавляют новые вещи). Возможно, у вас уже есть любимая клиентская библиотека SOAP (их много для Java), но я не могу порекомендовать ее, потому что мы написали свою собственную на Teamprise.
Такие сервисы, как контроль версий, сборка и общая структура, легко обнаружить с помощью WSDL. Большинство операций имеют очевидные имена, но поля сложного типа часто сокращаются. Лучший способ выяснить, какие методы и когда вызывать, - это наблюдать за клиентом VS TFS или TEE с помощью Fiddler, Wireshark или какой-либо другой программы проверки HTTP. TFS VC делает такие вещи, как выгрузка / выгрузка файлов вне веб-сервисов (следите за трассировкой сети, чтобы увидеть процесс загрузки MIME из нескольких частей, и будьте уверены, вы отправляете правильные значения, если реализуете это).
Предупреждение о веб-службе отслеживания рабочих элементов: освоить ее будет крайне сложно. Проект WIT предполагает, что клиент предварительно запрашивает у сервера большие объемы метаданных без схемы, которые сохраняются на клиенте (но обновляются постепенно по мере выполнения большего количества вызовов веб-служб). Эти метаданные управляют всем поведением клиентской стороны в отношении рабочих элементов (какие поля относятся к типу рабочего элемента, типу поля, какие значения разрешены в полях, правилам, которые запускаются при их изменении и т. Д.), И потребуется долгое время и серьезное исследование, чтобы построить поведение клиента, чтобы воплотить в жизнь работу. Если у вас есть рабочий элемент, его легко отправить на сервер через веб-службы.
Это большая работа, но ее можно выполнять постепенно, например, если вам нужны только некоторые функции VC. Команда TEE работает над упрощением доступа с других платформ. Пожалуйста, свяжитесь с Мартином Вудвордом (martin.woodward@microsoft.com), если у вас есть какие-либо вопросы или предложения в этой области.