GITLAB TRAINING
Olupot. D
Wednesday Meetup
Who am I?
● Olupot Douglas
● Software Eng.
● Neptune Software
● gitlab/hub:
@oludouglas
What is Gitlab?
● Gitlab is an open source software development tool
which provides a single app for every stage of the
DevOps lifecycle.
● Goal is to make software development faster so
you can spend more time fixing bugs (writing
code) and less time mantaining your tool chain.
● Based on Git, the most widely adopted version
control system for software development.
What is Gitlab?
Gitlab is that single application for complete DevOps lifecycle
Why Managed Version Control
● Easy management of privileges
● Inline feedback options
● Enforce reviews (releases and artefacts)
● Spend time coding, not managing tools and users.
● Firm control over source code access
● No external parties involved.
● Keep sensitive info inhouse
Some Gitlab Features
● Code reviews
● Bug tracking
● Personal and private branches
● Management of numerous Git repos
● Wikis (we all need wiki)
● Issue tracking
● Access control
● Highly available (active cluster where needed)
Gitlab is collaborative
● Unlimited number of public and private repos
● Unlimited number of public and private collabos
● Integrates with external ticket systems eg Redmine
● Works with JIRA for issue tracking.
● Displays merge request status for builds on Jenkins
CI (Oops only on EE).
Who else uses Gitlab?
Who works on Gitlab?
● Been around since 2011
● An active community with hundreds of
contributors
● Managed by Gitlab.com
● Enterprise support by Gitlab B.V
Traditional Git Workflow
● Clone a repository
● Create a branch
● Modify source code
● Check in
● Create a patch or push changes to upstream
Drawbacks and disadvantages
● Write access:
● every committer needs write access on projects
(intended workflows could be omitted)
● Format patch:
● Every committer submits their patches and has to
wait for the mantaining of a review. (quite labour
intensive)
The Gitlab Workflow
● Fork a repo into your own workspace
● Full access to your own forked copy
● Edit online in browser or local check outs
● Create merge request (MR)
● Reviewer coments on diffs on the platform
● Automated process for pulling forks back into
mainstream repo.
Access control
● Gitlab provides access control for user and group
based on permission levels.
● Users’ abilities depend on their access level on a
particular project or group
● If a user is in both a project group and in project
itself the highest permission level is considered.
● The Gitlab administrator receives all permissions.
Internal Issue/Review Ops
● Gitlab provides APIs for external ticketing
− Access to redmine tickets through commit messages in
Git
− Use of internal issue tracking.
● API for Gitlab CI
− Continuous integration: Automated builds and test
suites run on commit
− Improved software quality
− Use dead code detectors or code coverage tools.
More Info
● About Gitlab architecture
− http://gitlab.com
● Gitlab continuous integration
− https://about.gitlab.com/gitbal-ci
● Official Gitlab Documentation
− http://doc.gitlab.com/ee
Any Questions?
Thank you!
Follow me on Twitter
@olu_douglas

Overview of Gitlab usage

  • 1.
  • 2.
    Who am I? ●Olupot Douglas ● Software Eng. ● Neptune Software ● gitlab/hub: @oludouglas
  • 3.
    What is Gitlab? ●Gitlab is an open source software development tool which provides a single app for every stage of the DevOps lifecycle. ● Goal is to make software development faster so you can spend more time fixing bugs (writing code) and less time mantaining your tool chain. ● Based on Git, the most widely adopted version control system for software development.
  • 4.
    What is Gitlab? Gitlabis that single application for complete DevOps lifecycle
  • 5.
    Why Managed VersionControl ● Easy management of privileges ● Inline feedback options ● Enforce reviews (releases and artefacts) ● Spend time coding, not managing tools and users. ● Firm control over source code access ● No external parties involved. ● Keep sensitive info inhouse
  • 6.
    Some Gitlab Features ●Code reviews ● Bug tracking ● Personal and private branches ● Management of numerous Git repos ● Wikis (we all need wiki) ● Issue tracking ● Access control ● Highly available (active cluster where needed)
  • 7.
    Gitlab is collaborative ●Unlimited number of public and private repos ● Unlimited number of public and private collabos ● Integrates with external ticket systems eg Redmine ● Works with JIRA for issue tracking. ● Displays merge request status for builds on Jenkins CI (Oops only on EE).
  • 8.
  • 9.
    Who works onGitlab? ● Been around since 2011 ● An active community with hundreds of contributors ● Managed by Gitlab.com ● Enterprise support by Gitlab B.V
  • 10.
    Traditional Git Workflow ●Clone a repository ● Create a branch ● Modify source code ● Check in ● Create a patch or push changes to upstream
  • 11.
    Drawbacks and disadvantages ●Write access: ● every committer needs write access on projects (intended workflows could be omitted) ● Format patch: ● Every committer submits their patches and has to wait for the mantaining of a review. (quite labour intensive)
  • 12.
    The Gitlab Workflow ●Fork a repo into your own workspace ● Full access to your own forked copy ● Edit online in browser or local check outs ● Create merge request (MR) ● Reviewer coments on diffs on the platform ● Automated process for pulling forks back into mainstream repo.
  • 13.
    Access control ● Gitlabprovides access control for user and group based on permission levels. ● Users’ abilities depend on their access level on a particular project or group ● If a user is in both a project group and in project itself the highest permission level is considered. ● The Gitlab administrator receives all permissions.
  • 14.
    Internal Issue/Review Ops ●Gitlab provides APIs for external ticketing − Access to redmine tickets through commit messages in Git − Use of internal issue tracking. ● API for Gitlab CI − Continuous integration: Automated builds and test suites run on commit − Improved software quality − Use dead code detectors or code coverage tools.
  • 15.
    More Info ● AboutGitlab architecture − http://gitlab.com ● Gitlab continuous integration − https://about.gitlab.com/gitbal-ci ● Official Gitlab Documentation − http://doc.gitlab.com/ee
  • 16.
  • 17.
    Thank you! Follow meon Twitter @olu_douglas