В моем случае я хочу создать неглубокий клон, используя shallow-since, как указано в Как удалить старую историю из репозитория git?

Однако checkout не предоставляет такой возможности.

Мое предположение заключалось бы в том, чтобы сделать

- checkout: none
- bash: |
    git clone $(Build.Repository.Uri) \
      --shallow-since 2020-01-01 \
      $(Build.SourcesDirectory)

Но я не уверен, куда поместить учетные данные. Переменные, которые я, вероятно, смогу найти.

Я добавил запрос функции для checkout, поэтому мне не понадобится обходной путь в будущем.

Я подозреваю, что это что-то с System.AccessToken

0
Archimedes Trajano 20 Май 2021 в 06:14

2 ответа

Лучший ответ

У вас есть 2 варианта:

  • Добавьте свой PAT в URL-адресе клона:

    https://{PAT}@dev.azure.com/{organization}/{project}/_git/{repo-name}
    
  • Вставьте токен доступа к системе в URL-адрес клона:

    https://$(System.AccessToken)@dev.azure.com/{organization}/{project}/_git/{repo-name}
    
1
Shayki Abramczyk 20 Май 2021 в 07:01

Вместо того, чтобы использовать манипуляции с URL, я использую модификацию заголовка. Это позволяет избежать использования sed

steps:
  - checkout: none
  - bash: |
      git clone $(Build.Repository.Uri) \
        -c http.extraheader="Authorization: Bearer $(System.AccessToken)" \
        --single-branch \
        --no-tags \
         $(Build.SourcesDirectory)
      # --shallow-since 2020-01-01

К сожалению, на момент написания этой статьи Azure DevOps не поддерживает --shallow-since.

1
Archimedes Trajano 20 Май 2021 в 14:19