Как выполнить код на сервере TFS после того, как пользователь проверит код
Я создаю систему интеграции, которая должна выполнять некоторый код на сервере Team Foundation Server (2010+), когда пользователь регистрирует некоторые изменения. Я могу схематически получить доступ к чекам без проблем, но я хотел бы знать, когда добавляются новые чеки. В идеале я хотел бы получить уведомление и получить данные для регистрации, чтобы я мог манипулировать ими и отправлять то, что мне нужно, в другой API, но если уведомление о том, что новая регистрация - это все, что существует, этого будет достаточно. В идеале я бы мог сделать так, чтобы tfs выполнял вызов моего собственного кода C# на той же машине.
<1 ответ
Есть разные способы подойти к этому:
Сборка команды. Используя сервер сборки TFS, вы можете создать сборку Continuous Integration или сборку Gated Checkin. В рабочем процессе сборки вы можете реагировать на любые обнаруженные изменения. Вы можете использовать клиентскую объектную модель TFS, чтобы получить объект Changeset. Это содержит все данные, которые вам нужны. ALM Rangers написали обширное руководство, объясняющее, как расширить и настроить процесс сборки в соответствии с вашими потребностями.
Политика регистрации. Создавая собственную политику регистрации, вы можете запустить предварительную проверку кода на клиенте (внутри Visual Studio). Эта политика может служить примером того, как взаимодействовать с ожидающими изменениями.
ISubscriber
Плагин TFS Application Tier. Уже упоминается @ppejovic. Плагин уровня приложений установлен на сервере TFS и будет работать в процессе. Поскольку он находится в процессе, вы можете сделать совсем немного. Примеры, которые воздействуют на рабочие элементы и / или контроль источника, являются обработчиком слияния рабочих элементов, агрегатором TFS. При необходимости вы также можете обратиться к объектной модели клиента, как описано здесь.SOAP API. Это предшественник интерфейса ISubscriber. Вы все еще можете использовать его, но у вас будет больше мощности и эффективности от решения ISubscriber.
Объектная модель клиента. Вы всегда можете создать службу или запланированное задание в системе, которая периодически подключается к TFS для запроса истории с момента последней проверки. Просто сохраняя запросы ко всему более новому, чем наивысший номер набора изменений, который вы когда-либо видели, вы можете получить всю необходимую информацию без необходимости расширения самой TFS. Вы будете искать класс VersionControlServer. Метод QueryHistory необходим для получения наборов изменений.
Есть хороший курс Pluralsight, который проведет вас через некоторые из этих сценариев.
Как и с большинством этих элементов, документации недостаточно, а такие инструменты, как Red-Gate Reflector .NET или Jetbrains dotPeek, неоценимы.