gitlab Спустя год в продакшене
DESCRIPTION
Gitlab Спустя год в продакшене. Андрей Куманяев Gitlab MVP Undev. 1- й коммит – 11.2012 Запуск в продакшен – 05.2013. Вопросы?. @ zzetorg # devconf # gitlab. Что ждем?. Создание репозиториев и управление ими Предоставление доступа к репозиториям ( clone/push/manage ) - PowerPoint PPT PresentationTRANSCRIPT
GitlabСпустя год в продакшене
Андрей КуманяевGitlab MVP
Undev
1-й коммит – 11.2012Запуск в продакшен – 05.2013
Вопросы?
@zzetorg
#devconf #gitlab
Что ждем?
• Создание репозиториев и управление ими• Предоставление доступа к репозиториям
(clone/push/manage)• Просмотр кода через web интерфейс• Быстро и легко вносить правки в код• Понятная и удобная история проекта• Diff• Git blame
Gitlab
• Repository management• Code view / edit• Merge / Pull Requests• Code review• Issue tracker• Wiki’s• 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
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 pluginJenkins
Gitlab Gitlab Hook plugin Jenkins
Gitlab + Jenkins
Сюда пишется заголовок слайда, также до 3 строк, не больше!
• Это – контентная область слайда.• Желательно создавать новые слайды, дублируя
(copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
APIUsersSessionProjectsProject SnippetsRepositoriesRepository FilesCommitsBranchesMerge RequestsIssuesMilestonesNotes (comments)Deploy KeysSystem HooksGroups
APIClientsphp-gitlab-api - PHPLaravel API Wrapper for GitLab CE - PHP / LaravelRuby Wrapper - Rubypython-gitlab - Pythonjava-gitlab-api - Javanode-gitlab - Node.jsNGitLab - .NET
Events
Все события, должны иметь прямое или косвенное отношение к проекту
• Push• Merge Request• Issue• Note• Team
Notifications
• Подписаться можно на:– Project– Merge Request– Issue– Pushes (через подключение сервиса)
Events
• Фиксируются все события, которые были описаны в DSL
Target Sourceaction
Target
SourceTarget
Targetaction
actionaction
Notifications (undev)
• Подписаться можно на:– Проект– Группу проектов– Команду пользователей– Пользователя
• Подписаться можно на конкретные действия (action)
Gitlab under microscope
Ruby on RailsPostgresql/MysqlRedisSidekiqUnicorn/Puma
Gitlab
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
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.mdhttps://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.mdhttps://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/requirements.md
Gitlab requirements
CPU
1 core2 cores4 cores 8 cores16 cores32 cores64 cores
Operating Systems
UbuntuDebianCentOSRedHat Enterprise LinuxScientific LinuxOracle Linux
Memory512MB - min
1GB - up to 100 users2GB - up to 500 users4GB - up to 2,000 users8GB - up to 5,000 users16GB - up to 10,000 users32GB - up to 20,000 users64GB - 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