why you can't ignore gitlab

Post on 21-Jan-2017

538 Views

Category:

Software

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Why you can't ignore GitLab anymore

Ivan Nemytchenko, @inem, inem.at

Developer Advocate at GitLab

1. What is GitLab2. Awesome features

3. Contribution 4. Architecture5. ± 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

YAMLMarkdown

HAMLSASS ↓

HTMLCSS

Github Pages

Jekylljekyllrb.com

...git push

...magic happens

yourwebsite.github.io

Middlemanmiddlemanapp.com

...middleman buildgit add publicgit commitgit push

staticgen.com

GitLab CI

Continuous Integration→ runs tests→ deployment

GitLab Pages + GitLab CI

GitLab Pages examplesgitlab.com/groups/pages

Fork & push changesgitlab.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 contributeabout.gitlab.com/strategy

Architecture of the app

GitLab Development Kitgitlab.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 endend

Finders

Everyone can contributeabout.gitlab.com/strategy

Lean Pokerleanpoker.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 youinem.at/pivorak

top related