Подключение с помощью Git clone
В dbt можно импортировать репозиторий git по любому корректному git URL, который указывает на проект dbt. При этом следует учитывать несколько важных моментов.
Протоколы Git
Используйте SSH URL для клонирования репозитория. dbt поддерживает оба распространённых формата SSH:
git@github.com:organization/repo-name.gitssh://git@github.com/organization/repo-name.git
Не используйте https://... и другие HTTP URL. dbt клонирует репозитории по SSH и не может клонировать репозитории, использующие протокол HTTP.
Преобразование SSH URL в ssh://
Git-провайдеры часто показывают SSH URL для клонирования в формате SCP — с двоеточием между хостом и путём к репозиторию (обычно в разделе Code -> Clone -> SSH).
Пример формата SCP с двоеточием:
git@github.com:organization/repo-name.git
user@custom-host.example.com:organization/repo-name.git
Если вы предпочитаете URL вида ssh://, его можно преобразовать следующим образом. В эквивалентном формате ssh:// после хоста используется косая черта:
ssh://git@github.com/organization/repo-name.git
ssh://user@custom-host.example.com/organization/repo-name.git
Доступность функций в зависимости от Git‑провайдера
-
Если ваш Git-провайдер поддерживает встроенную интеграцию с dbt, вы можете легко настроить задания непрерывной интеграции (CI) непосредственно в dbt.
-
Для провайдеров без встроенной интеграции вы по-прежнему можете использовать метод Git clone, чтобы импортировать проект по URL Git-репозитория, и административный API dbt, чтобы запускать задание CI.
В следующей таблице представлены доступные варианты интеграции и соответствующие им возможности.
| Git-провайдер | Встроенная интеграция с dbt | Автоматизированное задание CI | Git clone | Информация | Поддерживаемые тарифные планы |
|---|---|---|---|---|---|
| Azure DevOps | ✅ | ✅ | ✅ | Организации на тарифных планах Starter и Developer могут подключаться к Azure DevOps с помощью ключа развертывания. Обратите внимание: вы не сможете настроить автоматизированные задания CI, но по-прежнему сможете вести разработку. | Enterprise, Enterprise+ |
| GitHub | ✅ | ✅ | ✅ | Все тарифные планы dbt | |
| GitLab | ✅ | ✅ | ✅ | Все тарифные планы dbt | |
| Все остальные Git-провайдеры, подключаемые с помощью Git clone (BitBucket, AWS CodeCommit и другие) | ❌ | ❌ | ✅ | Чтобы настроить непрерывную интеграцию и непрерывное развертывание (CI/CD), обратитесь к руководству Настройка CI/CD с использованием собственных конвейеров. |
Управление ключами развёртывания
После импорта проекта по URL Git платформа dbt создаст ключ развёртывания (Deploy Key) для вашего репозитория. Чтобы найти ключ развёртывания в dbt:
- В dbt нажмите на название своей учётной записи в левом боковом меню и выберите Account settings.
- Перейдите в раздел Projects и выберите проект.
- Нажмите ссылку Repository, чтобы открыть страницу сведений о репозитории.
- Скопируйте ключ из раздела Deploy Key.
Этот ключ развёртывания необходимо добавить в настройки репозитория у вашего Git-провайдера. Настройте для этого ключа доступ на чтение и запись к указанным репозиториям.
Примечание: Для каждого проекта dbt при подключении к репозиторию создаётся отдельный ключ развёртывания, даже если два проекта подключены к одному репозиторию. Вам потребуется добавить оба ключа развёртывания у вашего Git-провайдера.
Устранение ошибок клонирования
Если dbt не может клонировать репозиторий после его подключения по git URL, обычно причина в одном из следующих обстоятельств:
- Некорректный URL: Убедитесь, что путь к репозиторию указан верно, репозиторий существует и вы используете SSH URL для клонирования (
git@...илиssh://...). Не используйтеhttps://...и другие HTTP URL. - Ваш git-провайдер недоступен: Проверьте страницу состояния вашего провайдера (например, GitHub, GitLab, Bitbucket, Azure DevOps) и повторите попытку после восстановления работы сервиса.
- Неверно настроен доступ по SSH: Убедитесь, что ключ развёртывания, созданный dbt, добавлен в репозиторий с необходимыми правами доступа (включая доступ на запись, если он требуется). Если ваша организация ограничивает использование SSH-ключей, согласуйте с администраторами разрешение на использование ключей развёртывания для репозитория.
Если подключиться по-прежнему не удаётся, обратитесь в службу поддержки dbt и укажите URL репозитория, который вы используете, а также время возникновения ошибки.
GitHub
Если вы используете GitHub, можно импортировать репозиторий напрямую с помощью приложения GitHub для dbt. Подключение репозитория через приложение GitHub позволяет использовать непрерывную интеграцию.
Найдите свой SSH URL
- Перейдите в свой репозиторий на GitHub.
- Нажмите кнопку Code.
- Выберите вкладку SSH, чтобы увидеть SSH URL для клонирования.
- Скопируйте URL со вкладки SSH. Поддерживаются URL как в формате SCP (
git@...), так и в форматеssh://.... Если вам нужен форматssh://, см. раздел Преобразование SSH URL в ssh://.
Добавьте ключ развёртывания
Чтобы добавить ключ развёртывания в учётную запись GitHub, перейдите на вкладку Deploy keys на странице настроек вашего репозитория GitHub.
- Укажите имя ключа развёртывания и вставьте ключ, созданный dbt, затем обязательно установите флажок Allow write access.
- После добавления этого ключа dbt сможет читать и записывать файлы в вашем проекте dbt.
- См. Добавление ключа развёртывания в GitHub
GitLab
Если вы используете GitLab, можно импортировать репозиторий напрямую с помощью приложения GitLab для dbt. Подключение репозитория через приложение GitLab позволяет использовать непрерывную интеграцию.
- Чтобы добавить ключ развёртывания в учётную запись GitLab, перейдите на вкладку SSH keys на странице User Settings вашей учётной записи GitLab.
- Затем вставьте ключ развёртывания, созданный dbt для вашего репозитория.
- После сохранения этого SSH-ключа dbt сможет читать и записывать файлы в вашем репозитории GitLab.
- См. Добавление ключа развёртывания только для чтения в GitLab
BitBucket
Используйте ключ развёртывания для импорта репозитория BitBucket в dbt. Для обеспечения безопасности учётной записи используйте служебную учётную запись, чтобы добавить ключ развёртывания BitBucket и поддерживать соединение между вашим репозиторием BitBucket и dbt.
BitBucket связывает каждый коммит в репозитории и другие действия Git (например, создание пул-реквеста) с адресом электронной почты, указанным в учётной записи пользователя BitBucket.
Чтобы добавить ключ развёртывания в учётную запись BitBucket:
- Перейдите на вкладку SSH keys на странице Personal Settings вашей учётной записи BitBucket.
- Затем нажмите кнопку Add key и вставьте ключ развёртывания, созданный dbt для вашего репозитория.
- После сохранения этого SSH-ключа dbt сможет читать и записывать файлы в вашем репозитории BitBucket.
AWS CodeCommit
dbt может работать с проектами dbt, размещёнными в AWS CodeCommit, но по сравнению с GitHub или другими git-провайдерами потребуется выполнить несколько дополнительных шагов. Это руководство поможет подключить ваш проект dbt, размещённый в CodeCommit, к dbt.
Шаг 1: Создайте пользователя AWS для dbt
- Чтобы предоставить dbt доступ к вашему репозиторию, сначала необходимо создать пользователя AWS IAM для dbt.
- Войдите в консоль AWS и перейдите в раздел 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 со страницы Repository в dbt.
- После создания ключа вы увидите его SSH key ID.
- Обратитесь в службу поддержки dbt и передайте значение этого поля, чтобы специалисты службы поддержки dbt могли завершить настройку.
Шаг 4: Укажите пользовательскую ветку в dbt
CodeCommit использует master в качестве ветки по умолчанию. Для инициализации проекта необходимо указать ветку master как пользовательскую ветку в dbt.
- Перейдите в Deploy -> Environments -> Development.
- Выберите Settings -> Edit и в разделе General Settings установите флажок Default to a custom branch.
- Укажите
masterв качестве пользовательской ветки и нажмите Save.
Шаг 5: Настройте URL шаблона пул-реквеста (необязательно)
Чтобы пользователи не могли напрямую сливать изменения кода в ветку по умолчанию, настройте PR Template URL на странице Repository details вашего проекта. После настройки dbt будет предлагать пользователям открыть новый пул-реквест после коммита и синхронизации изменений кода в ветке в Studio IDE, прежде чем сливать какие-либо изменения в ветку по умолчанию.
- Перейдите в Account Settings -> Projects -> выберите проект.
- Нажмите ссылку на репозиторий в разделе Repository.
- На странице Repository details нажмите Edit в правом нижнем углу.
- В поле Pull request URL укажите URL в соответствии с предложенным форматом шаблона пул-реквеста.
- Замените
<repo>именем вашего репозитория (обратите внимание, что регистр имеет значение). В следующем примере репозиторий называетсяNew_Repo. - Заполнив поле Pull request URL, нажмите Save.
🎉 Всё готово! Когда служба поддержки dbt обработает ваш запрос и вы зададите пользовательскую ветку, ваш проект будет готов к выполнению запусков dbt в dbt.
Azure DevOps
Если вы используете Azure DevOps и тариф dbt Enterprise или Enterprise+, можно импортировать репозиторий напрямую с помощью интеграции Azure DevOps для dbt. Подключение репозитория через приложение Azure DevOps позволяет использовать непрерывную интеграцию.
-
Чтобы добавить ключ развёртывания в учётную запись Azure DevOps, перейдите на страницу SSH public keys в разделе User Settings вашей пользовательской или служебной учётной записи Azure DevOps.
-
Рекомендуем использовать для интеграции отдельную служебную учётную запись, чтобы изменения прав пользователей не прерывали соединение dbt с Azure DevOps.
- Затем нажмите кнопку + New Key, чтобы создать новый SSH-ключ для репозитория.
-
Выберите понятное имя для ключа, затем вставьте ключ развёртывания, созданный dbt для вашего репозитория.
-
После сохранения этого SSH-ключа dbt сможет читать и записывать файлы в вашем репозитории Azure DevOps.
Другие git-провайдеры
Не нашли здесь своего git-провайдера? Обратитесь в службу поддержки dbt. Мы будем рады помочь вам настроить dbt для работы с любым поддерживаемым git-провайдером.
Ограниченная интеграция
Для некоторых функций dbt требуется тесная интеграция с вашим git-хостингом, например для обновления пул-реквестов GitHub статусами запусков dbt. При импорте проекта по URL эти функции недоступны. После предоставления dbt доступа к репозиторию можно продолжить настройку проекта: добавить подключение, создать и запустить своё первое задание dbt.










