<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Automação - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Automação - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 17 May 2026 08:32:05 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/tag/automacao/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como criar uma checklist de pull request automatizada no GitHub ]]>
                </title>
                <description>
                    <![CDATA[ Se você já contribuiu em um projeto, seja em um aplicativo seu, no trabalho ou em alguma ferramenta de código aberto, provavelmente já criou uma solicitação de pull (geralmente chamada de PR, ou Pull Request). Ela é uma solicitação para que um código seu seja incorporado ao código principal. Usamos ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-criar-uma-checklist-de-pull-request-automatizada-no-github/</link>
                <guid isPermaLink="false">62cd9cf78e388806e97fd5ee</guid>
                
                    <category>
                        <![CDATA[ Automação ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Thiago Costa Barbosa ]]>
                </dc:creator>
                <pubDate>Mon, 01 Aug 2022 02:30:41 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/07/Pink-Money-Making-Apps-YouTube-Thumbnail-1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/create-a-pr-checklist-in-github/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Create an Automated Pull Request Checklist in GitHub</a>
      </p><p>Se você já contribuiu em um projeto, seja em um aplicativo seu, no trabalho ou em alguma ferramenta de código aberto, provavelmente já criou uma solicitação de pull (geralmente chamada de PR, ou Pull Request). Ela é uma solicitação para que um código seu seja incorporado ao código principal.</p><p>Usamos pull requests para garantir que apenas códigos de qualidade sejam incorporados na branch (versão do código) principal. Às vezes, porém, perdemos algumas coisinhas depois de uma sessão cansativa de codificação, desenvolvendo um novo recurso.</p><p>Na pior das hipóteses, esses erros passam desapercebidos pela equipe e são incorporados na base de código principal, criando bugs ou ineficiências no código. Na melhor das hipóteses, encontrar esses pequenos erros pode custar o tempo de outros membros da equipe de percebê-los e mostrá-los.</p><p>Como sou particularmente suscetível a abrir um pull request lazy (preguiçoso), então fiz o que qualquer desenvolvedor faria... encontrei uma maneira de automatizar a checklist de PRs e me forçar a fazer o trabalho!</p><p>Este tutorial mostra como criar uma extensão no navegador que gerará automaticamente essa checklist para os PRs e ocultará o botão <code>Create Pull Request</code> (Criar Pull Request) até que você verifique todos os itens da lista.</p><h2 id="pegue-suas-ferramentas"><strong>Pegue suas ferramentas</strong></h2><p>Antes de começar, precisamos juntar algumas coisas.</p><h3 id="fa-a-uma-lista-do-que-voc-quer-verificar-no-seu-c-digo"><strong>Faça uma lista do que você quer verificar no seu código</strong></h3><p>Por um momento, esqueça qualquer ferramenta ou automação... pense sobre <strong><strong>o que deve fazer um bom pull request</strong></strong> e liste esses itens.</p><p>O que facilita a revisão de outros PRs? Qual é um erro comum sobre o qual as pessoas costumam comentar a respeito?</p><p>Se você precisar de algumas ideias, aqui está o que eu incorporei na minha própria lista.</p><ul><li>Tudo deve estar ordenado alfabeticamente</li><li>Instruções sobre como os revisores podem testar o código localmente</li><li>Adicionados os testes do código</li><li>Captura de tela do recurso/correção do bug (se aplicável)</li><li>Se algum novo texto for adicionado, ele precisa ser internacionalizado</li><li>Qualquer novo elemento adicionado precisa ter seu rótulo (aria label)</li><li>Nenhum <code>console.logs</code> involuntário deixado para trás após a etapa de debugging</li><li>Uso de nomes claros e concisos para variáveis ​​e funções</li><li>Explicação de todas as soluções possíveis do código e por que foi feita aquela escolha</li><li>Adição de comentários para tornar as novas funções mais claras</li><li>Etiquetas de PR foram adicionadas</li><li>Atualizei qualquer arquivo do histórico/changelog</li></ul><p>Se você ainda não tiver certeza, converse com desenvolvedores mais experientes da sua equipe e veja o que eles estão procurando quando analisam PRs.</p><h3 id="crie-uma-conta-no-pixiebrix-ferramenta-de-automa-o-do-navegador-"><strong>Crie uma conta no PixieBrix (ferramenta de automação do navegador)</strong></h3><p>Existem várias extensões de navegador que permitem criar automações, mas achei o <a href="https://pixiebrix.com/">PixieBrix</a> extremamente poderoso, a comunidade é bem amigável e ajuda bastante.</p><blockquote>O PixieBrix oferece a plataforma low-code mais versátil para estender as aplicações web que você e suas equipes já usam. O resultado? Você obtém a experiência produtiva e personalizada que precisa... e merece. (Fonte: site do <a href="https://www.pixiebrix.com/">PixieBrix</a>)</blockquote><p>Para criar a automação que ensino abaixo, você precisará se inscrever para uma conta gratuita do PixieBrix.</p><p>Basta selecionar "Start for Free" (Começar gratuitamente) e seguir os passos para criar uma conta. Será pedido também que você instale a <a href="https://chrome.google.com/webstore/detail/pixiebrix/mpjjildhmpddojocokjkgmlkkkfjnepo">extensão PixieBrix do Chrome</a>.</p><p>Feito isso, estamos prontos para começar!</p><h2 id="como-construir-a-automa-o-da-checklist-de-um-pr"><strong>Como construir a automação da checklist de um PR</strong></h2><p>Se você quiser seguir um caminho mais curto, e só <a href="https://app.pixiebrix.com/activate?id=@brittany-joiner/gh-on-a-pr">ativar a extensão que eu já criei</a> e editar como quiser.</p><p>Mas se quiser criá-lo do zero e se familiarizar com o funcionamento de uma automação de navegador, siga estas etapas.</p><h3 id="passo-1-abra-o-editor-de-p-ginas-no-pixiebrix"><strong>Passo 1 – abra o editor de páginas no PixieBrix</strong></h3><p>Para construir extensões no PixieBrix, você não precisa do VSCode ou de qualquer outro editor. Você pode fazer tudo no seu navegador mesmo.</p><p>Eu gosto de começar indo para a página em que quero que a ação aconteça – neste caso, <code>github.com</code>.</p><p>Para acessar o editor, clique com o botão direito do mouse em qualquer página da web para abrir o menu de contexto e selecione <code>Inspect</code> (Inspecionar) para abrir as Ferramentas do desenvolvedor. Procure nas guias <em><em>(você sabe, aquelas que dizem coisas como <code>Elements</code>, <code>Console</code>, <code>Network</code> etc)</em></em> até ver a do <code>PixieBrix</code> e selecione-a.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/open-page-editor.gif" class="kg-image" alt="open-page-editor" width="669" height="397" loading="lazy"><figcaption>Clique com o botão direito para inspecionar e vá até a guia PixieBrix</figcaption></figure><p>Você também pode ser solicitado a conceder algumas permissões. Fora isso, você encontrará uma página em branco com um botão no canto superior esquerdo que diz "Add" (Adicionar). É por aí que vamos começar.</p><h3 id="passo-2-adicionar-um-bloco-de-acionamento"><strong>Passo 2 – adicionar um bloco de acionamento</strong></h3><p>Para construir uma extensão no PixieBrix, você precisa encadear blocos de acionamento. Você pode pensar nesses blocos como funções e em uma extensão como sendo a função principal que executa as funções menores na sequência que você configurar.</p><p>Você tem várias opções para acionar esta extensão.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-2.33.29-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-2.33.29-PM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-2.33.29-PM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-2.33.29-PM.png 722w" sizes="(min-width: 720px) 720px" width="722" height="714" loading="lazy"><figcaption>Opções de blocos de acionamento do PixieBrix</figcaption></figure><p>Você pode escolher uma ação manual, como adicionar um botão a uma página, um menu de contexto (que é quando você clica com o botão direito do mouse em uma página da web – o mesmo menu a partir do qual você chegou ao <code>Inspect</code>) ou um atalho no teclado.</p><p>O painel da barra lateral abre um painel no lado direito do seu navegador, mas isso não é realmente um acionador. Ele é usado para criar uma exibição para outro acionador.</p><p>Para o nosso fluxo de trabalho, especificamente, usaremos a opção <code>Trigger</code>, que executa a extensão sempre que você carregar uma página da web específica e os critérios adicionais configurados forem atendidos.</p><p>Esta será a aparência inicial:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-2.51.09-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-2.51.09-PM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-2.51.09-PM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/Screen-Shot-2022-07-10-at-2.51.09-PM.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/08/Screen-Shot-2022-07-10-at-2.51.09-PM.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-2.51.09-PM.png 1990w" sizes="(min-width: 720px) 720px" width="1990" height="1564" loading="lazy"></figure><p>Você pode alterar o nome na parte superior para o nome que quiser, como, por exemplo, Github PR Checklist.</p><p>Para configurar o Trigger, pense em quando você quer ver sua checklist. Você pode fazê-la iniciar sempre que abrir o GitHub, mas provavelmente isso não será o que você quer, já que não precisa vê-la quando estiver lendo as perguntas e respostas de outros usuários, ou procurando algo em um repositório.</p><p>Eu decidi acioná-la sempre que um botão <em>Create pull request</em> estiver na página, o que é um indicativo de que estou prestes a abrir um pull request. Então, provavelmente é um bom momento para passar pela minha checklist!</p><p>Portanto, siga os movimentos de abrir uma PR e navegue até uma página que tenha esse botão verde (enquanto mantém seu editor de páginas aberto).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.12.04-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-5.12.04-PM" width="446" height="128" loading="lazy"><figcaption>Botão de Criar pull request do GitHub</figcaption></figure><p>Depois de ver esse botão, vá até a seção <code>Advanced: Match Rules</code> do bloco Trigger e procure o campo <code>Selectors</code>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.13.46-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-5.13.46-PM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-5.13.46-PM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/Screen-Shot-2022-07-10-at-5.13.46-PM.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.13.46-PM.png 1388w" sizes="(min-width: 720px) 720px" width="1388" height="420" loading="lazy"><figcaption>Seção do seletor na configuração do bloco de acionamento no PixieBrix</figcaption></figure><p>A partir daí, você pode tanto usar o botão da seta do mouse para abrir uma visualização de seletor de elementos e clicar para selecionar o botão, como pode copiar a classe dele diretamente no campo. Precisamos da classe abaixo:</p><pre><code>.hx_create-pr-button
</code></pre><p>Então, agora, você criou um acionador, ele será chamado sempre que você carregar uma página hospedada no <code>github.com</code>.</p><p>Bom, já identificamos a classe para esse botão. A parte mais difícil já passou! Agora, só precisamos ocultá-lo, mostrar a checklist e exibi-la novamente quando a lista estiver concluída.</p><h3 id="passo-3-ocultar-o-bot-o-create-pull-request"><strong>Passo 3 – ocultar o botão <code>Create pull request</code></strong></h3><p>Selecione o botão de adição abaixo do bloco Trigger para adicionar outro bloco. Você verá uma janela que permite pesquisar todos os blocos disponíveis. Procure por <code>hide</code> (ocultar) e você verá este bloco.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.16.07-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-5.16.07-PM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-5.16.07-PM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/Screen-Shot-2022-07-10-at-5.16.07-PM.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/08/Screen-Shot-2022-07-10-at-5.16.07-PM.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.16.07-PM.png 1780w" sizes="(min-width: 720px) 720px" width="1780" height="420" loading="lazy"><figcaption>Bloco Hide (ocultar) no PixieBrix</figcaption></figure><p>Passe o mouse sobre o bloco "Hide" (Ocultar) para ver mais opções. Selecione "Add" (Adicionar) para trazê-lo para a sua extensão.</p><p>A única configuração que este bloco precisa é saber <strong><strong>qual elemento ocultar</strong></strong>. Nesse caso, será exatamente o mesmo elemento que usamos em nosso acionador – o botão <code>Create pull request</code>. Assim, você pode copiar essa mesma classe e defini-lo como valor para o seletor.</p><h3 id="passo-4-abrir-uma-barra-lateral"><strong>Passo 4 – abrir uma barra lateral</strong></h3><p>Adicione agora outro bloco, chamado <code>Show Sidebar</code>. Isso abrirá um painel no lado direito do seu navegador para exibir o conteúdo.</p><p>Eu configurei o campo <code>panelHeading</code> para <code>PR</code> para especificar que ele deve carregar a guia <code>PR</code>. Se você ainda não tiver outros painéis laterais configurados, não precisará colocar nada aqui e poderá pular para a próxima etapa.</p><h3 id="passo-5-atribuir-a-si-mesmo-ao-issue-problema-"><strong>Passo 5 – atribuir a si mesmo ao issue (problema)</strong></h3><p>Antes de chegarmos à checklist, adicionei mais uma parte de automação, além de exibir a checklist e ocultar o botão.</p><p>Criei uma ação para me atribuir ao problema. É apenas um clique, eu sei, mas por que não fazer os robôs fazerem isso por nós? 😊</p><p>Para fazer isso, adicione outro bloco chamado <code>Simulate a DOM event</code>. Este bloco faz exatamente o que diz... ele simula uma ação sobre um elemento específico, como clicar nele.</p><p>Atribua um seletor para o elemento com o qual você deseja interagir e também um evento.</p><p>Assim como nos blocos de acionamento e ocultação, você pode usar o botão do mouse para abrir um seletor na tela e selecionar o link <code>assign yourself</code> para aplicar automaticamente essas classes ao campo seletor.</p><p>Você também pode aplicar manualmente a classe copiando e colando isso no campo <code>selector</code>:</p><pre><code>#new_pull_request .js-issue-assign-self
</code></pre><p>Certifique-se de selecionar <code>click</code> no campo <code>event</code> e estamos prontos!</p><h3 id="passo-6-criar-sua-checklist"><strong>Passo 6 – criar sua checklist</strong></h3><p>Agora, estamos no cerne de nossa extensão. Hora de construir a checklist. Selecione o botão de adição e adicione o bloco <code>Show a modal or sidebar form</code>.</p><p>Ele exibe um formulário. Para cada item que desejarmos reconhecer ou pensar a respeito antes de enviar uma solicitação PR, criamos uma caixa de seleção.</p><h4 id="definir-um-t-tulo-e-uma-descri-o-para-o-formul-rio"><strong>Definir um título e uma descrição para o formulário</strong></h4><p>Isso é puramente estético, então você pode fazer como quiser.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-3.09.11-PM-1.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-3.09.11-PM-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-3.09.11-PM-1.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/Screen-Shot-2022-07-10-at-3.09.11-PM-1.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/08/Screen-Shot-2022-07-10-at-3.09.11-PM-1.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-3.09.11-PM-1.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="476" loading="lazy"><figcaption>Configurações do formulário para o PixieBrix mostrar o bloco de formulário</figcaption></figure><h4 id="configurar-o-primeiro-campo"><strong>Configurar o primeiro campo</strong></h4><p>Estamos fazendo a nossa checklist ​​antes da abertura do PR. Faremos, então, nosso primeiro campo do formulário. Precisaremos definir os seguintes campos no PixieBrix:</p><ul><li><code>name</code> (nome)</li><li><code>label</code> (etiqueta)</li><li><code>input type</code> (tipo de entrada)</li></ul><p>O nome e a etiqueta podem ser o que você quiser. <strong>Porém, <strong>mantenha o nome simples</strong></strong>, pois você precisará fazer referência a ele na próxima etapa ao verificar se é true (verdadeiro) ou false (falso). <strong><strong>A etiqueta é o que aparece visualmente ao lado da caixa de seleção</strong></strong>. Para o tipo de entrada, marque a caixa de <strong><strong>seleção</strong></strong>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.29.30-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-5.29.30-PM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-5.29.30-PM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/Screen-Shot-2022-07-10-at-5.29.30-PM.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.29.30-PM.png 1368w" sizes="(min-width: 720px) 720px" width="1368" height="866" loading="lazy"><figcaption>Configuração do campo do formulário do PixieBrix</figcaption></figure><p>Você pode visualizar como está ficando no painel lateral direito do editor de páginas do PixieBrix.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.30.21-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-5.30.21-PM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-5.30.21-PM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.30.21-PM.png 790w" sizes="(min-width: 720px) 720px" width="790" height="614" loading="lazy"><figcaption>Visualização do formulário no painel lateral direito do PixieBrix</figcaption></figure><h4 id="adicionar-o-restante-dos-itens-como-novos-campos"><strong>Adicionar o restante dos itens como novos campos</strong></h4><p>Vá acima do campo para selecionar o botão azul que diz "Add new field" (Adicionar um novo campo) e faça tudo novamente para quantos itens você tiver.</p><h4 id="configura-o-final-do-formul-rio"><strong>Configuração final do formulário</strong></h4><p>Está quase pronto! <strong><strong>Navegue até a seção abaixo das opções do campo de formulário</strong></strong>, que diz <code>Submit Button Text</code> (Texto do botão de envio). Você pode deixar como está. Eu personalizei o meu para <code>Ready to Open</code> (Pronto para abrir) para deixar a ação do botão mais clara.</p><p>Mais importante ainda, altere o valor de <code>Location</code> para <code>sidebar</code> em vez de <code>modal</code>. Isso define o formulário de modo que apareça na barra lateral que abrimos na etapa anterior.</p><h3 id="passo-7-mostrar-o-bot-o-create-pull-request-quando-a-checklist-estiver-conclu-da"><strong>Passo 7 – mostrar o botão <code>Create pull request</code> quando a checklist estiver concluída</strong></h3><p>Adicione um bloco final à extensão chamado <code>Show</code> (Exibir). Ela é semelhante ao bloco <em><em>Hide</em></em> (Ocultar), e passaremos para a mesma classe que estamos referenciando para o botão <code>Create pull request</code>.</p><p>Aqui está mais uma vez, caso precise relembrar sobre qual estou falando:</p><pre><code>.hx_create-pr-button
</code></pre><p>Há só mais uma configuração a fazer, pois queremos controlar quando este bloco é executado. Queremos mostrar o botão apenas se todos os itens foram verificados no envio do formulário.</p><p>Poderíamos somente tornar obrigatório cada campo no formulário para que você não pudesse enviar o formulário até que todos fossem verificados. Mas há uma maneira mais fácil de fazer isso: editar o campo <code>Condition</code> em <code>Advanced Options</code> (Opções Avançadas) neste bloco.</p><p>É aqui que você pode especificar quando esse bloco deve ser executado. Você criará uma instrução que retornará <em>true</em> se todos os campos da checklist forem <em>true</em>.</p><p>Esta é a aparência da sintaxe, embora você precise trocar o valor do <code>item</code> pelo nome de cada item.</p><pre><code>{{ "true" if @form.item1 and @form.item2 and @form.item3 and @form.item4 and @form.item5 and @form.item6 and @form.item7 and @form.item8 and @form.item9 and @form.item10 and@form.item11 }}
</code></pre><p>Quando terminar, seu bloco deve ficar assim:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.35.44-PM.png" class="kg-image" alt="Screen-Shot-2022-07-10-at-5.35.44-PM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/Screen-Shot-2022-07-10-at-5.35.44-PM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/Screen-Shot-2022-07-10-at-5.35.44-PM.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/Screen-Shot-2022-07-10-at-5.35.44-PM.png 1452w" sizes="(min-width: 720px) 720px" width="1452" height="890" loading="lazy"><figcaption>Configurações avançadas do bloco</figcaption></figure><p>Selecione o botão azul salvar no canto superior direito do editor de página PixieBrix para salvar sua extensão.</p><h2 id="fa-a-seus-testes"><strong>Faça seus testes</strong></h2><p>Agora experimente! Se você <a href="https://app.pixiebrix.com/activate?id=@brittany-joiner/gh-on-a-pr">ativou a extensão pré-compilada</a> do início do artigo, ou se seguiu o tutorial e a construiu por conta própria, você está pronto para testá-la.</p><p>Tente abrir um pull request e você verá o formulário da barra lateral e nenhum botão verde. Marque todos os itens da lista e clique em <code>Submit</code> (Enviar) e, de repente, seu botão aparecerá e você já estará atribuído ao PR!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/demo-pr-checklist.gif" class="kg-image" alt="demo-pr-checklist" width="686" height="387" loading="lazy"><figcaption>Demonstração da checklist de PR</figcaption></figure><p>Se você tiver algum problema para começar a construí-lo ou não estiver funcionando como esperado, a comunidade do PixieBrix está ativa e os mantenedores estão sempre dispostos a ajudar.</p><p>Porém, se você é mais um aprendiz visual e prefere assistir, criei um vídeo que mostra <a href="https://youtu.be/cpZ1J2s-2jk">como criar essa checklist automatizada de PR</a> (em inglês).</p><p>Obrigado pela leitura!</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como adicionar hooks de commit ao Git com Husky para automatizar tarefas ]]>
                </title>
                <description>
                    <![CDATA[ Existem muitas ferramentas para automatizar nossos processos de codificação. Nós podemos procurar por erros de sintaxe com ESLint e formatar nosso código com Prettier. Nem todo mundo na sua equipe se lembrará de rodar todos os comandos toda vez que for feito um commit. Como nós podemos usar o Husky ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-adicionar-hooks-de-commit-ao-git-com-husky-para-automatizar-tarefas/</link>
                <guid isPermaLink="false">620cf21d06c4bd05012ff542</guid>
                
                    <category>
                        <![CDATA[ Automação ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Gustavo Goulart Baptista ]]>
                </dc:creator>
                <pubDate>Mon, 21 Mar 2022 13:33:24 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/husky.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-add-commit-hooks-to-git-with-husky-to-automate-code-tasks/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Add Commit Hooks to Git with Husky to Automate Code Tasks</a>
      </p><p>Existem muitas ferramentas para automatizar nossos processos de codificação. Nós podemos procurar por erros de sintaxe com ESLint e formatar nosso código com Prettier.</p><p>Nem todo mundo na sua equipe se lembrará de rodar todos os comandos toda vez que for feito um <em>commit</em>. Como nós podemos usar o Husky para adicionar hooks do Git e fazer com que eles executem esses comandos para nós?</p><ul><li>O que são os hooks do Git?</li><li>O que é Husky?</li><li>O que nós vamos construir?</li><li>Passo 0: como configurar um novo projeto</li><li>Passo 1: como instalar o Husky em um projeto</li><li>Passo 2: como configurar o Husky para rodar os hooks do Git</li><li>Passo 3: como usar o Husky para formar o código com Prettier</li></ul><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.17977528089888%;" class="fluid-width-video-wrapper">
            <iframe width="356" height="200" src="https://www.youtube.com/embed/tuzys2b1J70?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><h2 id="o-que-s-o-os-hooks-do-git"><strong>O que são os hooks do Git?</strong></h2><p>Os <a href="https://git-scm.com/docs/githooks">Git hooks</a> (ou hooks do Git) são scripts que você pode configurar para <a href="https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks">rodar em certos eventos</a> no ciclo de vida do Git. Esses eventos incluem diferentes estágios do <em>commit</em>, como antes de um <em>commit </em>(<em>pré-commit</em>) e depois de um <em>commit </em>(<em>pós-commit</em>).</p><p>Eles são muito úteis, pois permitem que desenvolvedores rodem processos de código automatizados ou até forcem padrões ao automatizar outros scripts para rodar esses processos.</p><h2 id="o-que-o-husky"><strong>O que é o Husky?</strong></h2><p>O <a href="https://github.com/typicode/husky">Husky</a> é uma ferramenta que nos permite facilmente configurar hooks do Git e executar scripts que queremos em certos estágios.</p><p>Ele inclui um objeto dentro do nosso arquivo <code>package.json</code> &nbsp;que rodará o Husky nos scripts que nós especificarmos. Depois disso, o Husky gerencia os pontos do ciclo de vida do Git em que nossos scripts rodarão.</p><h2 id="o-que-n-s-vamos-construir"><strong>O que nós vamos construir?</strong></h2><p>Vamos configurar um projeto simples onde poderemos testar os hooks do Git.</p><p>Você pode acompanhar o artigo com qualquer projeto em que você estiver trabalhando. Usarei o <a href="https://nextjs.org/">Next.js</a> como ponto inicial, simplesmente pelo fato de que precisamos rodar apenas um comando para ter o projeto iniciado.</p><p>Uma consideração é que, ao acompanhar com esse projeto, saiba que estaremos usando o <a href="https://prettier.io/">Prettier</a> como um exemplo do que você pode fazer com hooks do Git.</p><p>O Prettier é uma ferramenta que automaticamente formatará nosso código sem que tenhamos que fazê-lo, o que, se você não estiver se preparando para fazer, pode causar muita tensão. Acompanhar comigo usando o projeto com Next.js vai permitir que você faça testes sem mudanças não intencionais.</p><p>Quanto ao teste dos hooks do Git, começaremos adicionando uma instrução simples na linha de comando para ver o Husky funcionando e nós também testaremos a adição do Prettier, que formatará o nosso código automaticamente.</p><p>Por fim, enquanto escrevo esse artigo, soube que o Husky lançou uma versão <a href="https://typicode.github.io/husky/#/">Alpha v7</a>. Considerando que é apenas uma versão Alpha, seguiremos com a <a href="https://github.com/typicode/husky/tree/v4.3.0">v4</a>, que nos permite instalar facilmente o Husky com o npm.</p><h2 id="passo-0-como-configurar-um-novo-projeto"><strong>Passo 0: como configurar um novo projeto</strong></h2><p>Como eu mencionei, você pode seguir os mesmos passos com qualquer projeto gerenciado com um arquivo <code>package.json</code>.</p><p>O Next.js é absolutamente algo além do necessário para um passo a passo básico. Porém, o objetivo é minimizar os passos de configuração para focar no trabalho com o Husky.</p><p>Para começar com o Next.js, vá até o diretório em que você deseja começar seu projeto e rode o seguinte comando:</p><pre><code>yarn create-next-app meu-projeto-com-husky
# ou
npx create-next-app meu-projeto-com-husky
</code></pre><p><em><em>Not</em>a<em>: </em>sinta-se livre para substituir <code>meu-projeto-com-husky</code><em> </em>pelo nome que você quiser que o seu diretório tenha<em>.</em></em></p><p>Isso criará uma nova pasta, um novo projeto Next.js, e instalará todas as dependências.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/create-next-app.jpg" class="kg-image" alt="create-next-app" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/03/create-next-app.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/03/create-next-app.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/03/create-next-app.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/03/create-next-app.jpg 1787w" sizes="(min-width: 1200px) 1200px" width="1787" height="694" loading="lazy"></figure><p>Ao terminar, navegue até aquela nova pasta e podemos seguir em frente!</p><p><a href="https://github.com/colbyfayock/my-husky-project/commit/9e0b39c8f34c2755e074a32ef9de8d4047b68f67">Acompanhe aqui com o <em>commit</em></a>.</p><h2 id="passo1-como-instalar-o-husky-em-um-projeto"><strong>Passo1: como instalar o Husky em um projeto</strong></h2><p>Para instalar o Husky, podemos utilizar o yarn ou o npm.</p><pre><code>yarn add husky
# ou
npm install husky
</code></pre><p><em><em>Not</em>a<em>:</em> se, ao instalar o Husky nesse momento, a versão instalada for a <em>v</em>7<em>,</em> isso significa que a<em> v</em>7 foi oficialmente lançada<em>.</em> Confira a <a href="https://typicode.github.io/husky/#/">documentação<em> </em>atualizada do Husky</a> <a href="https://typicode.github.io/husky/#/"> </a>(em inglês) ou instale a última versão<em> </em>da <em>v4 </em>especificando <em>husky@4.3.0 (</em>ou seja qual for a versão mais recente<em>) </em>ao instalar<em>.</em></em></p><p>Quando o pacote terminar de instalar, podemos seguir com o Husky.</p><p><a href="https://github.com/colbyfayock/my-husky-project/commit/720728cd595d41c9197640bd4c48e9133bd7d956">Acompanhe aqui com o <em>commit</em></a>.</p><h2 id="passo-2-como-configurar-o-husky-para-rodar-os-hooks-do-git"><strong>Passo 2: como configurar o Husky para rodar os </strong>hooks do Git</h2><p>Agora, vamos configurar o Husky para conseguir usar nossos hooks do Git.</p><p>Dentro do nosso arquivo <code>package.json</code>, crie uma nova propriedade chamada <code>husky</code> com um objeto vazio.</p><pre><code class="language-json">"husky": {},</code></pre><p>Você pode, de fato, adicionar essa propriedade onde você quiser no arquivo <code>package.json</code>. Eu, no entanto, a adicionarei logo após a propriedade <code>scripts</code> &nbsp;para conseguir gerenciá-las juntas mais facilmente.</p><p>Dentro da propriedade Husky, adicionaremos outra propriedade chamada <code>hooks</code>, que também contém um objeto vazio:</p><pre><code class="language-json">"husky": {
  "hooks": {}
},
</code></pre><p>Aqui é onde adicionaremos nossos hooks do Git. O Husky suporta basicamente todos os <a href="https://git-scm.com/docs/githooks">hooks do Git definidos pelo próprio Git</a>. Então, podemos ser tão flexíveis quanto quisermos dentro do nosso fluxo de eventos do Git.</p><p>Para fins de teste, eu criei uma <a href="https://github.com/colbyfayock/my-husky-project/tree/main+test">nova <em>branch</em></a> onde eu literalmente adicionei todos os hooks do Git daquela página, incluindo um script que simplesmente escreve no terminal <code>[Husky] nome do evento</code>.</p><p><em><em>Not</em>a<em>: </em>você não precisa fazer isso a não ser que esteja curioso<em>. </em>O objetivo é ser capaz de demonstrar a você, com meu exemplo, como funciona<em>.</em></em></p><pre><code>“husky”: {
  “hooks”: {
    “applypatch-msg”: “echo \”[Husky] applypatch-msg\””,
    “pre-applypatch”: “echo \”[Husky] pre-applypatch\””,
    “post-applypatch”: “echo \”[Husky] post-applypatch\””,
    “pre-commit”: “echo \”[Husky] pre-commit\””,
	}
}</code></pre><p>O que isso fará é dizer ao Husky que, em cada etapa na qual temos permissão para nos conectar ao Git, diremos a ele a ação desejada!</p><p>Quando eu fizer os <em>commits d</em>essas mudanças, nós poderemos imediatamente ver o Husky disparar alguns de nossos scripts.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/husky-commit-hooks.jpg" class="kg-image" alt="husky-commit-hooks" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/03/husky-commit-hooks.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/03/husky-commit-hooks.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/03/husky-commit-hooks.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/03/husky-commit-hooks.jpg 1775w" sizes="(min-width: 1200px) 1200px" width="1775" height="566" loading="lazy"></figure><p>Esses são todos eventos aos quais o Git permite que nos conectemos e que acontecem durante o processo de <em>commit</em>.</p><p>Do mesmo modo, se eu der um <em>push </em>nessas mudanças para o Github, poderei ver que o processo de <em>push </em>roda o <em>hook </em><code>pre-push</code>!</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/husky-push-hooks.jpg" class="kg-image" alt="husky-push-hooks" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/03/husky-push-hooks.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/03/husky-push-hooks.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/03/husky-push-hooks.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/03/husky-push-hooks.jpg 1782w" sizes="(min-width: 1200px) 1200px" width="1782" height="566" loading="lazy"></figure><p>Pode ser que nunca usemos a maioria dos <em>hooks </em>que o Husky e o Git proporcionam (vimos apenas alguns deles).</p><p>Porém, é realmente incrível ver como isso pode ser poderoso, seja rodando códigos que formatarão o nosso código, evitando que se faça o <em>commit</em> de chaves de acesso secretas sejam <em>commitadas</em>, ou qualquer coisa que possa ajudar a automatizar tarefas importantes do nosso fluxo de trabalho.</p><p>Conseguimos ver, agora, que configuramos o Husky ao especificar a configuração e os <em>hooks </em>dentro do nosso <code>package.json</code>.</p><p><a href="https://github.com/colbyfayock/my-husky-project/commit/108583a7e96564baf0fac994eafa6cf98d65d03e">Acompanhe aqui com o commit</a>.</p><p><em><em>Not</em>a<em>: </em>se quiser conferir minha branch que inclui todos os testes com hooks do Git, <a href="https://github.com/colbyfayock/my-husky-project/tree/main+test">você pode encontrá-la no Github</a>.</em></p><h2 id="passo-3-como-usar-o-husky-para-formatar-seu-c-digo-com-prettier"><strong>Passo 3: como usar o Husky para formatar seu código com Prettier</strong></h2><p>Finalmente, em um caso mais próximo à realidade, testaremos o Prettier e formataremos nosso código automaticamente.</p><p>O Prettier é uma ferramenta de formatação de código que permite limpar o código facilmente, fazendo parecer como se uma única pessoa o tivesse escrito.</p><p>Por que ferramentas como o Prettier são importantes? Quando estamos programando, especialmente em equipe, é importante manter a consistência para que todo mundo saiba o que esperar. Isso evitará discussões sobre um ponto e vírgula em uma <em>code review</em>, mas também ajudará a identificar erros de sintaxe e a prevenir bugs.</p><p><em>Atenção<em>: </em>rodar o <em>Prettier </em>formatará automaticamente todo o código. Por enquanto, estamos testando isso antes de fazer o commit das mudanças. Assim que você aplicar isso a um Git Hook, ele automatizará esse processo.</em></p><p>Para começar, vamos instalar o Prettier com nosso gerenciador de pacotes:</p><pre><code>yarn add prettier -D
# ou
npm install prettier --save-dev
</code></pre><p><em><em>Not</em>a<em>: </em>estamos instalando o Prettier como uma<em> <code>devDependency</code></em>, já que sua aplicação não precisa disso para rodar<em>.</em></em></p><p>Depois, podemos adicionar um novo script ao nosso <code>package.json</code> que facilitará rodar o Prettier para fazer os testes.</p><p>Dentro da propriedade <code>scripts</code>, adicione:</p><pre><code class="language-json">"lint": "prettier --check ."
</code></pre><p>Para começar, rodaremos o primeiro teste na modalidade "check", o que nos permite ver quais arquivos seriam alterados.</p><p>Execute o seguinte comando:</p><pre><code>yarn lint
# ou 
npm run lint
</code></pre><p>Assim que o fizermos, poderemos perceber que o Prettier nos dirá quais dos arquivos listados serão alterados.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/prettier-check.jpg" class="kg-image" alt="prettier-check" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/03/prettier-check.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/03/prettier-check.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/03/prettier-check.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/03/prettier-check.jpg 1790w" sizes="(min-width: 1200px) 1200px" width="1790" height="384" loading="lazy"></figure><p>Nesse ponto, nosso código se manterá inalterado. Se quisermos que mudanças reais sejam feitas, primeiros temos que incluir um script adicional:</p><pre><code class="language-json">"format": "prettier --write ."
</code></pre><p>Se rodarmos esse script, ele atualizará todos aqueles arquivos mencionados de acordo com a especificação do Prettier.</p><p><em>Atenção<em>:</em> executar o <em>Prettier</em> para realizar as mudanças fará alterações em seus arquivos<em>. </em>Todas essas alterações são apenas para fins de adequação de estilo e não deveriam impactar o modo como seu código é executado<em>, </em>apenas a aparência dele<em>.</em> Antes de formatar, é prudente salvar todas as suas mudanças através de um <em>commit </em>no<em> Git</em>, de maneira a poder reverter facilmente essas mudanças caso não esteja feliz com elas<em>.</em></em></p><p>Você agora pode rodar o script com:</p><pre><code>yarn format
</code></pre><p>E podemos ver que o Prettier atualizou seus arquivos!</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/prettier-write.jpg" class="kg-image" alt="prettier-write" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/03/prettier-write.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/03/prettier-write.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/03/prettier-write.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/03/prettier-write.jpg 1792w" sizes="(min-width: 1200px) 1200px" width="1792" height="462" loading="lazy"></figure><p>Agora, a parte que é relevante nessa jornada: podemos adicionar isso como um hook do Git. Dessa maneira, quando alguém tentar realizar um <em>commit </em>em um código, o Prettier executará antes de o código ser salvo. Isso significa que sempre manteremos um código consistente, com o Prettier formatando o estilo.</p><p>Dentro de nossa configuração dos hooks no Husky, vamos adicionar:</p><pre><code class="language-json">"husky": {
  "hooks": {
    "pre-commit": "prettier --write . &amp;&amp; git add -A ."
  }
},
</code></pre><p>Como você pode perceber, no nosso <em>hook pré-commit</em>, também estamos adicionando <code>git add -A .</code>.</p><p>Quando o Husky for executado, ele simplesmente executará o script fornecido. Ao rodar o comando do Prettier, estamos apenas formatando o código, mas ainda faltaria salvar essas mudanças como parte do processo. Por isso, usaremos <code>git add</code> para guardar todas essas mudanças e incluí-las no <em>commit</em>.</p><p>Para fins de teste, eu reverti as mudanças de todos os arquivos formatados antes. Se você estiver acompanhando com o mesmo projeto, você pode executar o seguinte comando:</p><pre><code>git checkout pages
</code></pre><p>Essa ação apagará todas as mudanças em <code>pages</code> para o último <em>commit</em>.</p><p>Agora, vamos testar adicionar todos os nossos arquivos com Git e fazer o <em>commit </em>dessas mudanças.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/git-commit-husky-precommit-prettier.jpg" class="kg-image" alt="git-commit-husky-precommit-prettier" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/03/git-commit-husky-precommit-prettier.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/03/git-commit-husky-precommit-prettier.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/03/git-commit-husky-precommit-prettier.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/03/git-commit-husky-precommit-prettier.jpg 1778w" sizes="(min-width: 1200px) 1200px" width="1778" height="548" loading="lazy"></figure><p>Tendo executado o comando de <em>commit</em>, podemos ver que o hook <em>pré-commit </em>do Husky já fez seu trabalho e formatou nosso código.</p><p><a href="https://github.com/colbyfayock/my-husky-project/commit/315112d062a791f20eda11f9c608c5fa794ba73e">Acompanhe aqui com o <em>commit</em></a>.</p><h2 id="o-que-eu-posso-fazer-depois"><strong>O que eu posso fazer depois?</strong></h2><h3 id="use-lint-staged-para-formatar-somente-os-arquivos-modificados"><strong>Use <em>lint-staged</em> para formatar somente os arquivos modificados</strong></h3><p>Estamos usando o Prettier no nosso hook pré-commit e especificando <code>.</code>, o que significa rodar em todos os arquivos todas as vezes.</p><p>Podemos usar uma ferramenta chamada <a href="https://github.com/okonet/lint-staged">lint-staged</a>, que ainda nos permite rodar nossos hooks do Git com o Husky, executando-o apenas naqueles arquivos que estão em <em>stage </em>no Git.</p><p>Por exemplo, se quiséssemos fazer isso com o Husky e o Prettier, nossa configuração se pareceria com algo do tipo:</p><pre><code>"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "*": "prettier --write"
},
</code></pre><p>Como parte de como <em>lint-staged</em> é executado, ele anexará as mudanças dos arquivos alterados ao final de nossa instrução para o Prettier automaticamente. </p><p>Você também perceberá que não incluímos <code>git add</code>. O <em>lint-staged</em> também adicionará quaisquer mudanças ao Git instantaneamente para nós.</p><h3 id="personalize-a-configura-o-do-prettier-para-formatar-as-regras"><strong>Personalize a configuração do Prettier para formatar as regras</strong></h3><p>O Prettier é bem opinativo. Há algumas coisas das quais eu, pessoalmente, não gosto e talvez você concorde comigo. </p><p>Felizmente, o Prettier permite a você configurar um arquivo que pode sobrescrever algumas regras para fazer com que seu código seja do jeito que você e seu time queiram.</p><h3 id="diga-ao-prettier-para-ignorar-arquivos-com-prettierignore"><strong>Diga ao Prettier para ignorar arquivos com .prettierignore</strong></h3><p>Você provavelmente não quer o Prettier rodando em "tudo" (bem, talvez sim).</p><p>O Prettier permite que você configure um arquivo <code>.prettierignore</code> &nbsp;dentro da raiz do seu projeto, próximo ao <code>package.json</code>, de modo similar ao <code>.gitignore</code>, que possibilita a você dizer ao Prettier quais arquivos ele não deve monitorar.</p><figure class="kg-card kg-image-card"><img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" class="kg-image" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy"></figure><ul><li><a href="https://twitter.com/colbyfayock">Siga o autor no Twitter</a></li><li><a href="https://youtube.com/colbyfayock">Inscreva-se no canal do YouTube do autor</a></li><li><a href="https://www.colbyfayock.com/newsletter/">Inscreva-se para receber a newsletter do autor</a></li><li><a href="https://github.com/sponsors/colbyfayock">Patrocine o autor</a></li></ul> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
