Презентация - 14

advertisement
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
… %LIKE% ...
Merge Requests
Issues
Code in project (single) 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
Jenkins
Hook plugin
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
action
Source
Target
Target
Target
action
Source
Notifications (undev)
• Подписаться можно на:
–
–
–
–
Проект
Группу проектов
Команду пользователей
Пользователя
• Подписаться можно на конкретные действия (action)
Gitlab under microscope
Ruby on Rails
Postgresql/Mysql
Redis
Sidekiq
Unicorn/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.md
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/requirements.md
Gitlab requirements
Operating Systems
Ubuntu
Debian
CentOS
RedHat Enterprise
Linux
Scientific Linux
Oracle Linux
CPU
1 core
2 cores
4 cores
8 cores
16 cores
32 cores
64 cores
Memory
512MB
- min
1GB
2GB
4GB
8GB
16GB
32GB
64GB
- up to 100 users
- up to 500 users
- up to 2,000 users
- up to 5,000 users
- up to 10,000 users
- up to 20,000 users
- 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
Вопросы?
Куманяев Андрей
me@zzet.org
twitter.com/zzetorg
github.com/zzet
Download