631 слово | 2 минуты
Настройка
Группы
Делаем под "root", чтобы не привязываться к пользователю
Это коллекция проектов (репозиториев) с указанием того, как пользователи получают к ним доступ.
Группы могут быть глобальными: prod, test, temp... или локальными (у каждого пользователя есть группа по его логину). Группа имеет пространство имён проектов-репозиториев (так же, как и пользователи)
http://gitlab.2dapp.ru/пользователь/репозиторий - локальная группа пользователя
http://gitlab.2dapp.ru/группа/репозиторий - глобальная группа

Права:
Приватный (Private)- мы должны явно дать доступ на чтение отдельным пользователямВнутренний (Internal)- видена любому вошедшему пользователю GitLabПубличный (Public)- проект видим всем. Это относится как к доступуgit fetch, так и к доступу к проекту через веб-интерфейс.
У нас три приватные группы:
Prod- группа для репозиториев боевых сайтовTest- группа для репозиториев тестовых сайтов (если надо)Temp- песочница
Участники группы
Выбираем группу

и добавляем участника


Роль в группе:
Гость (Guest)- может просматривать wiki, смотреть и создавать issues (баги)Репортер (Reporter)- дополнительно может просматривать кодРазработчик (Developer)- доступ разработчика, может свободно работать (однако по умолчанию запрещено добавлять изменения в защищенную веткуmain)Сопровождающий (Maintainer)- может делать все кроме управления самим проектом (например, не может проект удалить)Владелец (Owner)- полный контроль над группой, её членами и проектами
Добавление пользователя
Добавляются рутом или администратором

Пользователю нужно создать имя, логин и email (на него отправится приглашение). Пользователь будет вынужден установить пароль сам при первом входе в систему.
Все пользователи могут:
- Создавать задачи
- Оставлять комментарии
- Клонировать или скачивать репозиторий
Уровень доступа (Access level):
Regular- обычные пользователи имеют доступ к своим группам и проектамAdministrator- имеет неограниченный доступ ко всем группам, проектам, пользователям и функциям
В случаях, чтобы пользователь имел доступ только к некоторым внутренним или частным проектам, существует возможность создания внешних пользователей:
- Им невозможно создавать группы, проекты или личные репозитории
- Они могут получать доступ только к публичным проектам и проектам и к которым им явно предоставлен доступ (таким образом можно скрывать от них все остальные репозитории)
Доступ может быть предоставлен путем добавления пользователя в качестве участника проекта или группы. Как и обычные пользователи, они получают роль в проекте или группе со всеми возможностями, указанными при добавлении (Guest, Reporter, Developer, Maintainer)
Добавление проекта (репозитория)

Нужно указать имя, выбрать группу. Далее можно пригласить конкретного пользователя в проект и назначить ему права (например, если это внешний пользователь и его нет в группе проекта)
Этот репозиторий будет иметь url: http://gitlab.2dapp.ru/prod/test


Первая заливка репозитория (файлов сайта)
Тут есть 3 пути:
Первый – используем веб-интерфейс GitLab

Можно нажать "Upload File", GitLab предложит выбрать файлы проекта для загрузки и последующей работы с ними. Выбираем все файлы, что используем при разработке и выгружаем. Не подходит для больших проектов.
Второй – используем командную строку
Делаем под пользователем с правами "Maintainer" и выше, чтобы был доступ к ветке main.
Сначала на своем локальном Git нужно сделать глобальные настройки. Эти данные будут отображаться в коммитах (нужно взять из GitLab), далее на выбор:
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
можно отправить существующую папку с файлами сайта
cd project_folder
git init --initial-branch=main
git remote add origin https://gitlab.2dapp.ru/temp/test.git
git add .
git commit -m "Initial commit"
git push --set-upstream origin main
или можно запушить существующий локальный репозиторий со всеми коммитами
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.2dapp.ru/temp/test.git
git push --set-upstream origin --all
git push --set-upstream origin --tags
Третий – используем сторонний git-клиент
Существуют приложения в духе TortoiseGit, Tower, Sublime Merge, GitFox и т.п., позволяющие управлять репозиториями
Как добавить SSH-ключ для подключения к репозиторию
Для того чтобы при клонировании репозитория с GitLab и отправки обратно в него внесенных изменений GIT не требовал постоянно вводить логин и пароль пользователя гитлаба - можно сгенерировать SSH ключ и добавить его в настройки в GitLab
Генерируем ключ с помощью команды ssh-keygen (вводим ее в терминал):
ssh-keygen -t rsa -b 2048 -C "комментарий ключа"
после ввода команды в консоли отобразится примерно следующее:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Генератор ключа спрашивает, куда его сохранить. Оставляем путь по умолчанию (ничего не вводим) и нажимаем Enter до тех пор, пока генерация ключа не будет завершена. В результате должны быть сгенерированы два ключа - приватный (id_rsa) и публичный (id_rsa.pub). Нужно скопировать публичный ключ и добавить его в настройки гитлаба.
cat ~/.ssh/id_rsa.pub
Копируем его и идем в настройки GitLab: Иконка пользователя в правом верхнем углу -> Settings -> SSH Keys (в левом меню). Вставляем наш ключ в соответствующее поле и нажимаем Add key.


Теперь при использовании протокола ssh путь до удалённых репозиториев будет отличаться от путей, которые соответствовали протоколу https. Чтобы клонировать репозиторий с GitHub по ssh нужно будет выбрать вкладку ssh