SlideShare uma empresa Scribd logo
1 de 17
Pull requests
SG TECH
PRÉ-REQUISITOS
ANTES DE FALAR DE PULL REQUESTS
• Lembrando que este treinamento pressupõe que você entenda:
– O que é versionamento de código;
– GIT e suas características;
– TFS;
• Chamaremos nesta apresentação:
– Pull Requests de PR´s;
– Product Backlog Item de PBI;
PARA QUE SERVE ?
PARA QUE SERVE
• Um pull request originalmente serve para que pessoas possam contribuir para
projetos “Open Source” sem modifica-los diretamente.
• Ele se baseia nas seguintes premissas:
– Um contribuinte está enviando mudanças que considera como melhorias para um
repositório sem afetá-lo diretamente. A contribuição inclui uma descrição do objetivo da
melhoria, a melhoria em si e suas credenciais;
– Uma ferramenta gerencia esta intermediação.
• Estabelece a comunicação entre o contribuinte e o mantenedor do projeto;
• Permite o “merge” online;
• Guarda o histórico da mudança.
PQ USAR EM TIMES PEQUENOS ?
– Permite que mudanças possam acontecer de maneira assíncrona;
– Zera a dependência de aprovação mútua para objetivar a integração contínua;
– Permite um fluxo claro de “code review”;
– Aumenta a rastreabilidade;
DESAFIOS
– Como lidar com a lista de branches nas máquinas ? Nos testes as branches que foram
marcadas para serem excluídas continuaram nas máquinas dos colaboradores. Isto
aumenta o tamanho do repositório e precisamos pensar em como excluir isto.
– Como sensibilizar que bugs urgentes ainda precisam de PR sendo que temos pressa ?
COMO FAZER ?
COMO FAZER
– Partimos do princípio que todos os
PBIs que geraram modificação em um
dos repositórios gera a criação de uma
nova branch, passamos a anexar a
branch no PBI;
O ciclo de desenvolvimento passa a ser análise, desenvolvimento, teste, solicitação de PR
(feito por quem testou);
COMO FAZER
– Partimos do princípio que todos os
PBIs que geraram modificação em um
dos repositórios gera a criação de uma
nova branch, passamos a anexar a
branch no PBI;
O ciclo de desenvolvimento passa a ser:
Bug / Task Análise
Desenvolvi
mento
Teste
funcional
Solicitação
de PR
E DEPOIS ?
– Quando for conveniente, solicitar urgência no code review;
– O code review vai ocorrer e a sua funcionalidade vai ser “mergeada” com a master e
publicada dentro do cronograma;
– Eventualmente você pode ser notificado a corrigir / alterar alguma coisa em função de não
conformidade;
COMO É O CODE REVIEW?
– Quando for conveniente, solicitar urgência no code review;
– O code review vai ocorrer e a sua funcionalidade vai ser “mergeada” com a master e
publicada dentro do cronograma;
– Eventualmente você pode ser notificado a corrigir / alterar alguma coisa em função de não
conformidade;
COMO TRATADO UM PR ?
PRINCIPAIS FUNCIONALIDADES
– Uma timeline pública discute a implementação;
– É possível aceitar, deletar, rejeitar com sugestões, aceitar com sugestões;
– Revisar cada um dos arquivos afetados no repositório e sua linha de tempo específica;
– Revisar cada um dos Work Items afetados por esta PR;
– Merge pela ferramenta online;
VALE A PENA LER +
OPINIAO NA WEB
Sobre o assunto:
• https://www.quora.com/Does-using-Git-pull-requests-make-sense-on-small-teams-
projects
• https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests
• https://yangsu.github.io/pull-request-tutorial/
• Vale a pena ler:
• https://dev.to/backendandbbq/pull-requests-the-good-the-bad-and-the-ugly
• https://secure.phabricator.com/book/phabflavor/article/writing_reviewable_code/
ATÉ A PRÓXIMA

Mais conteúdo relacionado

Mais procurados

Atualizando versões de API externas sem medo
Atualizando versões de API externas sem medo Atualizando versões de API externas sem medo
Atualizando versões de API externas sem medo Alisson Bruno
 
Atualizando versões de API externas sem medo - TDC-SP 2018
Atualizando versões de API externas sem medo - TDC-SP 2018Atualizando versões de API externas sem medo - TDC-SP 2018
Atualizando versões de API externas sem medo - TDC-SP 2018Bruno Tanoue
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Vinta Software
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsJaqueline Ramos
 
Fundamentos de scrum e agile
Fundamentos de scrum e agileFundamentos de scrum e agile
Fundamentos de scrum e agileLeandro Castro
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaLu
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubMarcelo Souza Vieira
 
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Alvaro Brognoli
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
Integracao Continua com CruiseControl
Integracao Continua com CruiseControlIntegracao Continua com CruiseControl
Integracao Continua com CruiseControlLuthiano Vasconcelos
 
#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicações
#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicações#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicações
#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicaçõesjupiterlda
 
Jenkins por dentro e por fora
Jenkins por dentro e por fora Jenkins por dentro e por fora
Jenkins por dentro e por fora Fernando Boaglio
 
Notes From the Field Build Automation
Notes From the Field   Build AutomationNotes From the Field   Build Automation
Notes From the Field Build AutomationAndré Dias
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta gitDiogo Souza Machado
 
ASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureWaldyr Felix
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET CoreJaqueline Ramos
 

Mais procurados (20)

Automatização - DevOps
Automatização - DevOpsAutomatização - DevOps
Automatização - DevOps
 
Integracao continua-e-php
Integracao continua-e-phpIntegracao continua-e-php
Integracao continua-e-php
 
Atualizando versões de API externas sem medo
Atualizando versões de API externas sem medo Atualizando versões de API externas sem medo
Atualizando versões de API externas sem medo
 
Atualizando versões de API externas sem medo - TDC-SP 2018
Atualizando versões de API externas sem medo - TDC-SP 2018Atualizando versões de API externas sem medo - TDC-SP 2018
Atualizando versões de API externas sem medo - TDC-SP 2018
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps Projects
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Fundamentos de scrum e agile
Fundamentos de scrum e agileFundamentos de scrum e agile
Fundamentos de scrum e agile
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
 
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Integracao Continua com CruiseControl
Integracao Continua com CruiseControlIntegracao Continua com CruiseControl
Integracao Continua com CruiseControl
 
#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicações
#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicações#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicações
#LuandaAzureBootcamp ---> DEVOPS - Gestão do Ciclo de Vida das Aplicações
 
Jenkins por dentro e por fora
Jenkins por dentro e por fora Jenkins por dentro e por fora
Jenkins por dentro e por fora
 
Notes From the Field Build Automation
Notes From the Field   Build AutomationNotes From the Field   Build Automation
Notes From the Field Build Automation
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 
ASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureASP.NET Web API no Windows Azure
ASP.NET Web API no Windows Azure
 
Please Review
Please ReviewPlease Review
Please Review
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core
 

Semelhante a Treinamento interno 01 - pull requests

DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftGraziella Bonizi
 
Metodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreMetodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreGeoLivre Conference
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareAragon Vieira
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02Franklin Matos Correia
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Denis Santos
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
Trabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasTrabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasWANDERSON JONER
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitMozDevz
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Biblioteca de Processos de TI
Biblioteca de Processos de TIBiblioteca de Processos de TI
Biblioteca de Processos de TIVenki
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap Raniere de Lima
 
Planejamento, Execução e Controle de Projetos: Aula 2
Planejamento, Execução e Controle de Projetos: Aula 2Planejamento, Execução e Controle de Projetos: Aula 2
Planejamento, Execução e Controle de Projetos: Aula 2Alessandro Almeida
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 
Operações - Base de Conhecimento - Parte 01
Operações - Base de Conhecimento - Parte 01Operações - Base de Conhecimento - Parte 01
Operações - Base de Conhecimento - Parte 01Alan Carlos
 

Semelhante a Treinamento interno 01 - pull requests (20)

DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Metodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreMetodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura Livre
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Trabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasTrabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de Sistemas
 
Git hub and Laravel
Git hub and Laravel Git hub and Laravel
Git hub and Laravel
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Biblioteca de Processos de TI
Biblioteca de Processos de TIBiblioteca de Processos de TI
Biblioteca de Processos de TI
 
Ciclo de Vida Ágil em TI
Ciclo de Vida Ágil em TICiclo de Vida Ágil em TI
Ciclo de Vida Ágil em TI
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap
 
Planejamento, Execução e Controle de Projetos: Aula 2
Planejamento, Execução e Controle de Projetos: Aula 2Planejamento, Execução e Controle de Projetos: Aula 2
Planejamento, Execução e Controle de Projetos: Aula 2
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Operações - Base de Conhecimento - Parte 01
Operações - Base de Conhecimento - Parte 01Operações - Base de Conhecimento - Parte 01
Operações - Base de Conhecimento - Parte 01
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 

Treinamento interno 01 - pull requests

  • 3. ANTES DE FALAR DE PULL REQUESTS • Lembrando que este treinamento pressupõe que você entenda: – O que é versionamento de código; – GIT e suas características; – TFS; • Chamaremos nesta apresentação: – Pull Requests de PR´s; – Product Backlog Item de PBI;
  • 5. PARA QUE SERVE • Um pull request originalmente serve para que pessoas possam contribuir para projetos “Open Source” sem modifica-los diretamente. • Ele se baseia nas seguintes premissas: – Um contribuinte está enviando mudanças que considera como melhorias para um repositório sem afetá-lo diretamente. A contribuição inclui uma descrição do objetivo da melhoria, a melhoria em si e suas credenciais; – Uma ferramenta gerencia esta intermediação. • Estabelece a comunicação entre o contribuinte e o mantenedor do projeto; • Permite o “merge” online; • Guarda o histórico da mudança.
  • 6. PQ USAR EM TIMES PEQUENOS ? – Permite que mudanças possam acontecer de maneira assíncrona; – Zera a dependência de aprovação mútua para objetivar a integração contínua; – Permite um fluxo claro de “code review”; – Aumenta a rastreabilidade;
  • 7. DESAFIOS – Como lidar com a lista de branches nas máquinas ? Nos testes as branches que foram marcadas para serem excluídas continuaram nas máquinas dos colaboradores. Isto aumenta o tamanho do repositório e precisamos pensar em como excluir isto. – Como sensibilizar que bugs urgentes ainda precisam de PR sendo que temos pressa ?
  • 9. COMO FAZER – Partimos do princípio que todos os PBIs que geraram modificação em um dos repositórios gera a criação de uma nova branch, passamos a anexar a branch no PBI; O ciclo de desenvolvimento passa a ser análise, desenvolvimento, teste, solicitação de PR (feito por quem testou);
  • 10. COMO FAZER – Partimos do princípio que todos os PBIs que geraram modificação em um dos repositórios gera a criação de uma nova branch, passamos a anexar a branch no PBI; O ciclo de desenvolvimento passa a ser: Bug / Task Análise Desenvolvi mento Teste funcional Solicitação de PR
  • 11. E DEPOIS ? – Quando for conveniente, solicitar urgência no code review; – O code review vai ocorrer e a sua funcionalidade vai ser “mergeada” com a master e publicada dentro do cronograma; – Eventualmente você pode ser notificado a corrigir / alterar alguma coisa em função de não conformidade;
  • 12. COMO É O CODE REVIEW? – Quando for conveniente, solicitar urgência no code review; – O code review vai ocorrer e a sua funcionalidade vai ser “mergeada” com a master e publicada dentro do cronograma; – Eventualmente você pode ser notificado a corrigir / alterar alguma coisa em função de não conformidade;
  • 14. PRINCIPAIS FUNCIONALIDADES – Uma timeline pública discute a implementação; – É possível aceitar, deletar, rejeitar com sugestões, aceitar com sugestões; – Revisar cada um dos arquivos afetados no repositório e sua linha de tempo específica; – Revisar cada um dos Work Items afetados por esta PR; – Merge pela ferramenta online;
  • 15. VALE A PENA LER +
  • 16. OPINIAO NA WEB Sobre o assunto: • https://www.quora.com/Does-using-Git-pull-requests-make-sense-on-small-teams- projects • https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests • https://yangsu.github.io/pull-request-tutorial/ • Vale a pena ler: • https://dev.to/backendandbbq/pull-requests-the-good-the-bad-and-the-ugly • https://secure.phabricator.com/book/phabflavor/article/writing_reviewable_code/