Перейти к основному содержимому

Подключение через Git clone

В dbt вы можете импортировать git‑репозиторий по любому корректному git URL, который указывает на dbt‑проект. При этом есть несколько важных моментов, которые нужно учитывать.

Протоколы Git​

Вы должны использовать версию git URL в формате git@... или ssh://..., а не https://.... dbt использует SSH‑протокол для клонирования репозиториев, поэтому dbt не сможет клонировать репозитории, указанные с использованием HTTP‑протокола.

Преобразование SSH URL в корректный формат​

Когда вы копируете SSH URL из вашего git‑провайдера (обычно он находится в Code → Clone → SSH), он может быть в формате SCP, где для разделения хоста и пути используется двоеточие (:). Для dbt такой URL необходимо преобразовать в стандартный формат SSH.

Если ваш SSH URL выглядит так (SCP‑стиль с двоеточием):

git@github.com:organization/repo-name.git
user@custom-host.example.com:organization/repo-name.git

Преобразуйте его в стандартный SSH URL (используется ssh:// и /):

ssh://git@github.com/organization/repo-name.git
ssh://user@custom-host.example.com/organization/repo-name.git

Доступность функций в зависимости от Git‑провайдера​

В следующей таблице приведены доступные варианты интеграции и соответствующие им возможности.

Git‑провайдерНативная интеграция с dbtАвтоматизированное CI‑заданиеGit cloneИнформацияПоддерживаемые планы
Azure DevOps
✅✅✅Организации на планах Starter и Developer могут подключаться к Azure DevOps с использованием deploy key. Обратите внимание: вы не сможете настраивать автоматизированные CI‑задания, но при этом сможете вести разработку.Enterprise, Enterprise+
GitHub
✅✅Все планы dbt
GitLab
✅✅✅Все планы dbt
Все остальные git‑провайдеры при использовании Git clone (BitBucket, AWS CodeCommit и другие)❌❌✅См. руководство Customizing CI/CD with custom pipelines для настройки continuous integration и continuous deployment (CI/CD).
Loading table...

Управление deploy keys​

После импорта проекта по Git URL dbt сгенерирует Deploy Key для вашего репозитория. Чтобы найти этот Deploy Key в dbt:

  1. В dbt нажмите на имя своей учетной записи в левом боковом меню и выберите Account settings.
  2. Перейдите в раздел Projects и выберите нужный проект.
  3. Нажмите на ссылку Repository, чтобы открыть страницу с деталями репозитория.
  4. Скопируйте ключ в разделе Deploy Key.

Этот Deploy Key необходимо добавить в настройках репозитория у вашего Git‑провайдера. Настройте его так, чтобы он имел доступ на чтение и запись к соответствующим репозиториям.

На заметку: Каждый проект в dbt будет генерировать свой собственный deploy key при подключении к репозиторию, даже если два проекта подключены к одному и тому же репозиторию. Вам потребуется добавить оба deploy key у вашего Git‑провайдера.

GitHub​

Используете GitHub?

Если вы используете GitHub, вы можете импортировать свой репозиторий напрямую с помощью GitHub Application от dbt. Подключение репозитория через GitHub Application включает Continuous Integration.

Найдите ваш SSH URL​

  1. Перейдите в свой репозиторий на GitHub.
  2. Нажмите кнопку Code.
  3. Выберите вкладку SSH, чтобы увидеть SSH URL для клонирования.
  4. Скопируйте URL и при необходимости преобразуйте его в корректный формат.

Добавьте deploy key​

Чтобы добавить deploy key в GitHub, перейдите на вкладку Deploy keys на странице настроек вашего репозитория GitHub.

  • Укажите имя для deploy key и вставьте сам deploy key (сгенерированный dbt), затем обязательно установите флажок Allow write access.
  • После добавления этого ключа dbt сможет читать и записывать файлы в вашем dbt-проекте.
  • Подробнее см. в документации GitHub: Adding a deploy key in GitHub
Настройка ключа развертывания GitHubНастройка ключа развертывания GitHub

GitLab​

Используете GitLab?

Если вы используете GitLab, вы можете импортировать свой репозиторий напрямую с помощью GitLab Application от dbt. Подключение репозитория через GitLab Application включает Continuous Integration.

  • Чтобы добавить deploy key в аккаунт GitLab, перейдите на вкладку SSH keys на странице User Settings вашего аккаунта GitLab.
  • Затем вставьте deploy key, сгенерированный dbt для вашего репозитория.
  • После сохранения этого SSH-ключа dbt сможет читать и записывать файлы в вашем GitLab-репозитории.
  • См. также: Adding a read only deploy key in GitLab
Настройка SSH-ключа GitLabНастройка SSH-ключа GitLab

BitBucket​

Используйте deploy key, чтобы импортировать ваш репозиторий BitBucket в dbt. Чтобы сохранить безопасность учетной записи, используйте сервисную учетную запись для добавления deploy key BitBucket и поддержания соединения между вашим репозиторием BitBucket и dbt.

BitBucket связывает каждый коммит в репозитории и другие действия Git (например, открытие pull request) с адресом электронной почты, связанным с учетной записью пользователя Bitbucket.

Чтобы добавить ключ развертывания в учетную запись BitBucket:

  • Перейдите на вкладку SSH keys на странице Personal Settings вашего аккаунта BitBucket.
  • Затем нажмите кнопку Add key и вставьте deploy key, сгенерированный dbt для вашего репозитория.
  • После сохранения этого SSH-ключа dbt сможет читать и записывать файлы в вашем репозитории BitBucket.
Настройка SSH-ключа BitBucketНастройка SSH-ключа BitBucket

AWS CodeCommit​

dbt может работать с dbt‑проектами, размещёнными в AWS CodeCommit, однако по сравнению с GitHub или другими git‑провайдерами требуется выполнить несколько дополнительных шагов. В этом руководстве описано, как подключить dbt‑проект, размещённый в CodeCommit, к dbt.

AWS прекращает поддержку git‑хостинга CodeCommit

AWS CodeCommit больше недоступен для новых клиентов, а существующие клиенты получают только обновления безопасности и производительности. Подробнее см. в статье о миграции на другого git‑провайдера.

Шаг 1: Создайте пользователя AWS для dbt​

  • Чтобы предоставить dbt доступ к вашему репозиторию, сначала необходимо создать пользователя AWS IAM для dbt.
  • Войдите в AWS Console и перейдите в раздел IAM.
  • Нажмите Add User и создайте нового пользователя, указав уникальное и понятное имя.
  • Пользователю потребуется доступ на клонирование репозитория. Это можно обеспечить, добавив разрешение AWSCodeCommitPowerUser во время настройки.

Шаг 2: Импортируйте репозиторий по имени​

  • Откройте консоль AWS CodeCommit и выберите ваш репозиторий.
  • Скопируйте SSH URL на этой странице.
  • Затем перейдите на страницу New Repository в dbt.
  • Выберите вкладку Git Clone и вставьте SSH URL, скопированный из консоли.
  • На странице с деталями только что созданного репозитория вы увидите поле Deploy Key.
  • Скопируйте содержимое этого поля — оно понадобится вам на Шаге 3.

Примечание: публичный ключ, сгенерированный dbt, — единственный ключ, который будет работать на следующем шаге. Любой другой ключ, созданный вне dbt, работать не будет.

Шаг 3: Предоставьте пользователю AWS для dbt доступ​

  • Откройте только что созданного пользователя dbt в консоли AWS IAM.
  • Перейдите на вкладку Security Credentials и нажмите Upload SSH public key.
  • Вставьте содержимое поля Public Key со страницы репозитория в dbt.
  • После создания ключа вы увидите для него значение SSH key ID.
  • Свяжитесь со службой поддержки dbt и передайте им это значение, чтобы команда поддержки dbt могла завершить процесс настройки.

Шаг 4: Укажите пользовательскую ветку в dbt​

CodeCommit использует master в качестве ветки по умолчанию. Для инициализации проекта вам необходимо указать ветку master как custom branch в dbt.

  • Перейдите в Deploy -> Environments -> Development.
  • Выберите Settings -> Edit и в разделе General Settings установите флажок Default to a custom branch.
  • Укажите пользовательскую ветку как master и нажмите Save.

Шаг 5: Настройте URL-адреса шаблона pull request (необязательно)​

Чтобы предотвратить прямое слияние изменений кода в ветку по умолчанию, настройте PR Template URL на странице Repository details вашего проекта. После настройки dbt будет предлагать пользователям открыть новый PR после коммита и синхронизации изменений кода в ветке в Studio IDE, прежде чем сливать какие‑либо изменения в ветку по умолчанию.

  • Перейдите в Account Settings -> Projects -> выберите проект.
  • Нажмите на ссылку репозитория в разделе Repository.
  • На странице Repository details нажмите Edit в правом нижнем углу.
    Настройка шаблона PR на странице «Repository details».Настройка шаблона PR на странице «Repository details».
  • В поле Pull request URL укажите URL на основе рекомендуемого формата PR template.
  • Замените <repo> на имя вашего репозитория (обратите внимание, что регистр символов имеет значение). В следующем примере имя репозитория — New_Repo.
    В примере поля Pull request URL имя репозитория — «New_Repo».В примере поля Pull request URL имя репозитория — «New_Repo».
  • После заполнения поля Pull request URL нажмите Save.

🎉 Готово! После того как служба поддержки dbt обработает ваш запрос и вы настроите пользовательскую ветку, ваш проект будет готов к выполнению dbt‑запусков в dbt.

Azure DevOps​

Используете Azure DevOps?

Если вы используете Azure DevOps и у вас тариф dbt Enterprise или Enterprise+, вы можете импортировать ваш репозиторий напрямую с помощью интеграции dbt с Azure DevOps. Подключение репозитория через приложение Azure DevOps включает Continuous Integration.

  1. Чтобы добавить ключ развертывания в учетную запись Azure DevOps, перейдите на страницу SSH public keys в настройках пользователя вашей учетной записи Azure DevOps или учетной записи служебного пользователя.

  2. Мы рекомендуем использовать выделенную сервисную учётную запись для интеграции, чтобы подключение dbt к Azure DevOps не прерывалось из‑за изменений прав доступа у пользователей.

Перейдите на страницу настроек 'SSH public keys'Перейдите на страницу настроек 'SSH public keys'
  1. Затем нажмите кнопку + New Key, чтобы создать новый SSH-ключ для репозитория.
Нажмите кнопку '+ New Key', чтобы создать новый SSH-ключ для репозитория.Нажмите кнопку '+ New Key', чтобы создать новый SSH-ключ для репозитория.
  1. Выберите понятное и описательное имя для ключа, затем вставьте deploy key, сгенерированный dbt для вашего репозитория.

  2. После сохранения этого SSH-ключа dbt сможет читать и записывать файлы в ваш репозиторий Azure DevOps.

Введите и сохраните публичный ключ, сгенерирован�ный dbt для вашего репозиторияВведите и сохраните публичный ключ, сгенерированный dbt для вашего репозитория

Другие git-провайдеры​

Не видите здесь своего git‑провайдера? Пожалуйста, свяжитесь со службой поддержки dbt — мы с радостью поможем вам настроить dbt с любым поддерживаемым git‑провайдером.

Ограниченная интеграция​

Некоторые возможности dbt требуют тесной интеграции с вашим git‑хостингом, например обновление pull request’ов в GitHub статусами запусков dbt. Импорт проекта по URL не позволяет использовать эти функции. После того как вы предоставите dbt доступ к вашему репозиторию, вы сможете продолжить настройку проекта, добавив подключение, а затем создав и запустив свою первую задачу dbt.

Часто задаваемые вопросы​

Как исправить мой файл .gitignore?
Как мигрировать между git-провайдерами

Нашли ошибку?

0
Loading