Я не уверен, знает ли TeamCity об идентификаторе запроса на получение.Это маловероятно, потому что сборка выполняется по коммиту, а не по запросу, и для отправки результата обратно на Bitbucket Server не требуется запрос на извлечение.Однако, безусловно, есть способы получить нужную информацию.
Первый вариант, о котором я могу подумать, - это использование REST API Bitbucket Server Pull Request (документация здесь ).Вам понадобятся учетные данные http, чтобы выполнить запрос.Я не уверен, есть ли в TeamCity какие-то доступные вам для использования, но если этого не произойдет, вы захотите сгенерировать личный токен доступа , чтобы этот сценарий ограничивался его доступом.
curl -u username:password https://url.to.bitbucket/rest/api/latest/projects/<project_name>/repos/<repo_name>/pull-requests?state=OPEN&at=refs/heads/<branchname>&direction=OUTGOING
Затем вам придется проанализировать json, чтобы получить запрос на получение ответа из ответа (возможно, сделать это в Python будет проще, чем в bash).Еще одним ограничением этого является то, что он не получит ваши PR, полученные с форка.
Если сделать это через REST API слишком сложно (из-за учетных данных и парсинга json), вы можете сделать это.с помощью git, используя git name-rev
, чтобы найти ближайший запрос на извлечение ссылки.Это менее привычно, и я на самом деле не пытался сделать это, поэтому я думаю, что, вероятно, будет больше крайних случаев, о которых нужно позаботиться, в то время как REST API дает вам очень простой ответ.
Примерно так:
> git fetch origin refs/pull-requests/*:refs/pull-requests/* # fetch all the pull-request refs
> git name-rev --name-only --refs="refs/pull-requests/*/from" HEAD # Find the pull request 'from' ref that is closest to the latest commit
pull-requests/11732/from~4^2
Вы должны были бы удалить часть 'количество коммитов', если она присутствует (все после ~
), и решить, что делать, если их было несколькотянуть запросы на этом коммите (name-rev даст вам только один реф), но вам не нужно настраивать свои учетные данные, и он работает для PR от вилок.
Другой сценарий, который вы будете использоватьВ любом случае необходимо учитывать, что еще не может быть создан запрос на извлечение.
Надеюсь, это поможет!