Внести изменения в репозиторий через Fork
Внести изменения в репозиторий через Fork Виды пользователей:
- Мейнтейнер — пользователь с ролью GitLab developer в проекте репозитория. Обычно это разработчик, который постоянно работает над проектом.
- Контрибьютор — пользователь без прав в репозитории, который хочет внести изменения.
Для контрибьюторов
Fork — это ваша персональная копия репозитория со старыми ветками и коммитами. Обычно их используют, если у вас нет прав вносить изменения в чужой репозиторий — создаётся дубль, и из него merge request в оригинал. Документация о Fork.
Чтобы внести изменения в репозиторий, в котором у вас нет прав:
-
Зайдите в репозиторий и нажмите Fork в правом верхнем углу.
-
Заполните поля и нажмите Fork project.

-
Клонируйте репозиторий локально на компьютер:
git clone https://gitlab.polygon.t-technologies.ru/[путь до вашего репозитория] -
Создайте ветку и в ней внесите изменения в проект.
-
Создайте merge request из вашей копии в оригинальный репозиторий.
-
Найдите мейнтейнера оригинального репозитория, отправьте ему merge request на согласование.
Если jobs упали, найдите мейнтейнера проекта и попросите его исправить проблему по инструкции.
Подтянуть актуальный master
На примере репозитория gitlab-runners-network-access:
По SSH
(!) Функционал не доступен
Выполните команды:
git remote add upstream ssh://git@gitlab.tcsbank.ru:7999/self-service/gitlab-runners-network-access.git
git fetch upstream
git checkout master
git rebase upstream/master
git push
По HTTPS
Выполните команды:
git remote add upstream https://gitlab.polygon.t-technologies.ru/self-service/gitlab-runners-network-access.git
git checkout master
git fetch upstream
git merge upstream/master
git push
Для мейнтейнеров
Проекты, которые создали с помощью Fork, не видят ENV-переменные вашего репозитория. Чтобы это исправить:
Через политики
Настройте параметр fork_whitelist в файле policy.yml.
Пример: policy.yml
merge_request:
fork_whitelist:
- src/**/* #путь в gitlab
Когда правки вольются в master, Gitlab CI автоматически запустит
пайплайн с ENV-параметрами, если были только затронуты файлы из fork_whitelist.
В интерфейсе Gitlab
- Настройте политику
fork_whitelistвpolicy.yml. - Откройте merge request.
- Перейдите на вкладку Pipelines.
- Нажмите Run pipelines.
Пайплайн запустится в контексте репозитория, и все ENV будут доступны.

Запустить пайплайн в Fork
fork_whitelist — политика, которая позволяет указать список файлов, при изменении которых через MR
из форка репозитория в репозитории будет автоматически создаваться CI pipeline (с проектным токеном GitLab).
Все файлы должны попасть под маску для запуска пайплайна, в противном случае бот напишет комментарий со списком файлов, которые не попали под политику.
Поддерживаются глоб-маски.
В рамках fork pipeline могут быть выполнены только Job с такими правилами:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: always
Также поддерживается инструкция:
rules: only: - merge_requests