Why you can't ignore GitLab anymore
Ivan Nemytchenko, @inem, inem.at
Developer Advocate at GitLab
1. What is GitLab
2. Awesome features
3. Contribution
4. Architecture
5. ± Lean Poker
Standard behavior
→ Github by default
→ Bitbucket when you don't want to upgrade
→ GitLab - need to install and maintain :
GitLab.com
GitLab.com
Private repositories for free
GitLab on your own
server
Installation from source
Installation with omnibus
Update from source
Update from source
Update with omnibus
apt-get update gitlab-ce
Two ways to use GitLab for free
→ GitLab.com
→ Install with omnibus
Features
[WIP]
TODOs
Merge when build succeds
GitLab Pages
Static Site Generators
YAML
Markdown
HAML
SASS
↓
HTML
CSS
Github Pages
Jekyll
jekyllrb.com
...
git push
...magic happens
yourwebsite.github.io
Middleman
middlemanapp.com
...
middleman build
git add public
git commit
git push
staticgen.com
GitLab CI
Continuous Integration
→ runs tests
→ deployment
GitLab Pages + GitLab CI
GitLab Pages examples
gitlab.com/groups/pages
Fork & push changes
gitlab.com/groups/pages
.gitlab-ci.yml
Runners
inem.at/gl_runner
pages.gitlab.io
GitLab Pages recap
→ Use with any static website generator
→ Add custom domains to your site, and SSL
certificates
→ Create custom error pages for your websites
→ It is FREE
CI with GitLab
→ runs tests
→ deployment
→ generate static websites
→ generate code metrics
→ generate documentation
Why contribute to GitLab
→ Get feedback
→ Great addition to your resume
→ Get a job at GitLab
How to contribute to
GitLab
→ Grab an issue
→ Comment on it
→ Create MR
→ Tests should pass
Everyone can
contribute
about.gitlab.com/strategy
Architecture of the app
GitLab Development Kit
gitlab.com/gitlab-org/gitlab-development-kit
→ MVC
→ Services
→ Finders
Services
class CreateSnippetService < BaseService
def execute
if project.nil?
snippet = PersonalSnippet.new(params)
else
snippet = project.snippets.build(params)
end
unless Gitlab::VisibilityLevel.allowed_for?(current_user, params[:visibility_level])
deny_visibility_level(snippet)
return snippet
end
snippet.author = current_user
snippet.save
snippet
end
end
Finders
Everyone can
contribute
about.gitlab.com/strategy
Lean Poker
leanpoker.org
def bet_request(game_state)
end
What is GitLab?
Opinionated and integrated set of tools based on
convention over configuration that offers superior
user experience
Thank you
inem.at/pivorak