Gitlab Спустя год в продакшене Андрей Куманяев Gitlab MVP Undev
1-й коммит – Запуск в продакшен –
#devconf #gitlab
Что ждем? Создание репозиториев и управление ими Предоставление доступа к репозиториям (clone/push/manage) Просмотр кода через web интерфейс Быстро и легко вносить правки в код Понятная и удобная история проекта Diff Git blame
Gitlab Repository management Code view / edit Merge / Pull Requests Code review Issue tracker Wikis Snippets etc…
Project
Group
Team
Permissions Non authorized user Guest Reporter Developer Master Owner Permissions
Защита от дурака X: Кто перезаписал репозиторий (git push --force origin develop)? Y: Я X: Зачем? Там был мой код. Y: Я вмержил свою фичу, запушил код. Y: git ругнулся, что нужно забрать код из репозитория. Y: Я попытался, были конфликты, не было время их решать. Y: И я пушнул с -f
Fork && Merge Request
Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
Merge Request && Code Review
Snippets Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
Issues Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
Issues Gitlab Redmine JIRA etc…
Search Projects Groups Merge Requests Issues Code in project (single) … %LIKE%... git grep …
Search Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
Gitlab + elasticsearch Projects Groups Merge Requests Issues Code Commits Files
Gitlab hooks Push Tag Merge Request Issue System hook
Gitlab Services
Gitlab + Jenkins Gitlab Gitlab Hook plugin Jenkins Gitlab Gitlab Hook plugin Jenkins
Gitlab + Jenkins
Сюда пишется заголовок слайда, также до 3 строк, не больше! Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
API Users Session Projects Project Snippets Repositories Repository Files Commits Branches Merge Requests Issues Milestones Notes (comments) Deploy Keys System Hooks Groups
API Clients php-gitlab-api - PHP Laravel API Wrapper for GitLab CE - PHP / Laravel Ruby Wrapper - Ruby python-gitlab - Python java-gitlab-api - Java node-gitlab - Node.js NGitLab -.NET
Events Все события, должны иметь прямое или косвенное отношение к проекту Push Merge Request Issue Note Team
Notifications Подписаться можно на: –Project –Merge Request –Issue –Pushes (через подключение сервиса)
Events Фиксируются все события, которые были описаны в DSL Target Source action Target Source Target action
Notifications (undev) Подписаться можно на: –Проект –Группу проектов –Команду пользователей –Пользователя Подписаться можно на конкретные действия (action)
Gitlab under microscope Ruby on Rails Postgresql/Mysql Redis Sidekiq Unicorn/Puma
Gitlab
Own private server –Gitlab CE DigitalOcean hosting –Gitlab CE Gitlab Cloud –Gitlab CE –Gitlab EE
Gitlab private installation Deb packages Chef/puppet/ansible Docker Gitlab installer How-to
Gitlab requirements CPU 1 core 2 cores 4 cores 8 cores 16 cores 32 cores 64 cores Operating Systems Ubuntu Debian CentOS RedHat Enterprise Linux Scientific Linux Oracle Linux Memory 512MB - min 1GB - up to 100 users 2GB - up to 500 users 4GB - up to 2,000 users 8GB - up to 5,000 users 16GB - up to 10,000 users 32GB - up to 20,000 users 64GB - up to 40,000 users
Кастомизация Gitlab |-- home | |-- git | |--.ssh | |-- authorized_keys | |-- gitlab | |-- gitlab-satellites | |-- gitlab-shell | |-- repositories |-- var | |-- git | |--.ssh | |-- authorized_keys | |-- repositories/ |-- some_path | |-- gitlab | |-- releases | |-- some_release/ | |-- current/ | |-- shared | |-- gitlab-satellites/ | |-- gitlab-shell | |-- releases | |-- some_release/ | |-- current/
Если появились вопросы? Maintenance policy Troubleshooting guide Mailing list and Stack Overflow Feature request forum Contributing guide #gitlab IRC channel на Freenode GitLab Book написанная энтузиастом Jonathan M. Hethey Gitter chat room GitLab Youtube Channel GitLab documentation Issue tracker
Вопросы? Куманяев Андрей twitter.com/zzetorg github.com/zzet