Подключения к Git
Подключения к Git — многоразовые, настраиваемые администратором наборы параметров доступа к Git-репозиториям. Их используют диалоги экспорта и импорта версий проекта: пользователь выбирает готовое подключение из списка вместо ввода адреса репозитория и учётных данных каждый раз. Подключения к Git настраиваются в разделе Настройки → Интеграции, на вкладке Подключения к Git.
Назначение и область действия
Подключение к Git хранит всё необходимое для доступа к Git-репозиторию: адрес репозитория, путь внутри него, ветку по умолчанию и учётные данные. Экспорту и импорту версий (описаны на соответствующей странице раздела «Проекты») остаётся только предложить пользователю выбрать подключение.
Ключевые свойства:
- Подключение принадлежит компании создавшего его пользователя. Администратор компании видит и изменяет только подключения своей компании, суперадминистратор — подключения всех компаний
- Подключения не привязаны к отдельному проекту или версии — они действуют на уровне компании и доступны во всех её проектах
- Создание, изменение, удаление, проверка и использование подключений к Git при экспорте и импорте фиксируются в системном журнале
Права доступа
| Роль | Управление подключениями к Git (просмотр, создание, изменение, удаление) | Выбор подключения в диалогах экспорта/импорта версий |
|---|---|---|
| Суперадминистратор | Да (подключения всех компаний) | Да |
| Администратор компании | Да (подключения своей компании) | Да |
| Остальные роли (руководитель проекта, разработчик, аналитик, наблюдатель) | Нет | Да |
Страница Интеграции доступна только администраторам; пользователи с другими ролями открыть её не могут, но могут использовать существующие подключения в диалогах переноса версий.
Список подключений
Вкладка Подключения к Git отображает подключения компании в виде таблицы:
| Столбец | Описание |
|---|---|
| Название | Название, заданное пользователем |
| Платформа | Git-платформа репозитория |
| Адрес репозитория | Адрес репозитория |
| Путь в репозитории | Каталог внутри репозитория, в который выгружаются версии |
| Статус | Доступно (зелёный индикатор) или Недоступно (красный индикатор) |
| Действия | Кнопки редактирования, проверки подключения и удаления |
Над таблицей располагается кнопка Добавить подключение к Git. Таблица поддерживает сортировку и поиск по названию, платформе, адресу репозитория, пути в репозитории и статусу: по платформе и статусу фильтрация выполняется выбором значения из списка, по остальным столбцам — поиском по подстроке без учёта регистра. Список постраничный, по умолчанию 20 записей на страницу.
Статус подключения
| Статус | Значение |
|---|---|
| Доступно (зелёный) | Последняя проверка выполнена успешно: репозиторий доступен, учётные данные приняты, ветка по умолчанию существует, права на запись подтверждены |
| Недоступно (красный) | Последняя проверка завершилась ошибкой либо проверка ещё не выполнялась |
Статус обновляется только проверкой подключения — при её запуске вручную или при сохранении подключения.
Создание подключения
- Нажмите Добавить подключение к Git над списком
- Заполните параметры подключения (см. таблицу ниже) и учётные данные выбранного метода аутентификации
- При желании нажмите Проверить подключение, чтобы проверить текущие значения формы без сохранения
- Сохраните подключение. При сохранении проверка выполняется автоматически: подключение создаётся только при её успехе. Если проверка не пройдена, диалог остаётся открытым и отображается конкретная причина
| Параметр | Обязательность | Описание |
|---|---|---|
| Название | Да | Название подключения, 1–255 символов |
| Платформа | Да | Одна из: GitHub, GitHub Enterprise, GitLab (включая self-hosted), Bitbucket, Azure DevOps, Generic Git (произвольный Git-сервер). После создания не изменяется |
| Адрес репозитория | Да | Адрес репозитория. Пробелы и кириллические символы недопустимы; адрес должен соответствовать выбранной платформе и методу аутентификации (https для методов с токеном и паролем, SSH для метода с SSH-ключом). Отсутствие суффикса .git и завершающий слеш допустимы |
| Путь в репозитории | Да | Каталог внутри репозитория, используемый для переноса версий, до 500 символов. Ведущие и завершающие слеши отбрасываются |
| Ветвь по умолчанию | Да | Ветка, используемая по умолчанию, — main, если не изменено. После успешной проверки подключения поле предлагает фактический список веток репозитория |
| Метод аутентификации | Да | Один из методов, описанных ниже |
Методы аутентификации
| Метод | Поля учётных данных | Особенности |
|---|---|---|
| Personal access token | Токен | Токен должен давать права на запись в репозиторий. Требует https-адрес репозитория |
| Имя пользователя / пароль | Имя пользователя, Пароль | Требует https-адрес репозитория |
| SSH-ключ | Приватный ключ, Парольная фраза (необязательно), Публичный ключ (только чтение) | Требует SSH-адрес репозитория. Публичный ключ извлекается из приватного при сохранении и отображается в форме — добавьте его в репозиторий на стороне платформы |
| OAuth2 | OAuth client ID, OAuth client secret, статус авторизации, кнопка Войти через {платформа} | Доступен только для GitHub, GitHub Enterprise и GitLab. Если выбрана платформа без поддержки OAuth2, метод возвращается к значению Personal access token |
Авторизация OAuth2. Кнопка Войти через {платформа} открывает всплывающее окно со страницей авторизации платформы. После подтверждения доступа результат авторизации передаётся в диалог, и подключение можно сохранить. Авторизация действует ограниченное время: если срок истёк до сохранения, отображается сообщение «Срок действия OAuth-авторизации истёк — войдите ещё раз перед сохранением», и вход нужно повторить. Для self-hosted GitLab и GitHub Enterprise адрес платформы определяется по адресу репозитория.
Все учётные данные — токены, пароли, SSH-ключи, парольные фразы и секреты OAuth — хранятся в зашифрованном виде и после сохранения повторно не отображаются.
Проверка подключения
Проверить подключение можно двумя способами:
- Кнопкой Проверить подключение в диалоге создания или редактирования — проверяются текущие значения формы; ничего не сохраняется, и сохранённый статус не меняется. Для существующего подключения незаполненное поле секрета замещается сохранёнными учётными данными
- Действием Проверить подключение в строке списка — используются сохранённые учётные данные, полученный статус сохраняется в подключении
Проверка последовательно контролирует:
- что репозиторий доступен по указанному адресу, и запрашивает список его веток (успешный ответ заполняет подсказки поля Ветвь по умолчанию)
- что учётные данные приняты платформой
- что ветка по умолчанию существует (для пустого репозитория проверка пропускается — пустой репозиторий является допустимой целью экспорта и инициализируется при первой выгрузке)
- что учётные данные позволяют отправлять изменения в репозиторий (проверяется без записи в него)
Результат отображается уведомлением об успехе или ошибке. Сообщения об ошибках указывают на конкретную проблему:
| Сообщение | Причина и способ устранения |
|---|---|
| «Git-репозиторий отклонил учётные данные» | Токен, пароль, ключ или OAuth-разрешение не приняты — обновите учётные данные |
| «Git-репозиторий недоступен» | Хост не отвечает или превышено время ожидания — проверьте адрес и сеть |
| «Ветвь по умолчанию не существует в репозитории» | Указанная ветка отсутствует в непустом репозитории — выберите существующую ветку |
| «Учётные данные не позволяют отправлять изменения в репозиторий» | Права только на чтение — обновите права токена или ключа |
| «Для проверки подключения требуется токен» | Учётные данные не введены и в подключении не сохранены |
| «Для выбранного метода аутентификации не заданы учётные данные» | Не заполнены обязательные для метода поля |
| «Срок действия OAuth-авторизации истёк — войдите ещё раз перед сохранением» | Повторите вход через OAuth |
| «Не удалось проверить подключение к Git» | Прочие ошибки обращения к репозиторию |
Сообщения об ошибках не содержат учётных данных: токены, ключи и парольные фразы вырезаются перед отображением.
Редактирование подключения
- Сохранённый секрет отображается символами-заполнителями (
••••••••••••) и недоступен для ввода, пока не нажата кнопка с карандашом рядом с полем. Пустое поле секрета при сохранении означает «оставить сохранённое значение» - Смена метода аутентификации обнуляет сохранённые учётные данные — учётные данные нового метода нужно ввести заново
- Платформа не изменяется — для смены платформы создайте новое подключение
- Для подключений OAuth2 значения client ID и client secret можно изменить и сохранить без повторного входа; кнопка Авторизоваться заново выполняет новый вход через OAuth и заменяет сохранённую авторизацию
В отличие от создания, отредактированное подключение сохраняется даже при неуспешной проверке — в этом случае оно получает статус Недоступно.
Удаление подключения
Подключение удаляется из списка через диалог подтверждения. Если через удаляемое подключение были импортированы версии проектов, после удаления отображается предупреждение со списком таких версий (в формате «проект / версия»): эти версии теряют ссылку на подключение, через которое были получены.
Использование при экспорте и импорте версий
В диалогах экспорта и импорта версий пользователь выбирает подключение к Git из списка подключений компании. Диалог использует ветку по умолчанию из подключения, предлагает фактический список веток репозитория и позволяет создать новую ветку. Коммит выполняется от имени пользователя DataForge (его имя и электронная почта) с заданным пользователем сообщением коммита. Если выбранное подключение отказало во время переноса, отображается сообщение с причиной, и подключение следует проверить заново; если подключение было удалено, отображается сообщение о том, что выбранное подключение к Git больше не существует. Сами экспорт и импорт версий описаны на отдельной странице раздела «Проекты».