<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Eduardo Florêncio</title>
    <description>The latest articles on DEV Community by Eduardo Florêncio (@jokenpo).</description>
    <link>https://dev.to/jokenpo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F842592%2F85fedb2a-b97c-491b-a695-03e845f775c4.png</url>
      <title>DEV Community: Eduardo Florêncio</title>
      <link>https://dev.to/jokenpo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jokenpo"/>
    <language>en</language>
    <item>
      <title>Como atualizar automaticamente as dependências do seu repositório com Dependabot no Github [PT/BR]</title>
      <dc:creator>Eduardo Florêncio</dc:creator>
      <pubDate>Tue, 30 Aug 2022 16:33:41 +0000</pubDate>
      <link>https://dev.to/jokenpo/como-atualizar-as-dependencias-do-seu-repositorio-com-dependabot-no-github-ptbr-387b</link>
      <guid>https://dev.to/jokenpo/como-atualizar-as-dependencias-do-seu-repositorio-com-dependabot-no-github-ptbr-387b</guid>
      <description>&lt;p&gt;Você já sofreu com erros de dependencias desatualizadas depois de instalar o projeto? &lt;br&gt;
Ou, usando Dependabot, você deixou acumular alertas de atualizações por meses?&lt;/p&gt;

&lt;p&gt;Então aqui vai um pequeno tutorial que vai te ajudar!&lt;/p&gt;

&lt;p&gt;Mas primeiro…&lt;/p&gt;
&lt;h2&gt;
  
  
  O que é o Dependabot?
&lt;/h2&gt;

&lt;p&gt;De acordo com sua própria descrição, Dependabot é um bot que nos ajuda em manter as dependências dos nossos projetos atualizadas. Todo dia, ele checa se todas as dependências estão desatualizadas e abre uma PR individualmente toda vez que encontrar. Você então faz o review, o merge, e volta a trabalhar com o projeto mais seguro.&lt;/p&gt;
&lt;h3&gt;
  
  
  Como instalar o Dependabot no meu repositório
&lt;/h3&gt;

&lt;p&gt;Dentro do seu repositório no Github, vá em: &lt;br&gt;
&lt;strong&gt;&lt;em&gt;Settings&lt;/em&gt;&lt;/strong&gt; &amp;gt; &lt;strong&gt;&lt;em&gt;[ Security ]&lt;/em&gt;&lt;/strong&gt; &amp;gt; &lt;strong&gt;_Code security and analysis&lt;br&gt;
_&lt;/strong&gt; e então, ative o &lt;strong&gt;&lt;em&gt;Dependabot version updates&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
Clique em &lt;strong&gt;&lt;em&gt;Configure&lt;/em&gt;&lt;/strong&gt; e então o código que você verá será mais o menos assim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: 2
updates:
  - package-ecosystem: npm
    directory: '/'
    schedule:
      interval: daily
      time: '02:00'
    open-pull-requests-limit: 10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explicando o que significa, ele irá diariamente verificar as dependências as 2h00 (UTC 0).&lt;/p&gt;

&lt;p&gt;Aqui uma configuração &lt;strong&gt;BONUS&lt;/strong&gt; caso você queira alterar a branch em que ele irá abrir as PRs e/ou alterar as labels dessas PRs. Você pode inserir o código no fim do código acima.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    # BONUS
    # Raise pull requests for version updates
    # to pip against the `develop` branch
      target-branch: "dev"
    # Labels on pull requests for version updates only
          labels:
          - "dependecies"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A raiz do seu repositório irá ficar assim:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_ciyrj6q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdhizneaye3uibehzw8b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_ciyrj6q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdhizneaye3uibehzw8b.png" alt="Repository tree" width="219" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pronto, seu projeto já está com o Dependabot configurado. Então diariamente será analisado se alguma dependência esta desatualizada.&lt;/p&gt;

&lt;p&gt;Só tem um problema: se você não fizer o review e o merge, ele continua sendo apenas uma PR.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como automatizar o merge do Dependabot
&lt;/h2&gt;

&lt;p&gt;Com o Github Actions nós conseguimos automatizar esse processo de "mergear" as PRs criadas pelo Dependabot.&lt;/p&gt;

&lt;p&gt;Vá para &lt;strong&gt;&lt;em&gt;Actions&lt;/em&gt;&lt;/strong&gt; dentro do repositorio Github do projeto e depois clique em &lt;strong&gt;&lt;em&gt;New Workflow&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
Existem vários modelos de Actions prontos. Você pode escolher qualquer um e então delete o conteúdo e cole esse código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: 'Dependabot Automerge - Action'

on:
  pull_request:

permissions:
  pull-requests: write
  issues: write

jobs:
  worker:
    runs-on: ubuntu-latest

    if: github.actor == 'dependabot[bot]'
    steps:
      - name: 'Wait for status checks'
        id: waitforstatuschecks
        uses: WyriHaximus/github-action-wait-for-status@v1.2.0
        with:
          ignoreActions: worker,WIP
          checkInterval: 60
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 'Automerge'
        uses: pascalgn/automerge-action@v0.11.0
        if: steps.waitforstatuschecks.outputs.status == 'success'
        env:
          MERGE_LABELS: ''
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MERGE_DELETE_BRANCH: true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com isso, toda vez que um pull request for aberto pelo Dependabot, será verificado primeiramente se não houve nenhum conflito no projeto com a atualização dessa dependência e dar merge caso tudo esteja certo.&lt;/p&gt;

&lt;p&gt;Seu repositório ficará assim:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x3du91KO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/53flxh5khdhnvxopvrlm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x3du91KO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/53flxh5khdhnvxopvrlm.png" alt="Repository tree with all config" width="219" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pronto, seu projeto agora atualiza todas suas dependências automaticamente!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to autoupdate your repository dependences with Dependabot on Github</title>
      <dc:creator>Eduardo Florêncio</dc:creator>
      <pubDate>Tue, 30 Aug 2022 16:13:27 +0000</pubDate>
      <link>https://dev.to/jokenpo/how-to-autoupdate-your-repository-dependences-with-dependabot-on-github-11og</link>
      <guid>https://dev.to/jokenpo/how-to-autoupdate-your-repository-dependences-with-dependabot-on-github-11og</guid>
      <description>&lt;p&gt;Have you ever suffered from errors when installing your project's dependencies with NPM? Or, using Dependabot, did you let a bunch of dependency alerts accumulate that have been updated for months?&lt;/p&gt;

&lt;p&gt;So I think this little tutorial will help you!&lt;/p&gt;

&lt;p&gt;But first…&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Dependabot?
&lt;/h2&gt;

&lt;p&gt;According to its own description, Dependabot is a bot that helps you keep your dependencies up to date. Every day, it checks your dependency files for outdated requirements and opens individual PRs for any it finds. You review, merge, and get to work on the latest, most secure releases.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to install dependabots in my repository
&lt;/h3&gt;

&lt;p&gt;Inside your Github repository, go to: &lt;br&gt;
&lt;strong&gt;&lt;em&gt;Settings&lt;/em&gt;&lt;/strong&gt; &amp;gt; &lt;strong&gt;&lt;em&gt;[ Security ]&lt;/em&gt;&lt;/strong&gt; &amp;gt; &lt;strong&gt;_Code security and analysis&lt;br&gt;
_&lt;/strong&gt; and then, activate the &lt;strong&gt;&lt;em&gt;“Dependabot version updates”&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
click &lt;strong&gt;&lt;em&gt;Configure&lt;/em&gt;&lt;/strong&gt; and the code you will see will look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: 2
updates:
  - package-ecosystem: npm
    directory: '/'
    schedule:
      interval: daily
      time: '02:00'
    open-pull-requests-limit: 10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What is configured in this first code is that it will run daily at 2:00 am.&lt;/p&gt;

&lt;p&gt;Here a &lt;strong&gt;BONUS&lt;/strong&gt; setting if you want to change the branch it will open the PR and the label if you want to change. You can manually add them at the end of the code above.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    # BONUS
    # Raise pull requests for version updates
    # to pip against the `develop` branch
      target-branch: "dev"
    # Labels on pull requests for version updates only
          labels:
          - "dependecies"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will be in the root of your repository like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_ciyrj6q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdhizneaye3uibehzw8b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_ciyrj6q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdhizneaye3uibehzw8b.png" alt="Repository tree" width="219" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, your repository is already configured with Dependabot. So daily you will check if the dependencies of this project are outdated.&lt;/p&gt;

&lt;p&gt;There's only one problem: if you don't merge it, it will continue to be just a PR.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to automate dependabot merge
&lt;/h2&gt;

&lt;p&gt;With Github Actions we were able to automate the process of merging PRs created by Dependabot.&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;&lt;em&gt;Actions&lt;/em&gt;&lt;/strong&gt; inside your Github repository and then &lt;strong&gt;&lt;em&gt;New Workflow&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
There are several Actions already ready. You can choose any template and then delete all the content and paste this code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: 'Dependabot Automerge - Action'

on:
  pull_request:

permissions:
  pull-requests: write
  issues: write

jobs:
  worker:
    runs-on: ubuntu-latest

    if: github.actor == 'dependabot[bot]'
    steps:
      - name: 'Wait for status checks'
        id: waitforstatuschecks
        uses: WyriHaximus/github-action-wait-for-status@v1.2.0
        with:
          ignoreActions: worker,WIP
          checkInterval: 60
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 'Automerge'
        uses: pascalgn/automerge-action@v0.11.0
        if: steps.waitforstatuschecks.outputs.status == 'success'
        env:
          MERGE_LABELS: ''
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MERGE_DELETE_BRANCH: true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With it, every time a pull request is opened by Dependabot it will be checked if there was no conflict with the dependency update and it will merge if everything is ok.&lt;/p&gt;

&lt;p&gt;So your repository will look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x3du91KO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/53flxh5khdhnvxopvrlm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x3du91KO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/53flxh5khdhnvxopvrlm.png" alt="Repository tree with all config" width="219" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now your project updates its dependencies automatically!&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
