SlideShare a Scribd company logo
1 of 23
Copyright ©2015 CollabNet, Inc. All Rights Reserved.
Bringing Pull Request to Gerrit
A tale of feature development
Eryk Szymanski
Potsdam Engineering Office
CollabNet
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
CollabNet Facts
10,000+ customers,
proven in global
deployments as large
as 80,000 users and 1
billion commits
Leader in open-source
based application
lifecycle management,
version control, DevOps,
and collaboration
solutions
250 employees across
the globe
Founded in 1999; HQ
in South San
Francisco, CA
2
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
CollabNet Customers
Financials
Technology
Government
Other
Service Providers
3
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
CollabNet TeamForge - ALM Solution
4
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
TeamForge - Git/Gerrit Integration
5
Our approach:
• Support Open Source
– Give back to the community
• If it is Gerrit core change, open source it
– Do not fork
• Stay as close to current Gerrit as possible
– It is ok to have patches on top of vanilla Gerrit
– But those are regularly rebased as Gerrit progresses
• Everything else goes into the plugins
Based on Gerrit 2.13.2 + some patches
and 6 proprietary plugins
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Git/Gerrit Integration - Features
6
History ProtectionUsers & RBAC
Quality GatesReplication
Git LFS Support
Pull Request
Notifications
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request Workflow
7
yes
no
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request from Gerrit User Perspective
8
What is a Pull Request?
– It is a merge commit pushed for review.
Does it mean it is possible to have a pull request in Gerrit?
– Yes, one can have a merge commit pushed for review.
But can I see a full diff to review the changes?
– Yes, it is possible since this patch got merged:
http://gerrit-review.googlesource.com/#/c/72092/
So what’s the big deal?
– No User Interface. Pull Request model is quite different
than Gerrit model and Gerrit UI does not support it.
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
From Pull Request User Perspective
9
Will my branch appear in UI once I push it to remote?
– Yes, you can see it in Gerrit.
So where is my create pull request button?
– There isn’t any.
Oh, I thought you said there is a Pull Request feature in Gerrit.
Although technically speaking it is possible to use the Pull
Requests, from a user perspective there is still no such a feature
in Gerrit
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Motivation behind Pull Request
10
• Pull Requests are popular
– Our customers ask for it
• General familiarity with the Pull Request model
– Easier onboarding for new TeamForge users
• Support feature branch development model
– Final big-bang review before merge
– One can even combine that with Gerrit model having both
Our goal was to deliver an intuitive Pull Request UI
to enable easy onboarding for people who are already familiar
with Pull Request and do not know Gerrit
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Implementation - User Interface Findings
•Gerrit UI is very powerful but hard to use for a novice
•Adding a new feature might not make it easier
•It is hard to maintain UI changes that are not upstream
•Working on UI with the community may slow us down
and does not give us full control over the UI
•The user experience degrades every time one have to switch
between different applications
•Not sure what to choose: GWT or PolyGerrit (at that
point of time)
11
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Implementation - User Interface Solution
• Seamless UI and Consistent flow for TeamForge Users
• One can use Pull Request or other Gerrit features without even seeing
Gerrit
• Everything happens in one place - TeamForge Code Browser
12
Implement the UI in TeamForge Code Browser
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Implementation - REST API
• Gerrit Rest API:
– While it is doing great job for Gerrit, it is not always optimal in
delivering required data for our UI (i.e. Pull Request)
– Not versioned (and sometimes changes)
– No support for O-Auth authentication
• Solution:
– Come up with our own REST API
– It comes as a plugin and is specific for our needs
– Versioned and uses O-Auth for authentication
13
Copyright ©2015 CollabNet, Inc. All Rights Reserved.Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Demo
Pull Request in Action
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Code Browser - Branches
15
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Create Pull Request
16
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request Created
17
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request In Review
18
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request Reviewed
19
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request Updated - Owner View
20
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request Updated - Reviewer View
21
Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Pull Request Ready To Be Merged
22
Copyright ©2015 CollabNet, Inc. All Rights Reserved.Copyright ©2016 CollabNet, Inc. All Rights Reserved.
Thank you very much
Any Questions?

More Related Content

What's hot

Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...Gabriele Baldassarre
 
Jenkins 101: Getting Started
Jenkins 101: Getting StartedJenkins 101: Getting Started
Jenkins 101: Getting StartedR Geoffrey Avery
 
Gerrit Code Review multi-site
Gerrit Code Review multi-siteGerrit Code Review multi-site
Gerrit Code Review multi-siteLuca Milanesio
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshiftMamathaBusi
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching modelPavlo Hodysh
 
Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI PresentationAjeeth Pingle
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
[Final] best practices for access management (mule soft meetups riyadh) - j...
[Final] best practices for access management (mule soft meetups   riyadh) - j...[Final] best practices for access management (mule soft meetups   riyadh) - j...
[Final] best practices for access management (mule soft meetups riyadh) - j...satyasekhar123
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flowKnoldus Inc.
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overviewroundman
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple stepsIhor Odynets
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformKangaroot
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)Pedro Moreira da Silva
 

What's hot (20)

Managing APIs with MuleSoft
Managing APIs with MuleSoftManaging APIs with MuleSoft
Managing APIs with MuleSoft
 
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
 
Jenkins 101: Getting Started
Jenkins 101: Getting StartedJenkins 101: Getting Started
Jenkins 101: Getting Started
 
Siebel Upgrade Best Practices & Processes V2
Siebel Upgrade Best Practices & Processes V2Siebel Upgrade Best Practices & Processes V2
Siebel Upgrade Best Practices & Processes V2
 
Gerrit Code Review multi-site
Gerrit Code Review multi-siteGerrit Code Review multi-site
Gerrit Code Review multi-site
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshift
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
 
Git
GitGit
Git
 
GitLab.pptx
GitLab.pptxGitLab.pptx
GitLab.pptx
 
Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI Presentation
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
[Final] best practices for access management (mule soft meetups riyadh) - j...
[Final] best practices for access management (mule soft meetups   riyadh) - j...[Final] best practices for access management (mule soft meetups   riyadh) - j...
[Final] best practices for access management (mule soft meetups riyadh) - j...
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flow
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overview
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple steps
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platform
 
BitBucket presentation
BitBucket presentationBitBucket presentation
BitBucket presentation
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
 

Viewers also liked

Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeLuca Milanesio
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, futureLuca Milanesio
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review AnalyticsLuca Milanesio
 
You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.Eryk Szymanski
 
News from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 EuropeNews from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 Europemsohn
 
Versioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and GerritVersioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and Gerritmsohn
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011thkoch
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryLuca Milanesio
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginLuca Milanesio
 
0601069 study of assessment methods of working capital requirement
0601069 study of assessment methods of working capital requirement0601069 study of assessment methods of working capital requirement
0601069 study of assessment methods of working capital requirementSupa Buoy
 
0601036 causes of attrition amongst the local and outside workers
0601036 causes of attrition amongst the local and outside workers0601036 causes of attrition amongst the local and outside workers
0601036 causes of attrition amongst the local and outside workersSupa Buoy
 
15 lecture presentation0
15 lecture presentation015 lecture presentation0
15 lecture presentation0Uconn Stamford
 
Dvaree
DvareeDvaree
DvareeSale01
 
Ma ch 14 banking and the money supply (1)
Ma ch 14 banking and the money supply (1)Ma ch 14 banking and the money supply (1)
Ma ch 14 banking and the money supply (1)Uconn Stamford
 
It challenges in a global organization
It challenges in a global organizationIt challenges in a global organization
It challenges in a global organizationYuval Schwabe
 
0601085 perceptible analysis of depository services
0601085 perceptible analysis of depository services0601085 perceptible analysis of depository services
0601085 perceptible analysis of depository servicesSupa Buoy
 
Ionic Liquids in Plastic/Coating Applications - 10 minutes intro to Holland ...
Ionic Liquids in Plastic/Coating  Applications - 10 minutes intro to Holland ...Ionic Liquids in Plastic/Coating  Applications - 10 minutes intro to Holland ...
Ionic Liquids in Plastic/Coating Applications - 10 minutes intro to Holland ...Amabilis Jelliarko Palgunadi
 

Viewers also liked (20)

Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
Infinite gerrit
Infinite gerritInfinite gerrit
Infinite gerrit
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
 
You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.
 
News from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 EuropeNews from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 Europe
 
Versioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and GerritVersioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and Gerrit
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-delivery
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
Audio devices
Audio devicesAudio devices
Audio devices
 
0601069 study of assessment methods of working capital requirement
0601069 study of assessment methods of working capital requirement0601069 study of assessment methods of working capital requirement
0601069 study of assessment methods of working capital requirement
 
0601036 causes of attrition amongst the local and outside workers
0601036 causes of attrition amongst the local and outside workers0601036 causes of attrition amongst the local and outside workers
0601036 causes of attrition amongst the local and outside workers
 
15 lecture presentation0
15 lecture presentation015 lecture presentation0
15 lecture presentation0
 
Dvaree
DvareeDvaree
Dvaree
 
Ma ch 14 banking and the money supply (1)
Ma ch 14 banking and the money supply (1)Ma ch 14 banking and the money supply (1)
Ma ch 14 banking and the money supply (1)
 
It challenges in a global organization
It challenges in a global organizationIt challenges in a global organization
It challenges in a global organization
 
Ch12 lecture0 (4)
Ch12 lecture0 (4)Ch12 lecture0 (4)
Ch12 lecture0 (4)
 
0601085 perceptible analysis of depository services
0601085 perceptible analysis of depository services0601085 perceptible analysis of depository services
0601085 perceptible analysis of depository services
 
Ionic Liquids in Plastic/Coating Applications - 10 minutes intro to Holland ...
Ionic Liquids in Plastic/Coating  Applications - 10 minutes intro to Holland ...Ionic Liquids in Plastic/Coating  Applications - 10 minutes intro to Holland ...
Ionic Liquids in Plastic/Coating Applications - 10 minutes intro to Holland ...
 

Similar to Bringing Pull Request to Gerrit

Optimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarOptimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarCollabNet
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Apigee | Google Cloud
 
Introducing CollabNet TeamForge® 8.0
Introducing CollabNet TeamForge® 8.0Introducing CollabNet TeamForge® 8.0
Introducing CollabNet TeamForge® 8.0CollabNet
 
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...AppDynamics
 
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"Fwdays
 
Beyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonBeyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonJacek Centkowski
 
Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...
Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...
Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...CezzaineZaher1
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and DirectionsCollabNet
 
A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...CollabNet
 
Bringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIsBringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIsApigee | Google Cloud
 
Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!CollabNet
 
Vizag Virtual Meetup #7: Trending API Topics for 2022
Vizag Virtual Meetup #7: Trending API Topics for 2022Vizag Virtual Meetup #7: Trending API Topics for 2022
Vizag Virtual Meetup #7: Trending API Topics for 2022Ravi Tamada
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015Eduardo Pelegri-Llopart
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...Jitendra Bafna
 
WEBINAR: API Clouds for Faster APIs: Leveraging Existing Assets for the API ...
WEBINAR: API Clouds for Faster APIs:  Leveraging Existing Assets for the API ...WEBINAR: API Clouds for Faster APIs:  Leveraging Existing Assets for the API ...
WEBINAR: API Clouds for Faster APIs: Leveraging Existing Assets for the API ...Jason Bloomberg
 
Going Agile in a Multi-National Work Environment and the Tool We Chose
Going Agile in a Multi-National Work Environment and the Tool We ChoseGoing Agile in a Multi-National Work Environment and the Tool We Chose
Going Agile in a Multi-National Work Environment and the Tool We ChosePaula Stern
 
Api led connectivity_brazil
Api led connectivity_brazilApi led connectivity_brazil
Api led connectivity_brazilAnupam Gogoi
 
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...WSO2
 
MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020Ieva Navickaite
 

Similar to Bringing Pull Request to Gerrit (20)

Optimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarOptimize Your Enterprise Git Webinar
Optimize Your Enterprise Git Webinar
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture
 
Introducing CollabNet TeamForge® 8.0
Introducing CollabNet TeamForge® 8.0Introducing CollabNet TeamForge® 8.0
Introducing CollabNet TeamForge® 8.0
 
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
 
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
 
Beyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonBeyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, London
 
Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...
Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...
Weave GitOps 2023.04 Release: Optimizing Developer Productivity & Experience ...
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions
 
A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...
 
Bringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIsBringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIs
 
Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!
 
Vizag Virtual Meetup #7: Trending API Topics for 2022
Vizag Virtual Meetup #7: Trending API Topics for 2022Vizag Virtual Meetup #7: Trending API Topics for 2022
Vizag Virtual Meetup #7: Trending API Topics for 2022
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
 
WEBINAR: API Clouds for Faster APIs: Leveraging Existing Assets for the API ...
WEBINAR: API Clouds for Faster APIs:  Leveraging Existing Assets for the API ...WEBINAR: API Clouds for Faster APIs:  Leveraging Existing Assets for the API ...
WEBINAR: API Clouds for Faster APIs: Leveraging Existing Assets for the API ...
 
Going Agile in a Multi-National Work Environment and the Tool We Chose
Going Agile in a Multi-National Work Environment and the Tool We ChoseGoing Agile in a Multi-National Work Environment and the Tool We Chose
Going Agile in a Multi-National Work Environment and the Tool We Chose
 
Api led connectivity_brazil
Api led connectivity_brazilApi led connectivity_brazil
Api led connectivity_brazil
 
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
 
MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020
 

Recently uploaded

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 

Bringing Pull Request to Gerrit

  • 1. Copyright ©2015 CollabNet, Inc. All Rights Reserved. Bringing Pull Request to Gerrit A tale of feature development Eryk Szymanski Potsdam Engineering Office CollabNet
  • 2. Copyright ©2016 CollabNet, Inc. All Rights Reserved. CollabNet Facts 10,000+ customers, proven in global deployments as large as 80,000 users and 1 billion commits Leader in open-source based application lifecycle management, version control, DevOps, and collaboration solutions 250 employees across the globe Founded in 1999; HQ in South San Francisco, CA 2
  • 3. Copyright ©2016 CollabNet, Inc. All Rights Reserved. CollabNet Customers Financials Technology Government Other Service Providers 3
  • 4. Copyright ©2016 CollabNet, Inc. All Rights Reserved. CollabNet TeamForge - ALM Solution 4
  • 5. Copyright ©2016 CollabNet, Inc. All Rights Reserved. TeamForge - Git/Gerrit Integration 5 Our approach: • Support Open Source – Give back to the community • If it is Gerrit core change, open source it – Do not fork • Stay as close to current Gerrit as possible – It is ok to have patches on top of vanilla Gerrit – But those are regularly rebased as Gerrit progresses • Everything else goes into the plugins Based on Gerrit 2.13.2 + some patches and 6 proprietary plugins
  • 6. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Git/Gerrit Integration - Features 6 History ProtectionUsers & RBAC Quality GatesReplication Git LFS Support Pull Request Notifications
  • 7. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request Workflow 7 yes no
  • 8. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request from Gerrit User Perspective 8 What is a Pull Request? – It is a merge commit pushed for review. Does it mean it is possible to have a pull request in Gerrit? – Yes, one can have a merge commit pushed for review. But can I see a full diff to review the changes? – Yes, it is possible since this patch got merged: http://gerrit-review.googlesource.com/#/c/72092/ So what’s the big deal? – No User Interface. Pull Request model is quite different than Gerrit model and Gerrit UI does not support it.
  • 9. Copyright ©2016 CollabNet, Inc. All Rights Reserved. From Pull Request User Perspective 9 Will my branch appear in UI once I push it to remote? – Yes, you can see it in Gerrit. So where is my create pull request button? – There isn’t any. Oh, I thought you said there is a Pull Request feature in Gerrit. Although technically speaking it is possible to use the Pull Requests, from a user perspective there is still no such a feature in Gerrit
  • 10. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Motivation behind Pull Request 10 • Pull Requests are popular – Our customers ask for it • General familiarity with the Pull Request model – Easier onboarding for new TeamForge users • Support feature branch development model – Final big-bang review before merge – One can even combine that with Gerrit model having both Our goal was to deliver an intuitive Pull Request UI to enable easy onboarding for people who are already familiar with Pull Request and do not know Gerrit
  • 11. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Implementation - User Interface Findings •Gerrit UI is very powerful but hard to use for a novice •Adding a new feature might not make it easier •It is hard to maintain UI changes that are not upstream •Working on UI with the community may slow us down and does not give us full control over the UI •The user experience degrades every time one have to switch between different applications •Not sure what to choose: GWT or PolyGerrit (at that point of time) 11
  • 12. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Implementation - User Interface Solution • Seamless UI and Consistent flow for TeamForge Users • One can use Pull Request or other Gerrit features without even seeing Gerrit • Everything happens in one place - TeamForge Code Browser 12 Implement the UI in TeamForge Code Browser
  • 13. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Implementation - REST API • Gerrit Rest API: – While it is doing great job for Gerrit, it is not always optimal in delivering required data for our UI (i.e. Pull Request) – Not versioned (and sometimes changes) – No support for O-Auth authentication • Solution: – Come up with our own REST API – It comes as a plugin and is specific for our needs – Versioned and uses O-Auth for authentication 13
  • 14. Copyright ©2015 CollabNet, Inc. All Rights Reserved.Copyright ©2016 CollabNet, Inc. All Rights Reserved. Demo Pull Request in Action
  • 15. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Code Browser - Branches 15
  • 16. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Create Pull Request 16
  • 17. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request Created 17
  • 18. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request In Review 18
  • 19. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request Reviewed 19
  • 20. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request Updated - Owner View 20
  • 21. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request Updated - Reviewer View 21
  • 22. Copyright ©2016 CollabNet, Inc. All Rights Reserved. Pull Request Ready To Be Merged 22
  • 23. Copyright ©2015 CollabNet, Inc. All Rights Reserved.Copyright ©2016 CollabNet, Inc. All Rights Reserved. Thank you very much Any Questions?

Editor's Notes

  1. Founded in 1999, CollabNet is truly one of the founding fathers of the open-source movement Today thousands of customers rely upon on our solutions to develop high quality software at speed We maintain a global presence with offices in SF, Houston, London, Berlin, Chennai, Tokyo
  2. We have customers who are leaders across the industries and verticals they represent. From Financials, Technology, Government, Service Providers and Other key industries like manufacturing, healthcare and department stores.
  3. The patches I mention here are those that did not get its way into vanilla Gerrit. We want to give back to the community and are not interested in maintaining our own Gerrit version. Our extra patches are rebased over each version of Gerrit. So I think it is fair to say that we don’t have a fork. So what features do we deliver?
  4. Here you can see the main features that we provide on top of Gerrit. We have TeamForge sync plugin with let us to maintain users and their access rights to Gerrit via TF Role Based Access Conrol model. We have notification plugin that delivers email notifications to users that use Gerrit as Git server. And we have our history protection plugin that assures that no branch will be deleted or rewritten by accident. Those have been presented on Gerrit User Summit in 2014. Last year I’ve presented Quality Gates wizard, a way to define your own submit rules without prolog. We also have Replication feature, which is based on Gerrit replication plugin, but allows managing and controlling of the replication from TeamForge. And this year features are Git LFS (which is based on the plugin available in Gerrit core) and the PullRequest. So let’s talk about pull request.
  5. What is a pull request? Let’s start with a workflow. For a developer working on pull request it starts in similar way as in Gerrit. One create a feature branch and create some commits. But instead of pushing it for review, the branch is pushed to the remote. We call it a feature branch. Once we have a feature branch on the server one can create a pull request. A request to pull the changes from the feature branch and merge it onto destination branch, which needs to be specified as well. Creating a pull request is equivalent to publishing changes for review. Then the changes are being reviewed, can be reworked, and after they are approved the pull request get merged into the destination branch. Then the feature branch usually gets deleted. So comes the question: how this can be mapped onto Gerrit?
  6. The answer is quite obvious, if you think about it: Pull Request is a merge commit pushed for review. So everyone can do that in Gerrit. Prior to the version 2.13 the drawback was, that there was no way to review the changes of merge commit as those were not visible in Gerrit (unless there was a conflict that got automatically resolved). Fortunately David Grzegorczyk, a developer from Poland proposed a change, that enables a diff of merge commit against any parent. So, my colleagues were working on this change and with help of community, the change got merged. So now everyone can use pull request in Gerrit. Right? Well, not really. I would say that the pull request feature is available in Gerrit to people, who do not actually need/want it. Let me show you why.
  7. Let’s have a look at the feature from a perspective of a Pull Request user that starts his adventure with Gerrit. He will be able to create his branch with changes and push it to remote but that’s about it. Why? There is no user interface that follows the model that the Pull Request user is familiar with. So he cannot leverage what he has learned while using other tools. So for him Pull Request still does not exists. And that’s where our feature comes in.