SlideShare una empresa de Scribd logo
1 de 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?

Más contenido relacionado

La actualidad más candente

Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyerCase Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyerNoa Harel
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitLukas Fittl
 
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...SlideTeam
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHubVikram SV
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOpsBrice Fernandes
 
Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketAcodez IT Solutions
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101Sander Knape
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionAnwarul Islam
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and GithubHouari ZEGAI
 
Giới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnGiới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnHuy Nguyen Quang
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategiesjstack
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...Simplilearn
 

La actualidad más candente (20)

Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyerCase Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucket
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Devops
DevopsDevops
Devops
 
Giới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnGiới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bản
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Introduction to devops
Introduction to devopsIntroduction to devops
Introduction to devops
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 

Destacado

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
 

Destacado (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 a 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 a 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
 

Último

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Skynet Technologies
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewDianaGray10
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdfMuhammad Subhan
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideStefan Dietze
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfalexjohnson7307
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 

Último (20)

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 

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?

Notas del editor

  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.