Azure Devops предлагает две переменные, содержащие информацию о текущем git имени ветви: $(Build.SourceBranchName)
и $(Build.SourceBranch)
.
В то время как SourceBranch
содержит полную ссылку на ветку, SourceBranchName
Ожидается, что будет содержать только краткое имя ветви.
К сожалению, поведение немного неожиданно, когда имя ветви содержит sla sh (/
):
+---------------------------------------------------------------------------------------------------------+
| Situation | Git branch name | Build.SourceBranch | Build.SourceBranchName |
|---------------------------------------------------------------------------------------------------------|
| branch name contains no slash | mybranch | refs/heads/mybranch | mybranch |
| branch name contains slash | release/mybranch | refs/heads/release/mybranch | mybranch |
+---------------------------------------------------------------------------------------------------------+
Часть имени ветви перед sla sh не считается частью названия филиала. Мой коллега отметил, что это задокументированное поведение Azure Devops :
Git ответ на репо-ветвь или запрос на извлечение: последний сегмент пути в ссылке. Например, в refs /heads / master это значение является master. В refs / heads / feature / tools это значение - tools.
Я не уверен, что это поведение особенно полезно: я хочу оформить ветку и мне нужно, чтобы имя ветви включало include Сла sh. Кроме того, если часть перед sla sh будет удалена, вполне может возникнуть путаница с фактическим путем, поскольку имя может быть неоднозначным.
Мне нужно имя ветви , включая Sla sh. Есть ли простой способ получить это? Всегда ли мне нужно работать с полным реф, чтобы быть в безопасности?