Администратор или разработчик Code Stream может интегрировать Code Stream с процессами жизненного цикла Git с помощью триггера Git. При изменении кода в GitHub, GitLab или Bitbucket Enterprise событие обменивается данными с Code Stream через веб-перехватчик и запускает конвейер. Веб-перехватчик работает с локальными корпоративными версиями GitLab, GitHub и Bitbucket, когда Cloud Assembly и корпоративная версия доступны в одной сети.

При добавлении веб-перехватчика для Git в Code Stream также создается веб-перехватчик в репозитории GitHub, GitLab или Bitbucket. При последующем обновлении или удалении веб-перехватчика это действие также приведет к обновлению или удалению веб-перехватчика в GitHub, GitLab или Bitbucket.

В определении веб-перехватчика должна быть указана конечная точка Git в ветви репозитория, которая будет отслеживаться. Для создания веб-перехватчика в Code Stream используется конечная точка Git. Если конечная точка не существует, ее можно создать при добавлении веб-перехватчика. В этом примере предполагается, что в GitHub есть предварительно заданная конечная точка Git.

Примечание: Конечная точка Git, используемая для создания веб-перехватчика, должна использовать закрытый маркер для проверки подлинности, но не может использовать пароль.

Можно создать несколько веб-перехватчиков для различных ветвей с помощью одной конечной точки Git, указав разные значения для имени ветви на странице конфигурации веб-перехватчика. Чтобы создать другой веб-перехватчик для другой ветви в том же репозитории Git, не нужно несколько раз клонировать конечную точку Git для нескольких ветвей. Просто укажите имя ветви в веб-перехватчике, чтобы использовать конечную точку Git еще раз. Если ветвь веб-перехватчика Git совпадает с ветвью в конечной точке, не нужно указывать имя ветви на странице веб-перехватчика Git.

В этом примере показано, как использовать триггер Git в репозитории GitHub. При этом в предварительных условиях указано, какие подготовительные действия требуются при использовании других типов сервера Git.

Необходимые условия

  • Проверьте, являетесь ли вы участником проекта в Code Stream. Если нет, попросите администратора Code Stream добавить вас в проект в качестве участника. См. раздел Добавление проекта в Code Stream.
  • Убедитесь, что существует конечная точка Git в ветви GitHub, которую необходимо отслеживать. См. раздел Интеграция Git со службой Code Stream.
  • Убедитесь в наличии прав на создание веб-перехватчика в репозитории Git.
  • При настройке веб-перехватчика в GitLab измените параметры сети по умолчанию в GitLab Enterprise, чтобы включить исходящие запросы и разрешить создание локальных веб-перехватчиков.
    Примечание: Это изменение требуется только для GitLab Enterprise. Эти параметры не применяются к GitHub или Bitbucket.
    1. Войдите в экземпляр GitLab Enterprise как администратор.
    2. Перейдите к настройкам сети, используя URL-адрес, например, http://{gitlab-server}/admin/application_settings/network.
    3. Разверните раздел Исходящие запросы и выберите:
      • разрешить запросы к локальной сети от веб-перехватчиков и служб;
      • разрешить запросы к локальной сети от системного перехватчика.
  • Относительно конвейеров, которые требуется запустить: убедитесь, что настроены входные свойства для вставки параметров Git во время работы конвейера.

    При настройке конвейера для использования триггера для Git необходимо настроить входные параметры на вкладке Входные данные.

    Дополнительные сведения о входных параметрах см. в разделе Планирование собственной сборки по модели непрерывной интеграции и предоставления в Code Stream перед добавлением задач вручную.

Процедура

  1. В Code Stream выберите Триггеры > Git.
  2. Перейдите на вкладку Веб-перехватчики для Git , а затем щелкните Создать веб-перехватчик для Git .
    1. а. Выберите проект.
    2. б. Введите понятное имя и описание для веб-перехватчика.
    3. в. Выберите конечную точку Git, настроенную для ветви, которую требуется отслеживать.
      При создании веб-перехватчика его определение включает в себя сведения о текущей конечной точке.
      • Если тип Git, тип сервера Git или URL-адрес репозитория Git в конечной точке позже будут изменены, веб-перехватчик не сможет запустить конвейер, так как будет пытаться получить доступ к репозиторию Git, используя сведения исходной конечной точки. Необходимо удалить веб-перехватчик и снова создать его, указав конечную точку.
      • Если позднее в конечной точке будет изменен тип проверки подлинности, имя пользователя или закрытый маркер, веб-перехватчик продолжит работать.
      • При использовании репозитория BitBucket его URL-адрес должен быть в формате https://api.bitbucket.org/{user}/{repo name} или http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name}.
      Примечание: Если веб-перехватчик, использующий конечную точку Git, где для базовой проверки подлинности применяется пароль, уже был создан раньше, необходимо удалить веб-перехватчик и переопределить его с конечной точкой Git, использующей закрытый маркер для проверки подлинности.
      См. раздел Интеграция Git со службой Code Stream.
    4. г.(Необязательно) Укажите ветвь, которую требуется отслеживать с помощью веб-перехватчика.
      Если ветвь не указана, веб-перехватчик отслеживает ветвь, настроенную для конечной точки Git.
    5. д.(Необязательно) Создайте секретный маркер для веб-перехватчика.
      При использовании секретного маркера Code Stream создает случайный строковый маркер для веб-перехватчика. Затем, когда веб-перехватчик получает данные о событии Git, он отправляет эти данные с секретным маркером. Code Stream использует информацию, чтобы определить, поступают ли вызовы из предполагаемого источника, например из настроенного экземпляра GitHub, репозитория и ветви. Секретный маркер обеспечивает дополнительный уровень безопасности, который позволяет убедиться, что данные о событии Git поступают из верного источника.
    6. е.(Необязательно) В качестве условий триггера укажите условия включения или исключения файлов.
      • Включения файлов. В случае совпадения файлов в отправленной партии с файлами, указанными в путях включения или в регулярном выражении, запускаются конвейеры. Если задано регулярное выражение, Code Stream запускает только конвейеры с именами файлов в наборе изменений, которые совпадают с заданным выражением. Фильтр регулярных выражений полезен при настройке триггера для нескольких конвейеров в одном репозитории.
      • Исключения файлов. Если все файлы в отправленной партии совпадают с файлами, указанными в путях исключения или регулярном выражении, конвейеры не запускаются.
      • Указание приоритета исключения. Если функция «Установление приоритета для исключения» включена, конвейеры не будут запускаться даже в том случае, если какой-либо из файлов во время фиксации будет совпадать с файлами в путях исключения или регулярном выражении. Значение по умолчанию — «Выкл.»
      Если условия соответствуют как условиям включения файла, так и условиям исключения файла, конвейеры не запускаются.

      В следующем примере для триггера используются условия включения и исключения файлов.

      Включения и исключения файлов и их значения отображаются на вкладке Веб-перехватчики Git в триггере для Git. Это может быть обычный текст или регулярное выражение.

      • Включение файлов: при отправке кода с любым изменением в runtime/src/main/a.java или любом файле Java будут запускаться конвейеры, настроенные в конфигурации событий.
      • Для исключений файлов: при отправке кода с изменениями только в обоих файлах конвейеры, настроенные в конфигурациях событий, не будут запускаться.
    7. ё. Для события Git выберите запрос Отправить или Получить.
    8. ж. Введите маркер API-интерфейса.
      Маркер API-интерфейса VMware Cloud Services выполняет проверку аутентификации для внешних соединений API-интерфейса с Code Stream. Чтобы получить маркер API-интерфейса, выполните следующие действия.
      1. Выберите Создать маркер.
      2. Введите адрес электронной почты, связанный с именем пользователя и паролем, а затем нажмите Создать.
        Созданный маркер действителен в течение шести месяцев. Он также называется маркером обновления.
        • Чтобы сохранить маркер в виде переменной для использования в будущем, щелкните Создать переменную, введите имя переменной и нажмите кнопку Сохранить.
        • Чтобы сохранить маркер как текстовое значение для использования в будущем, нажмите кнопку Копировать и вставьте маркер в текстовый файл для сохранения в локальной системе.
        Можно создать переменную и одновременно сохранить маркер в текстовом файле для дальнейшего использования.
      3. Нажмите кнопку Закрыть.
    9. з. Выберите конвейер, который должен запускаться веб-перехватчиком.
      Если конвейер включает в себя добавленные настраиваемые входные параметры, в списке «Входные параметры» отображаются параметры и значения. Можно ввести значения для входных параметров, которые передаются в конвейер с событием триггера. Кроме того, можно оставить значения пустыми или использовать установленные по умолчанию значения, если они заданы.

      Дополнительные сведения о настройках автоматической вставки входных параметров для триггеров Git см. в разделе Предварительные условия.

    10. и. Щелкните Создать.
      Веб-перехватчик отобразится в виде новой карточки.
  3. Щелкните карточку веб-перехватчика.
    Когда форма данных веб-перехватчика появится снова, в верхней ее части будет отображаться добавленный URL-адрес веб-перехватчика. Веб-перехватчик Git подключается к репозиторию GitHub с помощью URL-адреса веб-перехватчика.

    URL-адрес веб-перехватчика Git, который вы копируете и используете в репозитории Git, отображается на вкладке Веб-перехватчики Git в триггере для Git.

  4. В новом окне браузера откройте репозиторий GitHub, подключенный с помощью веб-перехватчика.
    1. а. Для отображения веб-перехватчика, добавленного в Code Stream, перейдите на вкладку Параметры и выберите Веб-перехватчики.
      В нижней части списка веб-перехватчиков появится тот же самый URL-адрес веб-перехватчика.

      В репозитории GitHub в нижней части списка веб-перехватчиков отображается тот же самый URL-адрес веб-перехватчика Git.

    2. б. Чтобы внести изменения в код, перейдите на вкладку Код и выберите файл в ветви. После внесения изменений в файл зафиксируйте их.
    3. в. Чтобы убедиться, что URL-адрес веб-перехватчика работает, перейдите на вкладку Настройки и снова выберите Веб-перехватчики.
      В нижней части списка веб-перехватчиков рядом с URL-адресом веб-перехватчика появится зеленая галочка. Если веб-перехватчик в GitHub допустим, появится зеленая галочка.
  5. Чтобы просмотреть действие, инициируемое веб-перехватчиком Git, вернитесь в Code Stream. Щелкните Триггеры > Git > Действие.
    В разделе «Состояние выполнения» убедитесь, что конвейер запущен.

    После своей фиксации файл активирует триггер для Git, а на вкладке Действия отображается состояние триггера «ЗАПУЩЕНО».

  6. Щелкните Выполняемые элементы и проследите за выполнением конвейера.
    Для наблюдения за выполнением конвейера нажмите «Обновить».

    После запуска конвейера его состояние отображается как «ВЫПОЛНЯЕТСЯ».

Результаты

Поздравляем! Вы успешно использовали триггер для Git.