Я пытаюсь получить последний тег репозитория Azure git, используя Rest API. Итак, сначала извлекли все теги репозитория, используя rest api. Но этот json возвращал теги в произвольном порядке, т. е. иногда последний тег находится вверху, а иногда внизу.
Из-за этого я не могу извлечь.
Я попробовал приведенный ниже фрагмент в bash, но он вернул случайный тег, а не последний.
tags_response=$(curl -s -u ":$pat" \
"https://dev.azure.com/$organization/$project/_apis/git/repositories/$repo_id/refs?filter=tags&api-version=7.1-preview.1")
# Extract the latest tag
latest_tag=$(echo $tags_response | jq -r '.value | sort_by(.name) | last(.[]).name')
TL;DR, можно получить дату создания аннотированного тега, но не легкого тега (см. Использование тегов Git).
Используйте конечную точку Аннотированные теги — Получить, чтобы получить метаданные (включая дату создания) определенного тега.
Пример ответа:
{
"name": "refs/tags/v0.1-beta2",
"objectId": "69080710948ac8ba63e44eca2daf0b30f38c428d",
"taggedObject": {
"objectId": "c60be62ebf0e86b5aa01dbb98657b4b7e5905234",
"objectType": "commit"
},
"taggedBy": {
"name": "Norman Paulk",
"email": "[email protected]",
"date": "2017-06-22T04:28:23"
},
"message": "First beta release",
"url": "https://dev.azure.com/fabrikam/c34d5807-1734-4541-ad1c-d16e9ac1faca/_apis/git/repositories/ca93c3a5-87bb-4b5b-a62f-1f971d677c79/annotatedTags/69080710948ac8ba63e44eca2daf0b30f38c428d"
}
Azure DevOps поддерживает как аннотированные, так и упрощенные теги.
Вы можете создавать аннотированные теги с помощью веб-портала. В Visual Studio можно создавать как облегченные, так и аннотированные теги.
Просмотр сведений о теге, созданном на веб-портале:
@cris7ronaldo отлично! Не забудьте проголосовать за и/или принять мой ответ :-)
хаха, конечно. Но stackoverflow не позволяет мне проголосовать, говоря: «Вам нужно как минимум 15 репутаций». Я новичок на этой платформе, поэтому не знаю, как повысить репутацию.
@cris7ronaldo, попробуй сейчас. Репутация повышается, когда люди голосуют за ваши вопросы/ответы и принимают ваши ответы. PS: Вам, вероятно, не нужно 15 репутации, чтобы принимать ответы.
@RuiJarmiba Большое спасибо. Это сработало. Сначала я извлек все теги с помощью API-интерфейсов отдыха репозитория, а затем использовал идентификатор объекта, возвращаемый этим json, чтобы извлечь время создания тега с помощью API-интерфейса отдыха тегов с аннотациями.