Post on 30-May-2020
GitHubvsGitLabGitLabcomparedtootherDevOpstools
Onthispage
Summary
Comments/Anecdotes
Resources
FAQs
Comparison
Summary
(drawnfromhttps://en.wikipedia.org/wiki/GitHub)
GitHubisacollaborativecoderepositorytohostandreviewcode,manageprojectsandbuildsoftware.Itoffersallofthedistributedversioncontrolandsourcecodemanagement(SCM)functionalityofGitaswellasaddingitsownfeatures.Itprovidesaccesscontrolandseveralcollaborationfeaturessuchasbugtracking,featurerequests,taskmanagement,andwikisforeveryproject.
CI/CDisaccomplishedviaintegrationswithotherproducts,whileGitLabhasintegratedCI/CD.Incontrast,GitHubalsooffersapplicationperformanceandservermonitoringalongwithcycleanalytics.GitLabincludesstaticanddynamicsecuritytestingandcontainerscanning.
GitHuboffersplansforbothprivaterepositoriesandfreeaccountswhicharecommonlyusedtohostopen-sourcesoftwareprojects.AsofJune2018,GitHubreportshavingover28millionusersand57millionrepositories(including28millionpublicrepositories),makingitthelargesthostofsourcecodeintheworld.
OnJune4,2018,MicrosoftannouncedithadreachedanagreementtoacquireGitHubforUS$7.5billion.Thepurchaseisexpectedtoclosebytheendoftheyear.
GitHubaisalsoofferedinaself-managedversioncalledGitHubEnterprise(GHE).
Comments/Anecdotes
FeedbackfromcustomersisthatGitHubEnterprise(GHE)hastroublescalling.Itseemslikeanyonenearing2kusersstartstorunintoissues.GitLabisenterpriseclassandscalesto>32Kusers.
2018-09-10-GitHubannouncesthatMicrosoftAzurePipelinesareavailableintheGitHubMarketplace.ThisisinparallelwithMicrosoft(whorecentlyacquiredGitHub)announcingtheirAzureDevOps(rebrandedVSTS/TFS).Related?Yes!
2018-09-10-MicrosoftannouncestheadditionofGitHubPullRequestsintegrateddirectlyintoVisualStudioCode.VisualStudioCodeisMicrosoft'slightweight(butstillnotwebbased)codeeditor.
Resources
GitHubWebsite
FAQs
DistributionarchitectureQ:IsGHEisbasedonaclosedVMA:Yes-https://help.github.com/enterprise/2.13/admin/guides/installation/“GitHubEnterpriseisdistributedasavirtualmachineimagethatyouinstallandmanagewithinyourexistinginfrastructure.â€
PossibledisadvantagesofaclosedVM:
Q:aclosedenvironment(couldbeatrojaninside!)A:Agreewithassessment
Q:InstallationisquitecomplicatedA:DISAGREE-singleVMmakesiteasytoinstall,althoughlessflexibleSeeinstallationinstructionsathttps://help.github.com/enterprise/2.13/admin/guides/installation/setting-up-a-github-enterprise-instance/
Q:upgradesandpatchingiscomplicatedA:DISAGREE-VMappliancemakespatchingandupgradingrelativelysimple.Seeupgradeinstructionsathttps://help.github.com/enterprise/2.13/admin/guides/installation/upgrading-github-enterprise/
Q:badthingoffmyheadforusingVMisI/OA:Notclear-Ingeneralyes.ButthingscanbetunedtoimproveitalotSeehttps://academic.oup.com/comjnl/article/61/6/808/4259797forgeneralrecentstudyonthis.
Q:probablycan'tseparatetheinstallationtoseparatedparts(inordertoimproveperformance)A:DISAGREE-CanhaveVMactasdifferentpartstoscaleperrequirements.Seehttps://help.github.com/enterprise/2.13/admin/guides/clustering/about-cluster-nodes/#cluster-design-recommendationsandhttps://help.github.com/enterprise/2.13/admin/guides/clustering/initializing-the-cluster/formoredetails.
Comparison
FEATURES
FreeCI/CDwithsharedorpersonalRunners
GitLab.comhassharedRunnersthatallowyoutouseGitLabCI/CDcompletelyfreeupto2000buildminutesforprivateprojectsandunlimitedforpublicprojects.Alternatively,youcansetupyourownRunnerforfasterbuildprocessing,unlimitedbuildminutes,orspecialrequirements.
ExploreGitLab.comofferings
Built-inCI/CD
GitLabhasbuilt-inContinuousIntegration/ContinuousDelivery,forfree,noneedtoinstallitseparately.Useittobuild,test,anddeployyourwebsite(GitLabPages)orwebapp.Thejobresultsaredisplayedonmergerequestsforeasyaccess.
LearnmoreaboutCI/CD
Innersourcing
InternalprojectsinGitLaballowyoutopromoteinnersourcingofyourinternalrepositories.
Findoutmoreaboutinnersourcing
Commitgraphandreportingtools
GitLabprovidescommitgraphsandreportingtoolsaboutcollaborators'work.
Learnmoreaboutcommitgraphs
GroupMilestones
Createandmanagemilestonesacrossprojects,toworktowardsatargetdatefromthegrouplevel.Viewalltheissuesforthemilestoneyou’recurrentlyworkingonacrossmultipleprojects.
LearnmoreaboutGroupMilestones
Availability
GitLab.comisat99.5%availabilitywhilewewanttobeabove99.95%.We'rehiringtoimprovethisinthelasttwomonthsof2017andin2018.
GitLab.comstatus
Themostcomprehensiveimportfeatureset
GitLabcanimportprojectsandissuesfrommoresources(GitHub,BitBucket,GoogleCode,FogBugz,GiteaandfromanygitURL)thanGitHuboranyotherVCS.WeevenhaveyoucoveredforyourmovefromSVNtoGitwithcomprehensiveguidesanddocumentation.
MakingiteasiertogetupandrunningwithGitLab
Exportprojects
GitLaballowsyoutoexportyourprojecttoothersystems.
Wedon'trestrictaccesstoyourdata
PowerfulIssueTracker
Quicklysetthestatus,assigneeormilestoneformultipleissuesatthesametimeoreasilyfilterthemonanyproperties.Seemilestonesandissuesacrossprojects.
LearnmoreabouttheIssueTracker
IssueBoards
GitLabhasIssueBoards,eachlistofanIssueBoardisbasedonalabelthatexistsinyourissuetracker.TheIssueBoardwillthereforematchthestateofyourissuetrackerinauser-friendlyway.
LearnmoreaboutGitLabIssueBoards
BurndownCharts
GitLabprovidesBurndownChartsaspartofMilestones.Thisallowsuserstobettertrackprogressduringasprintorwhileworkingonanewversionoftheirsoftware.
ReadourBurndownChartDocumentation
IssueWeights
GitLabletsyoumanageissuesusingAgilepracticesbysettingtheweightofanissue.
ReadourIssueWeightsdocumentation
Relatedissues
Explicitlymarkissuesasrelatedandtracktheirstatus.
LearnmoreaboutRelatedIssues
Multipleassigneesforissues
Assignmorethanonepersontoanissueatatime.
ReadourMultipleAssigneesDocumentation
Timetracking
TimeTrackinginGitLabletsyourteamaddestimatesandrecordtimespentonissuesandmergerequests.
LearnmoreaboutTimeTracking
Wikibasedprojectdocumentation
AseparatesystemfordocumentationcalledWiki,isbuiltrightintoeachGitLabproject.EveryWikiisaseparateGitrepository.
LearnmoreaboutGitLabWikis
Duedatesforindividualissues
InGitLab,youcansetaduedateforindividualissues.Thisisveryconvenientifyouhavesmalltaskswithaspecificdeadline.
Duedatesdocumentation
Moveissuesbetweenprojects
YoucanmoveissuesbetweenprojectsinGitLab.Alllinks,historyandcommentswillbecopiedandtheoriginalissuewillreferencethenewlymovedissue.Thismakesworkingwithmultipleissuetrackersmucheasier.
Learnmoreaboutmovingissuesbetweenprojects
Createnewbranchesfromissues
InGitLab,youcanquicklycreateanewbranchfromanissueontheissuetracker.Itwillincludetheissuenumberandtitleautomatically,makingiteasytotrackwhichbranchbelongstowhichissue.
Seehowinourdocumentation
Alloweditsfromupstreammaintainersinbranch
Whenauseropensamergerequestfromafork,theyaregiventheoptiontoallowupstreammaintainerstocollaboratewiththemonthesourcebranch.Thisallowsthemaintainersoftheupstreamprojecttomakesmallfixesorrebasebranchesbeforemerging,reducingthebackandforthofacceptingcommunitycontributions.
Applicationperformancemonitoring
GitLabcollectsanddisplaysperformancemetricsfordeployedapps,leveragingPrometheus.Developerscandeterminetheimpactofamergeandkeepaneyeontheirproductionsystems,withoutleavingGitLab.
Learnmoreaboutmonitoringdeployedapps
Applicationperformancealerts
GitLaballowsengineerstoseamlesslycreateservicelevelindicatoralertsandbenotifiedofanydesiredevents,allwithinthesameworkflowwheretheywritetheircode.
LearnmoreaboutcreatingSLIalerts
GitLabservermonitoring
GitLabcomesoutoftheboxenabledforPrometheusmonitoringwithextensiveinstrumentation,makingiteasytoensureyourGitLabdeploymentisresponsiveandhealthy.
LearnmoreaboutmonitoringtheGitLabservice
CycleAnalytics
GitLabprovidesadashboardthatletsteamsmeasurethetimeittakestogofromplanningtomonitoring.GitLabcanprovidethisdatabecauseithasallthetoolsbuilt-in:fromtheidea,totheCI,tocodereview,todeploytoproduction.
LearnmoreaboutCycleAnalytics
Quickactions
GitLabprovidesaconvenientwaytochangemetadataofanissueormergerequestwithoutleavingthecommentfieldwithslashcommands.
Documentationaboutquickactions
ImageDiscussions
Withinacommitvieworamergerequestdiffview,andwithrespecttoaspecificlocationofanimage,youcanhavearesolvablediscussion.Havemultiplediscussionsspecifyingdifferentareasofanimage.
ImageDiscussions
MergeRequestCommitDiscussions
Commentonacommitwithinthecontextofamergerequestitself
MergeRequestCommitDiscussions
LockDiscussion
LockdowncontinueddiscussioninanissueormergerequestasaMasterroleorhigher,topreventfurtherabuse,spam,orunproductivecollaboration.
LockDiscussion
Draganddroptasks
YoucanchangetheorderoftasksinmarkdownonGitHub.GitLabdoesnothavethisability,butisconsideringimplementingit.
SeetheGitLabissuetoimplementthis
Firsttimecontributorbadge
Highlightfirst-timecontributorsinaproject.
SUPPORTfilelink
LinkfromnewissuestoaSUPPORTfile,pointingtosupportresources.
SeetheGitLabissuetoimplementthis
Built-inContainerRegistry
GitLabContainerRegistryisasecureandprivateregistryforDockerimages.ItallowsforeasyuploadanddownloadofimagesfromGitLabCI.ItisfullyintegratedwithGitrepositorymanagement.
DocumentationonContainerRegistry
FullBinaryRepository
Abinaryrepositoryisasoftwarerepositoryforpackages,artifactsandtheircorrespondingmetadata.Itcanbeusedtostorebinaryfilesproducedbyanorganizationitself,suchasproductreleasesandnightlyproductbuilds,orforthirdpartybinarieswhichmustbetreateddifferentlyforbothtechnicalandlegalreasons.
PreviewyourchangeswithReviewApps
WithGitLabCI/CDyoucancreateanewenvironmentforeachoneofyourbranches,speedingupyourdevelopmentprocess.Spinupdynamicenvironmentsforyourmergerequestswiththeabilitytopreviewyourbranchinaliveenvironment.
LearnmoreaboutReviewApps
Newfeatureseverymonth
GitLabisupdatedwithnewfeaturesandimprovementseverymonthonthe22nd.
Oneintegratedtool
Othertoolsrequiretheintegrationofmultiple3rdpartytoolstocompletethesoftwaredevelopmentlifecycle.GitLabhasacompletelyintegratedsolutionthatcoverstheentiredevelopmentlifecycle.
Accesstotheserver
Youhavecompletecontroloftheserver/instance,soyoucaninstalladditionalsoftware(intrusiondetection,performancemonitoring,etc.)andviewlogfilesontheserveritself.GitLab'sadvancedlogsystemmeanseverythinggetsloggedandprovidesyouwitheasyaccesstoawealthoflogfileinformation.
Learnmoreaboutlogging
Runsonmetal
GitLabcanrunonbaremetalserverswhereyoucanhavecontrolofthediskI/O,CPU,RAM,etc.Scalehorizontallywithoutanissue.
ReadaboutthedifferentwaystoinstallGitLab
HighlyAvailablesetups
Formissioncriticalreleases,youcannotafforddowntime.Splityourappservers,database,etc.,intomultipleinstancesandworkinread-onlymodeduringbackups.
MoreinformationonHighAvailability
Runyourownsoftwareonyourinstance
YouarefreetorunyourownsoftwareontheinstancethatGitLabisrunningon.Haveyourownintrusiondetectionsystem?Noproblem.
ReadaboutthedifferentwaystoinstallGitLab
Useyourconfigurationmanagementsoftware
Youcanuseyourchoiceofconfigurationmanagementsoftware,fromPuppet,Chef,Ansibleforquickandstraightforwardimplementation.
ReadaboutthedifferentwaystoinstallGitLab
UsestandardUnixtoolsformaintenanceandmonitoring
Usethetoolsyouknowformonitoringandmaintenance,whetherthey'restandardoryourown.GitLabdoesn'trestrictyou.
ReadaboutthedifferentwaystoinstallGitLab
IPv6ready
BothGitLab.comandGitLabSelf-managessupportIPv6.
ReadthedocsonconfiguringIPv6
AD/LDAPintegration
Syncgroups,manageSSH-keys,managepermissions,authenticationandmore.YoucanmanageanentireGitLabinstancethroughtheLDAP/ADintegration.
MoreinformationaboutAD/LDAPintegration
MultipleLDAP/ADserversupport
LinkmultipleLDAPserverstoGitLabforauthenticationandauthorization
AdvancedLDAPconfiguration
Multipleapprovalsincodereview
InGitLab,toensurestrictcodereview,youcanrequireaspecificnumberofapprovalsonamergerequestbydifferentusersbeforebeingabletomergeit.Youcanundoanapprovalbyremovingitafterthefact.
ApprovalsDocumentation
Easeofmigrationfromotherproviders
GitLabletsyoueasilymigrateallrepos,issuesandmergerequestdatafromyourpreviousprovider.
LearnhowtomigrateyourprojectstoGitLab
ConfidentialIssues
KeepyourinformationsecurewithConfidentialIssues.WithGitLab,youcancreateconfidentialissuesvisibleonlyforprojectmemberswithReporteraccesslevelorabove.
LearnmoreaboutConfidentialIssues
Accesstoandabilitytomodifysourcecode
GitLabEnterpriseEditionispubliclyreadable,meaningyoucanscanormodifythecodetomeetyoursecurityanddevelopmentneeds.Thecodeusedbymostotherprovidersisproprietary,meaningyoucannoteditorviewthesourcecode.
ReadtheGitLabEnterpriseEditionlicense.
AcomprehensiveAPI
GitLabprovidesAPIsformostfeatures,allowingdeveloperstocreatedeeperintegrationswiththeproduct.
ReadourAPIDocumentation
Searchfileswithfuzzyfilefinder
GitLabprovidesawaytosearchafileinyourrepositoryinonekeystroke.
Readaboutthefilefinderinourdocumentation
Fast-forwardmergewithoptiontorebase
Withthissettingattheprojectlevel,youcanensurethatnomergecommitsarecreatedandallmergesarefast-forwarded.Whenafast-forwardmergeisnotpossible,theuserisgiventheoptiontorebase.
Learnmoreaboutrebasebeforemerge
Squashandmerge
Combinecommitsintoonesothatmainbranchhasasimplertofollowandreverthistory.
Learnmoreaboutsquashandmerge
Remoterepositorypushmirroring
Mirrorarepositoryfromyourlocalservertoelsewhere.
Learnmoreaboutrepositorypushmirroring
Remoterepositorypullmirroring
MirrorarepositoryfromaremoteGitservertoyourlocalserver,makingiteasytokeeplocalforksandreplicasuptodate.
Learnmoreaboutrepositorypullmirroring
ExportissuesasCSV
IssuescanbeexportedasCSVfromGitLabandaresenttoyourdefaultnotificationemailasanattachment.
LearnmoreaboutexportingissuesasCSV
Mergerequestapprovals
Whenaprojectrequiresmultiplesign-offs,GitLabEnterpriseEditionenablesyoutomakesureeverymergerequestisapprovedbyoneormorepeople.Mergerequestapprovalsallowyoutosetthenumberofnecessaryapprovalsandpredefinealistofapproversthatwillneedtoapproveeverymergerequestinaproject,andin-turnimproveyourcode’squality.
Learnmoreaboutmergerequestapprovals
Granularuserrolesandflexiblepermissions
Manageaccessandpermissionswithfivedifferentuserrolesandsettingsforexternalusers.Setpermissionsaccordingtopeople'srole,ratherthaneitherreadorwriteaccesstoarepository.Don'tsharethesourcecodewithpeoplethatonlyneedaccesstotheissuetracker.
LearnmoreaboutUserRoles
Todos
WhenauserismentionedinorassignedtoamergerequestitwillbeincludedintheuserTodos,makingthedevelopmentworkflowfasterandeasiertotrack.
LearnmoreaboutTodos
Mergeconflictresolution
PreviewmergeconflictsintheGitLabUIandtellGitwhichversiontouse.
LearnmoreaboutthemergeconflictresolutionUI
Rejectunsignedcommits
GitLabEnterpriseEditionPremiumallowsyoutoenforceGPGsignaturesbyrejectingunsignedcommits.
Readmoreaboutenforcingpushrules
VerifiedCommitter
Verifythatapushonlycontainscommitsbythesameuserperformingthepush.
IndevelopmentforGitLab.Followthislinkformoreinformation.
Navigatetomethod/functioninamergerequestdiff
Whenviewingamergerequestdiff,navigatedirectlytoamethod/functioninachangedfile.
SeetheGitLabissuetoimplementthisfeature
Mergewhenpipelinesucceeds
WhenreviewingamergerequestthatlooksreadytomergebutstillhasoneormoreCI/CDjobsrunning,youcansetittobemergedautomaticallywhenthejobspipelinesucceeds.
LearnmoreaboutMergewhenpipelinesucceeds
RevertspecificcommitsoramergerequestfromtheUI
RevertanycommitorasinglemergerequestfromGitLab'sUI,withaclickofabutton.
LearnhowtorevertacommitoramergerequestfromtheGitLabUI.
Inlinecommentinganddiscussionresolution
Codeortextreviewisfasterandmoreeffectivewithinlinecommentsinmergerequests.Leavecommentsandresolvediscussionsonspecificlinesofcode.InGitLab,MergeRequestinlinecommentsareinterpretedasadiscussion.Youcanconfigureyourprojecttoonlyacceptmergerequestswhenalldiscussionsareresolved.
Learnmoreaboutresolvingdiscussions
Cherry-pickingchanges
Cherry-pickanycommitintheUIbysimplyclickingtheCherry-Pickbuttoninamergedmergerequestoraspecificcommit.
Learnmoreaboutcherrypickingmergerequests
GPGSignedCommits
Signcommitsandprovethatacommitwasperformedbyacertainuser.
ReadmoreaboutGPGsignedcommits
CodeOwners
TheabilitytospecifyCodeOwnersorreviewersintherepository.
GitLab'sissuetoimplementthis
Subgroups:groupswithingroups
Creategroupswithingroupstoeasilymanagelargenumbersofpeopleandprojects.
LearnmoreaboutSubgroups
Containerdebuggingwithanintegratedwebterminal
Easilydebugyourcontainersinanyofyourenvironmentsusingthebuilt-inGitLabWebTerminal.GitLabcanopenaterminalsessiondirectlyfromyourenvironmentifyourapplicationisdeployedonKubernetes.Thisisaverypowerfulfeaturewhereyoucanquicklydebugissueswithoutleavingthecomfortofyourwebbrowser.
Learnmoreaboutthewebterminal
PublishstaticwebsitesforfreewithGitLabPages
GitLabPagesprovidesaneasysystemforhostingstaticsitesusingGitLabrepositoriesandGitLabCI,completewithcustomdomainsandHTTPSsupport.
LearnmoreaboutGitLabPages
Publishyourwebsitefromaprivateprojectforfree
WithGitLabPages,youcancreateaprivaterepositorytoholdyoursitecontent,andkeeponlythepagesource(HTML)availableonline.
VisitGitLabPagesDocumentation.
CustomdomainsforGitLabPages
WithGitLabPageswebsites,youcanuseacustomdomainorsubdomain.
LearnhowtoapplycustomdomainstoGitLabPageswebsites
MultiplecustomdomainsforGitLabPages
GitLabPagesallowsyoutoaddasmanycustomdomains(knownasdomainaliases)pointingtoasinglewebsite.Adomainaliasislikehavingmultiplefrontdoorstoonelocation.
LearnhowtoaddcustomdomainstoyourGitLabPageswebsite
Securecustomdomains(HTTPS)withGitLabPages
InstallaSSL/TLScertificate,atnocost,onawebsitesetupwithacustomdomainservedbyGitLabPages.
LearnhowtoaddanSSL/TLScertificatetoyourGitLabPageswebsite
GitLabPagescustomdomainsverification
Whenaddinganewcustomdomain,usersmustaddanassociatedTXTrecordinordertoverifytheyaretheownerofthedomain.Thatmechanismisusedtopreventusersfromclaimingdomainstheydonotown.
VisitGitLabPagesDocumentation.
GitLabPagessupportallStaticSiteGenerators
WithGitLab,youcanbuildanySSG,andalsochoosespecificSSGs'versionsyouwantyoursitetobuildwith(e.g.Middleman4.1.1).
LearnhowtobuildanySSGwithGitLabPages
GitLabPagesexampleprojects
Choosean[exampleproject](https://gitlab.com/pages)toforkandgetstartedwithGitLabPages.
Watcha3-minvideotutorialonhowtogetstartedwithGitLabPagesbyforkingaproject
GitLabPagessupportsallJekyllplugins
BesidesbuildinganyJekyllversionyouwant,withGitLabPagesyoucanuseallJekyllpluginsavailable.
VisitGitLabPagesDocumentation.
CustomErrorPages(404)forGitLabPages
GitLabPagesallowsyoutocreatecustomerrorpages.
Learnhowtoaddacustom404toGitLabPageswebsites
DeployBoards
GitLabPremiumshipswithDeployBoardsofferingaconsolidatedviewofthecurrenthealthandstatusofeachCI/CDenvironmentrunningonKubernetes.ThestatusofeachpodofyourlatestdeploymentisdisplayedseamlesslywithinGitLabwithouttheneedtoaccessKubernetes.
LearnmoreaboutDeployBoards
Control
Takecontrolofmaintenancedowntime,don'tbeatthemercyofyourhostingprovider.Controlhowandwhereyourcodeisbackedupandstored.
Youdecidewhenyouupgrade
GitLabreleasesanewversioneachmonthandletsyouchoosewhentoupgrade.
LearnhowtoupgradeyourGitLabinstance
Easyupgradeprocess
UsingourofficialLinuxrepositoriesortheofficialDockerimage,upgradingGitLabisabreeze.
LearnhowtoupgradeyourGitLabinstance
Labels
Labelsprovideaneasywaytocategorizeissuesormergerequestsbasedondescriptivetitlesas'bug',or'documentation'.
LearnmoreaboutGitLabLabels
Abilitytoeditallfieldsofamergerequest
GitLabMergeRequestsareeditablebytheauthor,theproject'sownersanduserswithmasteraccess.Everyfieldiseditable,aswellasthetargetbranch.
ReadthroughGitLabMergeRequest'sDocumentation
Automaticallycloseissue(s)whenamergerequestismerged
WithGitLab,youcanusespecifickeywordstocloseoneormoreissuesassoonasamergerequestismerged.
Learnmoreaboutautomaticallyclosingissues
Configurableissueclosingpattern
Defineyourownspecifickeywordstocloseoneormoreissuesassoonasamergerequestismerged.
Learnmoreaboutautomaticallyclosingissues
EnrichedMarkdownsupport
GitLabuses'GitLabFlavoredMarkdown'(GFM).ItextendsthestandardMarkdowninafewsignificantwaystoaddsomeusefulfunctionality.
LearnmoreaboutGitLabFlavoredMarkdown
WorkinProgressmergerequests(WIP)
Preventmergerequestsfromaccidentallybeingacceptedbeforethey'recompletelyreadybymarkingthemasWorkInProgress(WIP).Thisgivesyouallthecodereviewpowerofmergerequests,whileprotectingunfinishedwork.
LearnmoreaboutWIPMRs
Issuesandmergerequeststemplates
ByaddingadescriptiontemplatetoyourMRs,userswhocreateanewissueormergerequestcanselectatemplatetohelpthemtocommunicateeffectively.
LearnmoreaboutGitLabDescriptionTemplates
CustomGitHooks
LeveragethepowerofGitHooksandchainthemtogethertofireoffcustomscriptswhencertainactionsoccurontherepository.IfthecommitisdeclinedoranerroroccursduringtheGithookcheck,theerrormessageofthehookwillbepresentinGitLab'sUI.GitLabsupportsalltypesofhooks.
LearnhowtouseGitHookswithGitLab
Responsive-firstdesign
GitLabisbuiltwitharesponsive-firstdesignapproach.Beitonadesktop,tabletorsmartphone,GitLabisoptimizedtobeviewedforthebestresult.
Communitybased,userscanhelpshapetheproduct
GitLabhasopenissuetrackersforalmostallofitsoperations.FromGitLabitselftoinfrastructureandmarketing,youcanhelpshapetheproduct.
ViewallGitLabcontributors
GitLFS2.0support
Managelargefilessuchasaudio,videoandgraphicsfileswiththehelpofGitLFS.GitLFS2.0filelockingsupporthelpslargeteamsworkwithbinaryassetsandisintegratedwithournativefilelockingfeature.
LearnmoreaboutGitLFSsupportinGitLab
SecurityDashboards
SecurityDashboardreportthelatestsecuritystatusofthedefaultbranchforeachproject
LearnmoreaboutSecurityDashboards
StaticApplicationSecurityTesting
GitLaballowseasilyrunningStaticApplicationSecurityTesting(SAST)inCI/CDpipelines;checkingforvulnerablesourcecodeorwellknownsecuritybugsinthelibrariesthatareincludedbytheapplication.ResultsarethenshownintheMergeRequestandinthePipelineview.Thisfeatureisavailableaspartof[AutoDevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast)toprovidesecurity-by-default.
LearnmoreaboutStaticApplicationSecurityTesting
DependencyScanning
GitLabautomaticallydetectswellknownsecuritybugsinthelibrariesthatareincludedbytheapplication,protectingyourapplicationfromvulnerabilitiesthataffectdependenciesthatareuseddynamically.ResultsarethenshownintheMergeRequestandinthePipelineview.Thisfeatureisavailableaspartof[AutoDevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-dependency-scanning)toprovidesecurity-by-default.
LearnmoreaboutDependencyScanning
ContainerScanning
WhenbuildingaDockerimageforyourapplication,GitLabcanrunasecurityscantoensureitdoesnothaveanyknownvulnerabilityintheenvironmentwhereyourcodeisshipped.ResultsarethenshownintheMergeRequestandinthePipelineview.Thisfeatureisavailableaspartof[AutoDevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-container-scanning)toprovidesecurity-by-default.
Learnmoreaboutcontainerscanning
DynamicApplicationSecurityTesting
Onceyourapplicationisonline,GitLaballowsrunningDynamicApplicationSecurityTesting(DAST)inCI/CDpipelines;yourapplicationwillbescannedtoensurethreatslikeXSSorbrokenauthenticationflawsarenotaffectingit.ResultsarethenshownintheMergeRequestandinthePipelineview.Thisfeatureisavailableaspartof[AutoDevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast)toprovidesecurity-by-default.
Learnmoreaboutapplicationsecurityforcontainers
InteractiveApplicationSecurityTesting
[IAST](https://blogs.gartner.com/neil_macdonald/2012/01/30/interactive-application-security-testing/)combineselementsofstaticanddynamicapplicationsecuritytestingmethodstoimprovetheoverallqualityoftheresults.IASTtypicallyusesanagenttoinstrumenttheapplicationtomonitorlibrarycallsandmore.GitLabdoesnotyetofferthisfeature.
RuntimeApplicationSecurityTesting
RASPusesanagenttoinstrumenttheapplicationtomonitorlibrarycallsastheapplicationisrunninginproduction.Unlikeothersecuritytools,RASPcantakeactiontoblockthreatsinreal-time,similartoaWebApplicationFirewallbutfromwithintheapp'sruntimeenvironmentratherthanatthenetworklayer.GitLabdoesnotyetofferthisfeature.
CreateprojectswithGitpush
Pushnewprojectstothedesiredlocationandanewprivateprojectwillautomaticallybecreated.
LearnmoreaboutcreatingProjects
Keeppersonalemailprivate
Useanoreplyemailaddressforyourcommitsinsteadofyourpersonalemailaddressprivate.
SeetheGitLabissuetoimplementthis
KubernetesClusterMonitoring
MonitorkeymetricsofyourconnectedKubernetescluster.
LearnmoreaboutClusterMonitoring
ChatOps
Executecommonactionsdirectlyfromchat,withtheoutputsentbacktothechannel.
LearnmoreaboutChatOps
DeployTokens
Provideread-onlyaccesstospecificrepositoriesorcontainerimagestoexternalinfrastructuresthatneedtoaccessyourdata,forexampletodeployapplicationsonKubernetes.
LearnmoreaboutDeployTokens
ViewKubernetespodlogs
QuicklyandeasilyviewthepodlogsofanappdeployedtoKubernetes.
LearnmoreaboutviewingKubernetespodlogs
Supportsgeolocation-awareDNS
HavingGeoreplicatedserver(s)canmakelocalpullsgomorequickly,butwithoutsupportforGeolocation-awareDNS,developersneedtoreconfiguretheirtoolsmanuallytopointtotheirnearestgeoreplicatedserver.UsersusingGeolocation-awareDNScanbetransparentlydirectedtotheclosestserveravailableandcanaccessrepositorydatafaster.
LearnmoreaboutGitLabGeo
Advancedglobalsearchinstalledasdefaultsearch
AdvancedglobalsearchviaElasticSearchisinstalledandenabledaspartofthecoreinstallationandprovidesthedefaultsearchcapability
LearnmoreaboutGitLabsearch
Groupsdropdowninnavigation
Searchingforagroupisdirectlyavailablebehindalightweightdropdownmenu,removingtheneedtonavigateawayfromyourworkintoaseparateviewwhenyou’relookingforahard-to-remembergroup.
LearnmoreaboutGroups
GitLabFlavoredMarkdownwithCommonMark
GitLabFlavoredMarkdownisnowrenderedusingCommonMark,amodernstandard,fornewMarkdowncontent.
LearnmoreaboutGitLabFlavoredMarkdown
InitializeREADMEonprojectcreation
ArepositorycanbeinitializedwithanexampleREADMEwhencreatinganewproject.Ifthisoptionischecked,aprojectrepositoryisinitializedwithadefaultmasterbranchwhichcanbeclonedrightaway.
LearnmoreaboutProjectcreation
'ContributetoGitLab'link
GitLabCoreandGitLab.comuserscannowfindourGitLabcontributionpagewithahandylink,availablerightawayfromyouruserprofilemenu.
LearnmoreaboutContributingtoGitLab
AllowSAMLassuranceleveltobypass2FA
itisnowpossibletohonortheSAMLprovider'sassurancelevel,allowingtodisablethetwo-factorauthentificationonGitLabsideviaanewSAMLconfigurationoption
LearnmoreaboutSAMLOmniAuthProvider
Managethirdpartyoffers
GitLab11.1introducestheabilitytocontrolthedisplayofthirdpartyoffersintheadministrationarea,providingmorecontroloverthedisplayoftheseoffers
LearnmoreaboutThirdpartyoffers
SeeJUnittestsummariesinmergerequestwidget
GitLaballowsyoutoviewJUnittestresultsfromthemergerequestwidget,givingyouinsightintoqualityimpactsofyourchanges.
LearnmoreaboutJUnittestsummariesinthemergerequestwidget
Userstatusmessage
DefineandshowyourpersonalstatusmessageviaanEmojiandtextmessage,exposedonyourprofilepageandonanycommentandauthorline.
LearnmoreaboutStatusmessages
Privateprofilepage
Incertainsituations,whenprivacyisofconcern,usersmightnotwanttoshowtheiractivity,contributionsandpersonalprojects.Activity-relatedinformationcanbedisabledintheprofilesettings.
LearnmoreaboutPrivateprofiles
Downloadsinglerepositoryfiles
WhenbrowsingthroughprojectrepositoriesonGitLab,havingdirectaccesstosinglefilesisarelevantusecase.A'Download'buttoninthefileviewerallowsyoutodownloadindividualfilesfromtheGitLabUI.
LearnmoreaboutProjectrepositories
Repositorylanguagesonprojectoverview
AcodelanguagesbarontheprojectoverviewshowsallrelevantlanguagestheGitLabrepositoryconsistsof,includingrelativequantity.
LearnmoreaboutProjects
InteractiveWebTerminals
InteractivewebterminalsallowyoutoconnecttoarunningorcompletedKubernetesorShellrunnerjobandmanuallyruncommandstobetterunderstandwhat'shappeninginthesystem.
LearnmoreaboutInteractiveWebTerminals
Customfiletemplates
Definecustom`LICENSE`,`.gitignore`,`Dockerfile`and`.gitlab-ci.yml`templatestomakeconsistencyeasier.
Learnmoreaboutcustomfiletemplates
CodeOwners
AssignCodeOwnerstofilestoindicatetheteammembersresponsibleforcodeinyourprojectusinga`CODEOWNERS`file.
LearnmoreaboutCodeOwners
ProtectedEnvironments
Specifywhichperson,group,oraccountisallowedtodeploytoagivenenvironment,allowingfurtherprotectionandsafetyofsensitiveenvironments.
LearnmoreaboutProtectedEnvironments
MavenRepository
GitLab'sMavenrepositorymakesiteasiertopublishandshareJavalibrariesacrossanorganization,andensuredependenciesaremanagedcorrectly.ItisfullyintegratedwithGitLab,includingauthenticationandauthorization.
DocumentationontheMavenRepository