Google Cloud Source Repository делает только мелкий клон?

Наш код размещен на GitHub. Мы используем Google Cloud Container Builder для создания и упаковки нашего программного обеспечения. Для этого нам пришлось подключить наше частное репо к Google Cloud Source Repository. К сожалению, кажется, что зеркало - это неглубокий клон, потому что наши инструменты разработчика жалуются на это. например SonarQube не может найти виновных в определенных файлах.

Документация:

Подключенные репозитории

Если у вас уже есть репозиторий на GitHub или Bitbucket, вы можете подключить его к своему облачному репозиторию исходного кода. Подключенные репозитории автоматически синхронизируются с Cloud Source Repository.

Есть ли способ как увеличить глубину клона? Или как сделать полный клон?


comment
Как ты видишь эту ошибку, Михал? Вы указываете SonarQube на GitHub или CSR? Вы должны указать это на GitHub.   -  person csells    schedule 23.10.2017
comment
@csells - это часть сборки Gradle. Мы используем плагин Gradle SonarQube. В настоящее время мы решили проблему с помощью sonar.scm.disabled=true, но это решается путем избавления от некоторых функций SonarQube ...   -  person Michal    schedule 23.10.2017
comment
Я все еще в замешательстве - вы указываете своим плагином Gradle SonarQube клон из GitHub или CSR?   -  person csells    schedule 24.10.2017
comment
@csells мы не указываем это на репозиторий. Это этап сборки в CI. Код находится в GitHub, затем при нажатии он клонируется в CSR, а затем копируется в контейнер, в котором он построен. В процессе сборки мы вызываем gradle sonarqube ... -Dsonar.scm.disabled=true. Ни на что не указывая. Он настраивается в cloudbuild.yml с помощью конструктора облачных контейнеров.   -  person Michal    schedule 25.10.2017


Ответы (2)


Репозиторий Google Cloud Source Repository поддерживает только полные клоны. В вашем репозитории есть полная история всех веток (refs/heads/*) и тегов (refs/tags/*).

Если фиксация отсутствует, я сначала предполагаю, что фиксация находится только в пространстве имен, таком как refs/pulls/*, которое CSR не отражает.

person Shawn Pearce    schedule 21.10.2017
comment
Привет, Шон, спасибо за ответ. В нашем репо нет никакой магии git. Только одна ветка, из которой мы создаем функциональные ветки, которые (когда это сделано) объединяются в мастер. Команда 2 (1 код, остальные обзоры и слияния). Вы не видите в этом проблемы? Можно ли это как-нибудь решить? - person Michal; 22.10.2017

Как описано здесь

Чтобы создать исходный код в репозитории Git, Cloud Build выполняет неглубокий клон репозитория. Это означает, что только один коммит, запустивший сборку, извлекается в рабочей области для сборки. Cloud Build не проверяет другие ветки или историю. Это сделано для повышения эффективности, так что сборкам не нужно ждать, чтобы получить весь репозиторий и историю только для создания одного коммита.

Если вы хотите включить в сборку больше истории своего репо, добавьте этап сборки в файл конфигурации сборки, чтобы запретить клонирование. Например

steps:
- name: gcr.io/cloud-builders/git
  args: ['fetch', '--unshallow']
...
person ALOToverflow    schedule 07.04.2021