<?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>Forem: LEDS</title>
    <description>The latest articles on Forem by LEDS (@ledsifes).</description>
    <link>https://forem.com/ledsifes</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%2Forganization%2Fprofile_image%2F9568%2F0e36293b-0e4f-49d6-85ad-d2588100efa5.jpg</url>
      <title>Forem: LEDS</title>
      <link>https://forem.com/ledsifes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ledsifes"/>
    <language>en</language>
    <item>
      <title>Scrum and agile methodology</title>
      <dc:creator>Vinícius Machado de Souza</dc:creator>
      <pubDate>Tue, 08 Oct 2024 13:24:28 +0000</pubDate>
      <link>https://forem.com/ledsifes/scrum-and-agile-methodology-238p</link>
      <guid>https://forem.com/ledsifes/scrum-and-agile-methodology-238p</guid>
      <description>&lt;h2&gt;
  
  
  What is SCRUM?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Scrum is not a methodology, it is a framework. This means that Scrum won't tell you exactly what to do, but rather it will serve as a "path" to help you achieve your goal.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SCRUM has 3 basic roles:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scrum Master:&lt;/strong&gt; The guardian of the process. Responsible for ensuring the process runs smoothly by removing obstacles that hinder the team's productivity, organizing, and facilitating meetings. It is essential for the Scrum Master to have a deep understanding of Scrum.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Product Owner:&lt;/strong&gt; The central figure with leadership authority over the product. Decides which products and features will be developed and in what order. It's their responsibility to communicate to the participants what the Scrum team aims to achieve in the project, and they prioritize the items in the Product Backlog.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developers:&lt;/strong&gt; Comprises all developers and other professionals directly involved in the product's development. They hold a role in Scrum just as important as the others, as they are responsible for turning the project into reality.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;"Build the right thing. Build it the right way. Build it fast."&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugw5j055tqxax4e3sbsr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugw5j055tqxax4e3sbsr.png" alt="a" width="427" height="283"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Scrum Principles
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Empirical process control:&lt;/strong&gt; Observation and experimentation. Through transparency, inspection, and adaptation, the process is carried out flexibly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Self-management:&lt;/strong&gt; Everyone is responsible for the project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration:&lt;/strong&gt; No one has climbed Mount Everest alone.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Value-based prioritization:&lt;/strong&gt; Focus on delivering the most valuable items to the client.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Timebox:&lt;/strong&gt; Exists with the purpose of setting a time frame that encompasses the entire Sprint process. Ideally, a sprint should last between 1 to 4 weeks. If for any reason a task cannot be delivered, it will be moved to the next sprint. This prevents the "student syndrome" — if you give someone 4 hours to complete a task that could be done in 1 hour, they will procrastinate for 3 hours and finish it in the last hour. Therefore, it is crucial to establish boundaries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Iteration and increment:&lt;/strong&gt; Scrum focuses on value delivery. Its stages repeat through sprints, and the results are incrementally based on the client's highest needs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Basic Scrum Events&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Daily Scrum&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Sprint Planning&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Sprint&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Sprint Review&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Sprint Retrospective&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5r58o2ca4hzmqjb7n56.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5r58o2ca4hzmqjb7n56.png" alt="a" width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Daily Meetings
&lt;/h2&gt;

&lt;p&gt;Every day, there are meetings of approximately 15 minutes where the team seeks to assess whether the project's progress is aligned with the Sprint Goal or if it is necessary to adapt the Sprint Backlog to meet the expected objective. The developers can structure this meeting as they see fit, and below are three questions that are not mandatory but can help guide the meeting process:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What did I do yesterday to help the team reach the sprint goal?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What will I do today to achieve the sprint goal?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Is there any impediment preventing me or the team from reaching the goal?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Product Backlog
&lt;/h2&gt;

&lt;p&gt;It is a list of features to build the product, ordered by priority by the product owner. It consists of short statements that describe what the customer wants the product to do. These statements can be referred to as features or user stories. A Product Backlog consists of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Feature or User Story: describes a desired functionality for the product.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Importance: describes how important the functionality is.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Estimate: describes how difficult it is for the team to implement.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How to create a product backlog?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scrum doesn't tell us how to create a product backlog, only that we must have one. However, to make it easier, here are some steps for its creation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Understand the partner's problem&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Write the user stories&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Relate the user stories&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Prioritize the user stories&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Estimate the difficulty of the user stories&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is one of the most challenging stages of a project. To do this, we can use the following techniques:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Interviews&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Questionnaires&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Observation&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Prototyping&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Investigation&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;User journey&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Other techniques to understand the partner's/client's problem&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Paper Prototyping&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To help understand the user, a very good technique is Paper Prototyping (Drawing a prototype on paper). This is a brainstorming, design, creation, communication, and interface testing technique that uses paper and pen to understand user needs. This technique can be used to design websites, software, mobile devices, and hardware.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjbupe4a3632kaljbkqo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjbupe4a3632kaljbkqo.jpg" alt="a" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprints
&lt;/h2&gt;

&lt;p&gt;A Sprint is a time period during which one or more items from the product backlog are selected to be developed and delivered to stakeholders in order to add value to the project. It is important for sprints to follow a predefined timebox, typically lasting between 1 to 4 weeks, depending on what is set as the final product.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What happens in each day of the Sprint&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hgk4udlvyr35kfatk98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hgk4udlvyr35kfatk98.png" alt="a" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before the start of a sprint, a sprint planning meeting is held based on what needs to be delivered as the final product. This meeting is called "sprint planning," where the sprint backlog is created. Based on the team's capacity, it is determined how many features can be fully developed within the sprint timeframe. Among the many methods that exist, one particularly interesting one that can be used for this is Planning Poker.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Planning Poker Cards&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2r09g49xr24nw69cf2xd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2r09g49xr24nw69cf2xd.png" alt="a" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Planning Poker works as follows: the development group meets to discuss the candidate user stories to be selected for development in the current sprint. The team members each draw a card with a number that represents the difficulty they perceive in developing that feature— the lower the number, the less complex; the higher the number, the more complex. The team members who played the lowest and highest cards are selected to speak, and they seek to reach a consensus on the difficulty of that user story. This ensures that everyone is involved in the development process and also makes it more agile.&lt;/p&gt;

&lt;p&gt;It’s important to note that these features follow the level of importance recorded by the product owner in the product backlog. At the end of the sprint, there are two additional key activities:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sprint review: &lt;em&gt;This is a meeting held right after the end of a sprint cycle, with the product owner present to validate whether the product being delivered meets their needs.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sprint Retrospective: &lt;em&gt;This is a meeting with only the development team members to evaluate the pros and cons of the development cycle in question.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Want to follow more content about agile methodologies? Follow &lt;a href="https://dev.to/ledsifes"&gt;LEDS&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>agile</category>
      <category>scrum</category>
      <category>leds</category>
      <category>ledscommunity</category>
    </item>
    <item>
      <title>Introduction to Git Merge</title>
      <dc:creator>Heloisa Louzada B. Gomes</dc:creator>
      <pubDate>Fri, 20 Sep 2024 13:29:54 +0000</pubDate>
      <link>https://forem.com/ledsifes/introduction-to-git-merge-5598</link>
      <guid>https://forem.com/ledsifes/introduction-to-git-merge-5598</guid>
      <description>&lt;p&gt;In this post, we will talk about an essential process in project development: the merge. Merge means "to combine," that is, the action of merging two lines of development in a project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the "Head"?
&lt;/h2&gt;

&lt;p&gt;Before explaining merge, it is important to understand the concept of the head. The head is a pointer that always points to the version of the code currently being worked on. When a merge is performed, the head moves to reflect the combined changes between the branches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Merge Strategies
&lt;/h2&gt;

&lt;p&gt;There are different merge strategies. Let's cover the main ones:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fast-Forward&lt;/strong&gt;: The simplest strategy. The system just moves the pointer forward without conflicts. This happens when, after creating a new branch, all commits and changes were made exclusively in it. Thus, when performing the merge, there are no divergences between the main branch (master) and the new branch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fua9zdcc13yyhy1lmy4cg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fua9zdcc13yyhy1lmy4cg.png" alt="Image description" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ort&lt;/strong&gt;: This strategy is used when there are changes in both the main branch and the created branch, but in different files, without causing conflicts. Git detects that the files are in different stages but can merge the changes automatically without manual intervention.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vwzao1ge5xfaamir8sa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vwzao1ge5xfaamir8sa.png" alt="Image description" width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handling Conflicts&lt;/strong&gt;&lt;br&gt;
When a conflict occurs during the merge, the changes need to be handled manually. When using VSCode, for example, a new tab opens so you can intuitively choose how to resolve the conflicts and continue with the project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6nhnof8d66y3ecgmau1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6nhnof8d66y3ecgmau1.png" alt="Image description" width="800" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step by step&lt;/strong&gt;&lt;br&gt;
First, you need to be on the branch where you want to combine the changes. To do this, use the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout [branch name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, you can merge the auxiliary branch with the target branch. Use the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git merge [branch name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pratical Exemple:&lt;/strong&gt; If you are on a branch called &lt;code&gt;auxiliary_branch&lt;/code&gt; and you want to merge it with the &lt;code&gt;master&lt;/code&gt; branch, execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout master
git merge auxiliar_branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the changes from &lt;code&gt;auxiliary_branch&lt;/code&gt; are now integrated into &lt;code&gt;master&lt;/code&gt;. &lt;strong&gt;Always check that you are on the correct branch before merging&lt;/strong&gt; to avoid unwanted conflicts.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>github</category>
    </item>
    <item>
      <title>GitHub: learning about the feature called Issues☕</title>
      <dc:creator>Vinícius Machado de Souza</dc:creator>
      <pubDate>Fri, 20 Sep 2024 13:07:31 +0000</pubDate>
      <link>https://forem.com/ledsifes/github-learning-about-the-feature-called-issues-2ifm</link>
      <guid>https://forem.com/ledsifes/github-learning-about-the-feature-called-issues-2ifm</guid>
      <description>&lt;h2&gt;
  
  
  What is an "issue" about?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Issues are used to track bugs and suggest improvements, providing a step-by-step control of our project. To reference a commit to an issue, simply add &lt;code&gt;#[issue number]&lt;/code&gt; after the sentence in the commit command. Example:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m “my example #1”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To close an issue, the command used is:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m “issue closed closes #1”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To indicate that the issue has been fixed, we use the following command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "issue fixed fixes #1"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step-by-step guide to using Issues:
&lt;/h2&gt;

&lt;p&gt;1.Access a GitHub repository where the "Issues" feature is enabled.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49owwu05odkd3x8qxt09.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49owwu05odkd3x8qxt09.png" alt="Feature Issues active" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;2.Go to the "Issues" tab located next to "Code" to view the existing Issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhn1ruulov7a2bwjkyr13.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhn1ruulov7a2bwjkyr13.png" alt="Issues tab" width="508" height="137"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;3.Create a new Issue by clicking the "New Issue" button next to "Labels" and "Milestones."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fep7a1et31husm5b2ty4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fep7a1et31husm5b2ty4v.png" alt="Button to create an Issue" width="486" height="77"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;4.Now you have access to various tools for creating an Issue, starting with the basics: a title and a detailed description of the topic being addressed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsuwg3ktm17ssq6y9uxhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsuwg3ktm17ssq6y9uxhj.png" alt="Tools to write an issue" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;5.On the side, there are tools to help manage Issues. First, there’s "Assignees," which refers to the people responsible for working on the Issue. Then, "Labels," which act as tags to categorize different types of Issues. "Milestone" is essentially a goal or target to be achieved. In the "Development" section, you’ll see branches and pull requests related to that Issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwovd3uqpdmtmvaayh79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwovd3uqpdmtmvaayh79.png" alt="Management tools" width="348" height="495"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;6.Now that the Issue has been created, comments can be added to allow team members to collaborate and resolve the Issue. Below, if you are the owner or a collaborator of the repository, you can close the Issue in two ways: "Close as completed," which means the issue was resolved, or "Close as not planned," meaning the issue wasn’t resolved or something else happened.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwl4bf35oqkrd2q30m9q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwl4bf35oqkrd2q30m9q.png" alt="After posting the issue" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;7.After creating the Issue, there are some additional options if you are the owner or a collaborator of the repository. "Lock conversation" removes the permission for other users to comment on the Issue. "Pin issue" allows you to pin up to three Issues to the top. "Transfer Issue" moves the Issue to another repository without deleting it from the current one. "Delete Issue" completely removes the Issue instead of simply closing it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqzolbcdssl97nzwu5jn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqzolbcdssl97nzwu5jn.png" alt="Tools for issue creators" width="173" height="173"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you liked this post and it helped you better understand a GitHub feature, how about checking out other posts about Git and GitHub? Take a look at the link ahead! &lt;a href="https://dev.to/ledscolatina/forks-in-github-39l7"&gt;Forks in GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>beginners</category>
      <category>firstpost</category>
      <category>learning</category>
    </item>
    <item>
      <title>Introduction to "branch"</title>
      <dc:creator>Heloisa Louzada B. Gomes</dc:creator>
      <pubDate>Thu, 19 Sep 2024 14:51:41 +0000</pubDate>
      <link>https://forem.com/ledsifes/introducao-sobre-branch-3pmn</link>
      <guid>https://forem.com/ledsifes/introducao-sobre-branch-3pmn</guid>
      <description>&lt;p&gt;Today, we’re going to talk about an essential concept for using Git and GitHub: branches. For this post, we’ll assume you are already familiar with the concepts of remote repository, local repository, stage, and commit; that you have already installed Git on your machine and created an account on &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. If you're not familiar with these concepts, check out the introductory post about Git in the following link (&lt;a href="https://dev.to/ledscolatina/initial-introduction-to-git-and-github-4apc"&gt;https://dev.to/ledscolatina/initial-introduction-to-git-and-github-4apc&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Branches?
&lt;/h2&gt;

&lt;p&gt;A branch is essentially an independent environment where your commits are organized. Simplified, you can think of branches as parallel timelines where changes are made without interfering with others. Imagine the "multiverse" concept from Spider-Man: each version of the hero has its own timeline, and their actions do not affect the others, but when merged, they can create conflicts. Similarly, branches are separate environments where you can work without affecting the main code.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do Branches Work?
&lt;/h2&gt;

&lt;p&gt;When a project is created, it typically starts with a branch called master (or main, in the case of a clone), which is where the main code is maintained. If you want to add new features without compromising the existing functional code, the best practice is to create a new branch. This way, you can make commits and tests without affecting the main branch until everything is ready to be integrated (or even discarded, if necessary).&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Branch
&lt;/h2&gt;

&lt;p&gt;Let's imagine that you are starting a project in your local repository and then plan to push it to a remote repository.&lt;/p&gt;

&lt;p&gt;When you start the project with &lt;code&gt;git init&lt;/code&gt;, Git automatically creates a main branch for you, called &lt;code&gt;master&lt;/code&gt; (or &lt;code&gt;main&lt;/code&gt;).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From this point, you can add files and make commits as usual. They will be recorded on the &lt;code&gt;master&lt;/code&gt; branch, as if they were steps in a continuous timeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwet5rb302kbojt6ej32y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwet5rb302kbojt6ej32y.png" alt="Image description" width="740" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the project is ready to be pushed to the remote repository on GitHub, we will start the step of linking the local repository to the remote one. To do this, you need to have a GitHub account and use some specific commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new repository on your GitHub account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feelt8inc5jnd2lf1lpza.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feelt8inc5jnd2lf1lpza.png" alt="Image description" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the "&amp;lt;&amp;gt; Code" button and copy the URL of your remote repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzyv4hqp1orong1k5n8j1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzyv4hqp1orong1k5n8j1.png" alt="Image description" width="800" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the git terminal, use the command &lt;code&gt;git remote add origin [remote repository URL]&lt;/code&gt; to link your local repository to the remote one.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add origin https://github/user/repository_name.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To push your files to the remote repository, use a variation of the &lt;code&gt;git push&lt;/code&gt; command. Since the repository was not cloned and we need to connect it to the remote repository, you need to specify the name of the branch you want to push, as the newly created repository does not yet have any bran
ches. The command is: &lt;code&gt;git push origin [branch-name]&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Navigating Between Branches
&lt;/h2&gt;

&lt;p&gt;Next, let's start a new branch. This allows you to work on a separate branch where your changes won't affect what has already been done on the main branch.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To create a new branch, use the command &lt;code&gt;git branch [branch-name]&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch new_branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If you want to create and immediately switch to the new branch, use &lt;code&gt;git checkout -b [branch-name]&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b new_branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this way, the files and commits added to this new branch will not be visible on the &lt;code&gt;master&lt;/code&gt; branch, and vice versa. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jz2ltvwl5r0tcpgw7ez.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jz2ltvwl5r0tcpgw7ez.png" alt="Image description" width="800" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To switch between branches, simply use the command &lt;code&gt;git checkout [branch-name]&lt;/code&gt;. This is useful when you need to quickly switch between different parts of the project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Finalizing: Merge
&lt;/h2&gt;

&lt;p&gt;Suppose your modifications were successful, and now you want to integrate the new features into the main branch. For this, a powerful concept called &lt;strong&gt;merge&lt;/strong&gt; comes into play. Want to know how it works? Stay tuned for the next post!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/ledscolatina/introduction-to-git-merge-5598"&gt;Post about merge =D&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>github</category>
    </item>
    <item>
      <title>Initial introduction to Git and github</title>
      <dc:creator>Joel Hanerth</dc:creator>
      <pubDate>Thu, 19 Sep 2024 14:41:57 +0000</pubDate>
      <link>https://forem.com/ledsifes/initial-introduction-to-git-and-github-4apc</link>
      <guid>https://forem.com/ledsifes/initial-introduction-to-git-and-github-4apc</guid>
      <description>&lt;p&gt;If you're a developer or just starting to program, you've probably heard of Git and GitHub. These tools are essential in the world of software development, especially for those working in teams or on open-source projects. But what exactly are they, and why are they so important?&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is Git?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Git is a distributed version control system created by Linus Torvalds in 2005. It allows developers to track changes in code, collaborate on different features, and revert changes when necessary. Git makes team collaboration easier since each developer can have their local copy of the repository and integrate their contributions into the main project in a controlled manner.&lt;br&gt;
Version control is also extremely useful for maintaining the project's history, enabling you to "go back in time" and see how the code evolved, or even revert to a previous state if something isn't working as expected.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What is GitHub?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;GitHub is an online platform that hosts Git repositories. It adds a user-friendly interface and several extra features to collaborate with other developers. Besides storing repositories, GitHub offers tools such as pull requests, issues, and projects, making collaboration management and tracking bugs and new features easier.&lt;br&gt;
Another important point is that GitHub has become one of the main platforms for open-source development, allowing developers worldwide to collaborate on a wide variety of projects.&lt;br&gt;
With Git and GitHub, you not only have a powerful way to manage code locally but also a space to share your work and collaborate globally.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;How to create a repository on GitHub:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Access GitHub:&lt;/strong&gt; Log in to your GitHub account. If you don’t have an account, create one at &lt;a href="//github.com"&gt;github.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Create a new Repository:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the upper-right corner of the screen, click the "+" icon and then click &lt;strong&gt;New repository&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvgrs2v2vkhh7d5lv9i4.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvgrs2v2vkhh7d5lv9i4.PNG" alt="Image description" width="800" height="72"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqunzj9sfh2pzkrk3h2p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqunzj9sfh2pzkrk3h2p.jpg" alt="Image description" width="800" height="76"&gt;&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fill in the repository information:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository name:&lt;/strong&gt; Give your repository a name (for example, "my-project").
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description (optional):&lt;/strong&gt; Add a brief description of the project.
&lt;/li&gt;
&lt;li&gt;Choose whether you want the repository to be &lt;strong&gt;Public&lt;/strong&gt; or &lt;strong&gt;Private&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can check the option to add a &lt;code&gt;README&lt;/code&gt; file if you want the repository to have an initial description.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9f66rwjfaz4aj5g3zh3n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9f66rwjfaz4aj5g3zh3n.jpg" alt="Image description" width="800" height="429"&gt;&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Create the Repository:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After filling in the details, click &lt;strong&gt;Create repository&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;GitHub will create the repository and show the repository URL, which you will use to clone it into your Visual Studio.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftn1t7ojyo970y4p5lbrg.jpg" alt="Image description" width="800" height="243"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Cloning the repository in Visual Studio&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now that you've created the repository on GitHub, you can clone it to your local machine and start working on it.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Steps to clone a repository in the Visual Studio terminal:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Visual Studio.
&lt;/li&gt;
&lt;li&gt;Open the Integrated Terminal.
&lt;/li&gt;
&lt;li&gt;Navigate to the desired folder.
&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;git clone&lt;/code&gt; command:

&lt;ul&gt;
&lt;li&gt;In GitHub, copy the repository URL (HTTPS or SSH).
&lt;/li&gt;
&lt;li&gt;In Visual Studio's terminal, type the following command:
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   git clone &amp;lt;repository_url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;5.Result:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git will clone the repository into the current folder, and you'll see something like this in the terminal:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   Cloning into 'my-project'...
   remote: Counting objects: 100, done.
   remote: Compressing objects: 100% (XXX/XXX), done.
   Receiving objects: 100% (XXX/XXX), done.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;6.Navigate to the Cloned Repository:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now, go to the folder of the cloned repository:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   cd my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;YOU’RE READY TO START!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you haven’t previously configured Git on your machine, you won’t be able to clone the repository successfully. Before trying the &lt;code&gt;git clone&lt;/code&gt; command, ensure Git is configured using the following commands in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These commands configure the global username and email in your Git environment, which will be used when making commits. If Git isn’t configured, you may encounter errors when interacting with repositories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's get to work!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that you've cloned your repository, let's create a file, add it to version control, and explore Git's essential commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Creating a File and Using Basic Commands&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Create a file:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Visual Studio, create a new file at the root of your project, for example, a file named &lt;code&gt;index.html&lt;/code&gt;. In the terminal, you can do this with the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Or simply create the file in the Visual Studio editor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Check the Repository Status:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To see what has changed in your repository, use the &lt;code&gt;git status&lt;/code&gt; command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Untracked files:
  (use "git add &amp;lt;file&amp;gt;..." to include in what will be committed)
      index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This means Git has detected the &lt;code&gt;index.html&lt;/code&gt; file but is not tracking it yet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;code&gt;git add&lt;/code&gt; Command&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;3. Add Files to Version Control:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To start tracking changes to a file, use the &lt;code&gt;git add&lt;/code&gt; command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If you want to add all modified or created files, you can use:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Now the files are ready to be committed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;code&gt;git commit&lt;/code&gt; Command&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;4. Committing Changes:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A commit records changes to the repository. To create a commit, use the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "Adds index.html file"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The &lt;code&gt;-m&lt;/code&gt; flag allows you to add a descriptive message for the commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;code&gt;git log&lt;/code&gt; Command&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;5. Check Commit History:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To see the history of commits made in the repository, use the &lt;code&gt;git log&lt;/code&gt; command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This is the default log option, but Git offers some useful options to simplify and customize the &lt;code&gt;git log&lt;/code&gt; output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Using &lt;code&gt;git log --oneline&lt;/code&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;oneline&lt;/strong&gt; mode compresses the display of commits into a single line per commit, showing only the short hash and commit message.
Command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  git log --oneline
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Using &lt;code&gt;git log --graph&lt;/code&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;git log --graph&lt;/code&gt; command displays the commits in a graph format, allowing you to visually see the structure of branches and merges.
Command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  git log --graph
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Combining &lt;code&gt;git log --graph --oneline --all&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can combine several options for a more comprehensive and simple view of the commit history. Combining &lt;code&gt;--graph&lt;/code&gt;, &lt;code&gt;--oneline&lt;/code&gt;, and &lt;code&gt;--all&lt;/code&gt; (which shows commits from all branches - you can know more about branches &lt;a href="https://dev.to/ledscolatina/introducao-sobre-branch-3pmn"&gt;here&lt;/a&gt;) is particularly useful for a clear view of the project's history.
Command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  git log --graph --oneline --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output (example):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  * a1b2c3d (HEAD -&amp;gt; master) Adds new feature
  | * 9e8f7g6 (feature) Fixes bug in feature branch
  |/
  * 5h4i3j2 Refactors code for improvements
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;code&gt;git checkout&lt;/code&gt; Command&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This command has multiple uses, but I'll cover just two:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Revert Changes:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If you make changes to a file and want to return to the last committed state, use the &lt;code&gt;git checkout&lt;/code&gt; command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This will undo changes made to &lt;code&gt;index.html&lt;/code&gt; that haven't been committed yet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. View Project at a Specific Commit:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You can use the &lt;code&gt;git checkout&lt;/code&gt; command to "look" at how the project was at a particular commit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout [commit_hash]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Pushing and Updating the Remote Repository&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now that you've made local changes, you might want to push these changes to the remote repository (GitHub) or pull the latest changes someone else made in the repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;code&gt;git pull&lt;/code&gt; Command&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;8. Update Local Repository:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before pushing your changes, it's a good practice to ensure your local copy is up to date with the remote repository. To do this, use:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;git pull&lt;/code&gt; command brings changes from the remote repository to your local machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;code&gt;git push&lt;/code&gt; Command&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;9. Push Your Changes to the Remote Repository:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now, you can push your local commits to GitHub with the &lt;code&gt;git push&lt;/code&gt; command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This will push your changes to the &lt;code&gt;master&lt;/code&gt; or &lt;code&gt;main&lt;/code&gt; branch on the remote repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Did you like the post 🤔?  Are you interested in learning more about Git features? Visit: &lt;a href="https://dev.to/ledscolatina/introducao-sobre-branch-3pmn"&gt;Introduction to branch&lt;/a&gt; 😉&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to use Git Stash</title>
      <dc:creator>João Ricardo Mattedi Cetto</dc:creator>
      <pubDate>Thu, 19 Sep 2024 14:36:23 +0000</pubDate>
      <link>https://forem.com/ledsifes/how-to-use-git-stash-1dgj</link>
      <guid>https://forem.com/ledsifes/how-to-use-git-stash-1dgj</guid>
      <description>&lt;p&gt;While you work on a project in Git, you may encounter situations where you need to temporarily set aside your current work to switch branches or handle other tasks. In these cases, committing the changes of an uncompleted work isn’t always ideal. This is where the command “git stash” becomes useful. With this feature, you can save your uncommitted changes and clean up your workspace, it allows you to return to them later without losing progress. In this post, we’ll explore how to effectively use this feature and some key commands to manage your stashes.&lt;/p&gt;

&lt;h2&gt;
  
  
  STASH
&lt;/h2&gt;

&lt;p&gt;In Git, the git stash command allows you to temporarily save changes made in your working directory without committing them. This is particularly useful when you’re working on a project but need to switch branches or handle another task without losing your uncommitted changes, which may not yet be ready to commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does &lt;code&gt;git stash&lt;/code&gt; work?
&lt;/h2&gt;

&lt;p&gt;When you use &lt;code&gt;git stash&lt;/code&gt;, it stores changes from both the working directory and the index (staging area), cleaning up your workspace and allowing you to switch focus to another part of the project. These changes are saved in a "stash stack," which allows you to retrieve them later when you’re ready to continue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Commands
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git stash&lt;/code&gt;: Saves uncommitted changes in a temporary stash and cleans up  the working directory.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git stash apply&lt;/code&gt;: Reapplies the stashed changes without removing them - from the stash stack.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git stash pop&lt;/code&gt;: Restores the stashed changes and removes them from the stash stack.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git stash list&lt;/code&gt;: Lists all saved stashes.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git stash drop [stash_id]&lt;/code&gt;: Removes a specific stash from the list.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git stash clear&lt;/code&gt;: Removes all stashes from the stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using stash
&lt;/h2&gt;

&lt;p&gt;Scenario:&lt;br&gt;
You're working on a new feature in your project, but a bug appears and you need to switch branches to fix it. You don't want to commit your incomplete work yet, but also don't want to lose your changes.&lt;/p&gt;
&lt;h2&gt;
  
  
  Steps to stash:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Current Situation: You've made several changes to files while working on the feature-branch. Use the command &lt;code&gt;git add .&lt;/code&gt; to add your work in progress (WIP) to the stage and, with &lt;code&gt;git status&lt;/code&gt; you'll see that your WIP is in the stage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git status
On branch feature-branch
Changes to be committed:
  (use "git restore --staged &amp;lt;file&amp;gt;..." to unstage)
        modified:   teste/testando.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Save the Changes to temporarily save your work without committing it, use &lt;code&gt;git stash&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git stash
Saved working directory and index state WIP on feature-branch: 7e9ca1a first commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Fix the bug on main, commit the changes, and push them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Return to Your Feature Branch once the bug fix is done with &lt;code&gt;git checkout feature-branch&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.&lt;/strong&gt; Reapply Your Stashed Changes using &lt;code&gt;git stash pop&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git stash pop
On branch feature-branch
Changes not staged for commit:
  (use "git add &amp;lt;file&amp;gt;..." to update what will be committed)
  (use "git restore &amp;lt;file&amp;gt;..." to discard changes in working directory)
        modified:   teste/testando.txt

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (8e60d99fc7d822c5c0c67b7c3f709d2085026eb2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Obs:&lt;/strong&gt; This command applies your saved changes back to the working directory and removes them from the stash list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Did you enjoy the post? If you’d like to explore more Git and GitHub features, check out: &lt;a href="https://dev.to/ledscolatina/forks-in-github-39l7"&gt;Forks in GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Forks in GitHub</title>
      <dc:creator>João Ricardo Mattedi Cetto</dc:creator>
      <pubDate>Thu, 19 Sep 2024 13:07:55 +0000</pubDate>
      <link>https://forem.com/ledsifes/forks-in-github-39l7</link>
      <guid>https://forem.com/ledsifes/forks-in-github-39l7</guid>
      <description>&lt;p&gt;In this post, I will introduce a important Git/GitHub feature: Forks &lt;/p&gt;

&lt;h2&gt;
  
  
  FORK
&lt;/h2&gt;

&lt;p&gt;A fork creates an exact copy of the original repository within the user’s profile, while maintaining a link to the source repository. The primary purpose of a fork is to allow users to modify the original project, experiment with new features, or contribute to the project without directly impacting the main repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  MAIN USES OF FORK
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Collaboration in Open-Source Projects: Developers can contribute to projects without needing direct permission from the original repository;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Project Personalization: Users can make modifications to suit their specific needs while maintaining a separate repository.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  HOW TO MAKE A FORK?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Navigate to the repository you wish to fork and click on the "Fork" option:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7momjzlecv4999bd2jp7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7momjzlecv4999bd2jp7.png" width="800" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Create your fork by selecting the repository:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0z83cfcbe0fu5f63t8et.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0z83cfcbe0fu5f63t8et.png" width="737" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Copy the clone link of your forked repository to your local machine. You can then make changes or implement new features:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpqycd2j7vzhzfnz2gjyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpqycd2j7vzhzfnz2gjyn.png" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Clone the repository in your IDE and begin coding!!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git clone https://github.com/JoaoRicardoCetto/RNA-Evolutiva-C-.git
Cloning into 'RNA-Evolutiva-C-'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), 4.74 KiB | 4.74 MiB/s, done.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5.&lt;/strong&gt; Enter the local repository, open the folder in your IDE, make your modifications, add them to the stage, commit and push it to make a pull request.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git commit -am "adding to the stage and committing"
warning: in the working copy of '.vscode/settings.json', LF will be replaced by CRLF the next time Git touches it
[main eedc221] adding to the stage and committing
 1 file changed, 1 insertion(+), 1 deletion(-)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6.&lt;/strong&gt; Once you have made your changes and committed them, you can create a pull request to the main repository, suggesting your modifications to be merged into the original project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS:&lt;/strong&gt; To incorporate commits and updates from the upstream repository into your fork, use the following command: &lt;code&gt;git pull upstream main&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This command fetches the latest changes from the upstream repository’s main branch and merges them into your local fork. Make sure you've previously set up the upstream repository with the correct URL: &lt;br&gt;
&lt;code&gt;git remote add upstream https://github.com/Owner-Name/Repository-You-Forked&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This ensures that your fork stays in sync with the original project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Did you enjoy the post? If you’d like to explore more Git and GitHub features, check out: &lt;a href="https://dev.to/ledscolatina/how-to-use-git-stash-1dgj"&gt;How to use Git Stash&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>github</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>JIRA - Padrões de Escrita de Issues</title>
      <dc:creator>Sofia de Alcantara</dc:creator>
      <pubDate>Wed, 18 Sep 2024 20:18:11 +0000</pubDate>
      <link>https://forem.com/ledsifes/jira-padroes-de-escrita-de-issues-4feo</link>
      <guid>https://forem.com/ledsifes/jira-padroes-de-escrita-de-issues-4feo</guid>
      <description>&lt;p&gt;&lt;strong&gt;Objetivo do Documento:&lt;/strong&gt; Detalhar como a escrita de Epics, User Stories e Subtasks no Jira devem se feita, tomando como base a documentação de Análise. Como exemplo, usaremos os Casos de Uso "Cadastrar Resolução", "Cadastrar Modalidade" e "Cadastrar Nível".*&lt;/p&gt;

&lt;h2&gt;
  
  
  Quais são os tipos de itens (issues) no Jira?
&lt;/h2&gt;

&lt;p&gt;O Jira tem diferentes tipos de itens para categorização do trabalho. Como issues default, nessa ordem de hierarquia, temos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Epic:&lt;/strong&gt; Representa um grande volume de trabalho. &lt;strong&gt;Correspondem aos Casos de Uso.&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Story (US):&lt;/strong&gt; Representa um requisito expresso, comumente a partir da perspectiva do usuário. Seu objetivo é articular como um recurso de software pode gerar valor para o cliente. &lt;strong&gt;Correspondem aos Eventos dos Casos de Uso&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subtask:&lt;/strong&gt; Representa a divisão mais granular do trabalho necessário para concluir um item padrão.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  O que são itens vinculados?
&lt;/h3&gt;

&lt;p&gt;Além da relação pai-filho entre itens, também é existem as dependências entre as tarefas. Essa associação pode ser representada com facilidade no Jira ao vincular itens. As associações prontas para uso são:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;bloqueia/é bloqueado por&lt;/li&gt;
&lt;li&gt;clona/é clonado por&lt;/li&gt;
&lt;li&gt;duplica/é duplicado por&lt;/li&gt;
&lt;li&gt;Relacionado a&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sendo as dependências 1 e 4 as de maior interesse. Todos os itens vinculados são exibidos em cada item. Isso torna mais fácil para as equipes navegar entre o trabalho conectado e exibir as dependências.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que são itens pai e filho?
&lt;/h2&gt;

&lt;p&gt;Pai e filho são termos que descrevem um tipo de relacionamento entre itens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Um item pai é um item que fica um nível acima de outro item, por exemplo, uma US composta de subtarefas.&lt;/li&gt;
&lt;li&gt;Um item filho é um item que fica um nível abaixo de outro item, por exemplo, uma US que pertence a um Epic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O relacionamento entre pai e filho não se limita a tipos de itens específicos. Em vez disso, qualquer tipo de item pode ser um item de pai e filho. A única exceção são as subtarefas, que só podem ser um item filho, já que não há nenhum tipo de item abaixo dela na hierarquia.&lt;/p&gt;

&lt;h1&gt;
  
  
  Exemplo de Construção de Tarefas
&lt;/h1&gt;

&lt;p&gt;Tomando como base a documentação "Especificação de Análise – Módulo Cadastro de Modalidades de Bolsas", veja os casos de usos que serão utilizados como exemplo:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;ID&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Caso de Uso&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Eventos&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;UC01&lt;/td&gt;
&lt;td&gt;Controlar Modalidade de Bolsa&lt;/td&gt;
&lt;td&gt;Listar Modalidade, Incluir Modalidade, Criar Versão de Modalidade, Alterar Versão da Modalidade, Ativar Versão da Modalidade, Consultar Modalidade, Excluir Versão de Modalidade, Desativar Modalidade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UC02&lt;/td&gt;
&lt;td&gt;Cadastrar Resolução&lt;/td&gt;
&lt;td&gt;Listar Resolução, Incluir Resolução, Alterar Resolução, Consultar Resolução, Excluir Resolução&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UC03&lt;/td&gt;
&lt;td&gt;Cadastrar Nível de Bolsa&lt;/td&gt;
&lt;td&gt;Listar Nível, Incluir Nível, Alterar Nível, Consultar Nível, Excluir Nível&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Atente-se as correspondências: &lt;strong&gt;Casos de Usos tornam-se Epics&lt;/strong&gt;, que são comuns a todas as equipes.&lt;br&gt;
Já os &lt;strong&gt;Eventos dos Casos de Uso tornam-se Histórias de Usuário&lt;/strong&gt;;&lt;/p&gt;

&lt;p&gt;As subtarefas são específicas para cada time (FrontEnd, BackEnd, Design, Análise, etc...) e devemos utilizar a propriedade "Categorias" para indicar o time responsável pela subtarefa em questão. Veja o exemplo abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgppxr1ijkukixtoujfdn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgppxr1ijkukixtoujfdn.png" alt="Image description" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ledscommunity</category>
    </item>
    <item>
      <title>Manual de uso Immigrant - Jira</title>
      <dc:creator>André Coelho</dc:creator>
      <pubDate>Mon, 03 Jun 2024 17:40:28 +0000</pubDate>
      <link>https://forem.com/ledsifes/manual-de-uso-immigrant-jira-4m86</link>
      <guid>https://forem.com/ledsifes/manual-de-uso-immigrant-jira-4m86</guid>
      <description>&lt;h2&gt;
  
  
  Visão geral
&lt;/h2&gt;

&lt;p&gt;O Immigrant - Jira é uma abordagem baseada em ontologia que auxilia na identificação das necessidades de informação da organização, recuperando dados do Jira e fornecendo dados integrados que atendam às necessidades de informação.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pré-requisitos
&lt;/h3&gt;

&lt;p&gt;1- Python&lt;br&gt;
2- Docker&lt;br&gt;
3- Java 17&lt;/p&gt;
&lt;h2&gt;
  
  
  Infraestrutura
&lt;/h2&gt;

&lt;p&gt;Fornece a infraestrutura base necessária para rodar o projeto.&lt;/p&gt;
&lt;h3&gt;
  
  
  Passo a Passo
&lt;/h3&gt;

&lt;p&gt;1- &lt;strong&gt;Clone o repositório:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://gitlab.com/immigrant-data-driven-development/infrastructure/base-infrastructure.git
&lt;span class="nb"&gt;cd &lt;/span&gt;base-infrastructure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2- &lt;strong&gt;Crie um arquivo &lt;code&gt;.env&lt;/code&gt; com o seguinte conteúdo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DEBEZIUM_VERSION=2.0
COMPOSE_PROJECT_NAME=immigrant-cdc-infrastructure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3- &lt;strong&gt;Inicialize o Docker:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4- &lt;strong&gt;Verifique a aplicação na URL:&lt;/strong&gt; &lt;a href="http://localhost:19000" rel="noopener noreferrer"&gt;http://localhost:19000&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Jira Extractor
&lt;/h2&gt;

&lt;p&gt;O Jira Extractor é uma ferramenta para extrair dados do Jira. Ele utiliza a biblioteca jiraX para a extração e Apache Kafka para colocar os dados em uma fila.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo a Passo
&lt;/h3&gt;

&lt;p&gt;1- &lt;strong&gt;Clone o repositório:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://gitlab.com/immigrant-data-driven-development/etl/extract/jira-extract.git
&lt;span class="nb"&gt;cd &lt;/span&gt;jira-extract
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2- &lt;strong&gt;Crie um arquivo &lt;code&gt;.env&lt;/code&gt; com o seguinte conteúdo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TOPIC=application.jira.extract
SERVERS=kafka:29092
GROUP_ID=extract_jira_group

URL={url do projeto}
USERNAME={seu email}
SECRET={api token}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3- &lt;strong&gt;Inicialize o Docker:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4- &lt;strong&gt;Testando com o &lt;code&gt;producer.py&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Crie e ative um ambiente virtual Python:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; venv &lt;span class="nb"&gt;env
source env&lt;/span&gt;/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instale as dependências:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install -r src/requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rode o producer:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python src/producer.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo dos dados enviados pelo producer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;URL&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;USERNAME&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;secret&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SECRET&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;        
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5- &lt;strong&gt;Verifique os tópicos gerados na URL:&lt;/strong&gt; &lt;a href="http://localhost:19000" rel="noopener noreferrer"&gt;http://localhost:19000&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F17fjx5ajy1gcq1dy6z9k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F17fjx5ajy1gcq1dy6z9k.png" alt="Tópicos Kafka" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  SRO - Transform and Load
&lt;/h2&gt;

&lt;p&gt;É o componente responsável por mapear o modelo do Jira para o banco de dados SRO.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo a Passo
&lt;/h3&gt;

&lt;p&gt;1- &lt;strong&gt;Execute o serviço do Transform and Load:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clone o repositório:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://gitlab.com/immigrant-data-driven-development/services/domain/sro.git
&lt;span class="nb"&gt;cd &lt;/span&gt;sro/webservice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Execute o serviço:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ou&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn clean &lt;span class="nb"&gt;install
&lt;/span&gt;mvn spring-boot:run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2- &lt;strong&gt;Execute o Transform and Load:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clone o repositório:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://gitlab.com/immigrant-data-driven-development/etl/transform-and-load/sro.git
&lt;span class="nb"&gt;cd &lt;/span&gt;sro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Crie um arquivo &lt;code&gt;.env&lt;/code&gt; com o seguinte conteúdo:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;KAFKA_SERVER=kafka
KAFKA_PORT=29092
DB_URL=db-pg
DB_PORT=5432
DB_NAME=sro
DB_USERNAME=postgres
DB_PASSWORD=postgres
SERVER_ETL_PORT=8091
MONGO_HOST=mongo
MONGO_DB=sro
MONGO_PORT=27017
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Execute o Transform and Load:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ou&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn clean &lt;span class="nb"&gt;install
&lt;/span&gt;mvn spring-boot:run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3- &lt;strong&gt;Verifique se os dados esperados estão no banco postgres gerado.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Exemplo de projeto convertido para o banco de dados SRO&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxx1a89ulqpybiy4uh5tu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxx1a89ulqpybiy4uh5tu.png" alt="Projeto" width="590" height="45"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitlab.com/immigrant-data-driven-development" rel="noopener noreferrer"&gt;Link do repositório do Immigrant&lt;/a&gt;&lt;br&gt;
Neste repositório temos o Immigrant de forma completa.&lt;/p&gt;

</description>
      <category>ledscommunity</category>
    </item>
    <item>
      <title>Manual de Uso R2D2</title>
      <dc:creator>João Marcos Rodrigues Pimentel</dc:creator>
      <pubDate>Mon, 03 Jun 2024 16:44:23 +0000</pubDate>
      <link>https://forem.com/ledsifes/manual-de-uso-r2d2-3aog</link>
      <guid>https://forem.com/ledsifes/manual-de-uso-r2d2-3aog</guid>
      <description>&lt;p&gt;Este manual descreve o uso da extensão de Visual Studio Code geradora de código e documentação R2D2. &lt;/p&gt;

&lt;h3&gt;
  
  
  Instalação:
&lt;/h3&gt;

&lt;p&gt;1- Abra o Visual Studio Code&lt;br&gt;
2- Clique em extensões&lt;br&gt;
3- Pesquise R2D2&lt;br&gt;
4- Clique para instalar a extensão R2D2 do LEDS IFES&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3i2scynb37lq8wq3bv46.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3i2scynb37lq8wq3bv46.png" alt="Imagem da loja do VSCode com a extensão aberta" width="800" height="173"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Como usar:
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Criando o arquivo para geração:
&lt;/h4&gt;

&lt;p&gt;1- Crie um arquivo de nome qualquer com a extensão .r2d2.&lt;br&gt;
2- Após criar o arquivo, abra-o.&lt;br&gt;
3- Aqui iniciaremos a programação da geração de código. Primeiro, definimos a configuração do projeto a ser gerado. Para fins de exemplo, vamos seguir o modelo de exemplo do Slave-One (Outro projeto do Leds). Assim, definimos as configurações do projeto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   Configuration {
       software_name: "Slave-One" // O nome do projeto
       about: "Slave-one project example" // Uma descrição do projeto
       language: csharp-minimal-api // Escolha a linguagem em que o código será gerado
   }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para a linguagem, temos três opções por enquanto: python, java e csharp-minimal-api.&lt;br&gt;
4- Depois, definimos módulos. Assim, definimos um módulo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   module Main {
       // Aqui ficam os componentes dos módulos
   }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5- Dentro de módulos, definimos entidades e enums:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   entity Projeto {
       nome: string
       data_inicio: date
       data_fim: date
       orcamento: decimal
       cliente: string
       patrocinador: string
       objetivo: string
       Projeto OneToMany Projeto
       Projeto OneToMany Time
       Projeto uses ProjetoStatus
   }

   enum ProjetoStatus {
       Ativo
       Cancelado
       Entregue
   }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dentro da declaração de entidade, temos os seus atributos, como &lt;code&gt;nome: string&lt;/code&gt;, as relações entre as classes, como &lt;code&gt;Projeto OneToMany Projeto&lt;/code&gt;, e o &lt;code&gt;Projeto uses ProjetoStatus&lt;/code&gt;, que indica o uso de um enum. Na declaração do Enum, apenas colocamos quais os valores do enum. E assim continuamos a declarações com quantos módulos, entidades e enums forem necessários.&lt;/p&gt;

&lt;h4&gt;
  
  
  Rodando R2D2 para gerar o código:
&lt;/h4&gt;

&lt;p&gt;Após criar, estruturar e salvar o arquivo .r2d2, clique com o botão direito em qualquer lugar dentro do arquivo e escolha o que você deseja gerar &lt;strong&gt;(Na versão atual, o r2d2 gera apenas a API)&lt;/strong&gt;, como na imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rwpadxtgl2dl9dfylqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rwpadxtgl2dl9dfylqp.png" alt="Menu clique com botão direito no VSCode" width="554" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após isso, as pastas e o conteúdo serão gerados na mesma pasta em que o arquivo .r2d2 se encontra.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhyhn6xvlqwv1d7glhehy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhyhn6xvlqwv1d7glhehy.png" alt="Pastas com os conteúdos no explorador de arquivos" width="378" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Como utilizar o código gerado em C# no Visual Studio:
&lt;/h4&gt;

&lt;p&gt;1- Abra o arquivo da solução gerada no Visual Studio: Com o Visual Studio já instalado, apenas abra a pasta do backend e abra o arquivo com o nome do seu projeto &lt;code&gt;.sln&lt;/code&gt;.&lt;br&gt;
2- (Não ocorre em todos os casos) Correção da auto relação na entidade, caso tenha alguma auto relação, entre no arquivo .cs da entidade e faça a troca do nome da entidade para o nome desejado (um nome diferente do da própria entidade para evitar conflitos no C#)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ntrzlc8zwwgto8obugk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ntrzlc8zwwgto8obugk.png" alt="Exemplo da troca de nome" width="691" height="71"&gt;&lt;/a&gt;&lt;br&gt;
Depois disso, troque o nome da entidade também na relação dentro do &lt;code&gt;ContextDb.cs&lt;/code&gt;:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdb0ime3hy7yq6uuyck0l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdb0ime3hy7yq6uuyck0l.png" alt="Exemplo troca de nome dentro do ContextDb" width="800" height="75"&gt;&lt;/a&gt;&lt;br&gt;
Assim a auto relação funcionará corretamente.&lt;br&gt;
3- Apenas clique para rodar o container docker e código.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaf6zqgweiq63trb7iht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaf6zqgweiq63trb7iht.png" alt="Menu do Visual Studio com o botão para rodar" width="418" height="122"&gt;&lt;/a&gt;&lt;br&gt;
Após isso é só esperar tudo compilar, que ele abrirá uma página no seu navegador com o link da API, caso apareça uma página com Hello World tudo está funcionando.&lt;/p&gt;

&lt;h4&gt;
  
  
  Abrindo o Swagger:
&lt;/h4&gt;

&lt;p&gt;1- Já na página da API no navegador(Hello World), basta adicionar &lt;code&gt;/swagger&lt;/code&gt; ao final do link que entraremos na tela do swagger.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk4ob8mm33s3w3xmaxnr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk4ob8mm33s3w3xmaxnr.png" alt="Tela do Swagger" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Exemplo:
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://gitlab.com/joaomarcosrpimentel/exemplo-r2d2-slave-one" rel="noopener noreferrer"&gt;Link do repositório com o exemplo do Slave-One&lt;/a&gt;&lt;br&gt;
Neste repositório temos tudo o que foi gerado seguindo este manual.&lt;/p&gt;

</description>
      <category>ledscommunity</category>
      <category>langium</category>
      <category>codegenerator</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Levantando uma ASP.NET Web API em AWS ECS</title>
      <dc:creator>Bruno Caxias</dc:creator>
      <pubDate>Wed, 24 Apr 2024 17:10:11 +0000</pubDate>
      <link>https://forem.com/ledsifes/levantando-uma-aspnet-web-api-em-aws-ecs-2701</link>
      <guid>https://forem.com/ledsifes/levantando-uma-aspnet-web-api-em-aws-ecs-2701</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Este artigo tem como objetivo ensinar como é possível levantar uma imagem Docker de uma Web API em ASP.NET para AWS ECS utilizando o GitLab Container Registry e o AWS Academy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Antes de Começarmos
&lt;/h2&gt;

&lt;p&gt;Para poder utilizar o ECS da AWS, antes deve-se ter um registro de uma imagem Docker do seu projeto. Nesse caso, será utilizado como exemplo um registro no repositório do GitLab, mas também é possível utilizar outros registros como o do próprio Docker (DockerHub) ou o registro do ECR da AWS. Além disso, deve-se ter um cadastro na plataforma da AWS para uso das ferramentas. No caso deste artigo, será utilizado uma conta de estudante com acesso limitado a alguns módulos. Outro ponto a se considerar é a conexão da API com o banco de dados. No exemplo fornecido, a API está conectada a um banco levantado no próprio AWS por RDS, por meio de uma string de conexão no próprio código fonte.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Que é o ECS?
&lt;/h2&gt;

&lt;p&gt;De acordo com a &lt;a href="https://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/Welcome.html" rel="noopener noreferrer"&gt;documentação oficial da Amazon&lt;/a&gt;, o ECS é um serviço totalmente gerenciado de orquestração de contêineres que ajuda a implantar, gerenciar e dimensionar facilmente aplicações conteinerizadas. Sendo assim, esse serviço se encaixa perfeitamente para as necessidades desse artigo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Salvando a imagem Docker em um Registry
&lt;/h2&gt;

&lt;p&gt;Para esse exemplo será utilizado o Container Registry do GitLab para salvar e disponibilizar a imagem do Docker contendo o projeto.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Crie um repositório com o projeto que deseja dockerizar no GitLab.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ao criar o repositório, vá até &lt;strong&gt;Deploy -&amp;gt; Container Registry&lt;/strong&gt; na barra lateral.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F62npzzw9oxe8udl50cjw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F62npzzw9oxe8udl50cjw.png" alt="Container Registry" width="354" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Utilize os comandos mostrados na tela principal para realizar a publicação da imagem do Docker:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;docker login registry.gitlab.com&lt;/code&gt;&lt;br&gt;
&lt;code&gt;docker build -t [url do registro do projeto] .&lt;/code&gt;&lt;br&gt;
&lt;code&gt;docker push [url do registro do projeto]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Os comandos de build podem variar contendo outras tags dependendo do projeto, então é importante prestar atenção a esses cuidados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Levantando o ECS em AWS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Iniciando o Lab
&lt;/h3&gt;

&lt;p&gt;Para começar o levantamento do ECS, primeiro deve-se acessar o AWS Lab para ter acesso aos serviços.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0uyw5pwmeu8vpcs59as.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0uyw5pwmeu8vpcs59as.png" alt="Módulos" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em Start Lab, assim que o símbolo de AWS ficar verde clique nele.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmurgpu60o64fp8jvq8ee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmurgpu60o64fp8jvq8ee.png" alt="Start Lab" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Criando o ECS
&lt;/h3&gt;

&lt;p&gt;Após isso, na aba de pesquisa coloca-se ECS para encontrar o serviço.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhm7g6mjwxomi3x7hs9ah.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhm7g6mjwxomi3x7hs9ah.png" alt="Pesquisa ECS" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicando um ECS a seguinte tela deve aparecer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72malg9bi2rmcvq2ggz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72malg9bi2rmcvq2ggz3.png" alt="Tela ECS" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Crie um cluster para o serviço seguindo os passos, nesse caso será criado um cluster AWS Fargate (Sem servidor):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insira um nome para o cluster&lt;/li&gt;
&lt;li&gt;Selecione AWS Fargate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe75i4rr740mznmavwuwm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe75i4rr740mznmavwuwm.png" alt="Config ECS" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Criando tarefas para rodar no Cluster
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Acesse &lt;strong&gt;Definições da tarefa&lt;/strong&gt; na barra lateral.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftf2z9r3kq7fs7su42ge4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftf2z9r3kq7fs7su42ge4.png" alt="Definições da tarefa" width="291" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clique em &lt;strong&gt;Criar nova definição de tarefa&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Defina um nome para a tarefa.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0naqqd0cn1sa15vo6od.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0naqqd0cn1sa15vo6od.png" alt="Nome para tarefa" width="800" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configure os requisitos de infraestrutura, nesse caso será mantido o AWS Fargate no tipo de inicialização, o sistema operacional deve ser o sistema no qual o seu Docker irá rodar, o tamanho da tarefa deve ser definido a partir dos requisitos da sua Web API (Para APIs com muita computação é aconselhável alterar os valores).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0j20ubwaebfzyavaowu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0j20ubwaebfzyavaowu.png" alt="Config Infra Tarefa" width="800" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em funções da tarefa é interessante que em &lt;strong&gt;Função de execução de tarefas&lt;/strong&gt; seja selecionado um perfil com as permissões necessárias para as ações da API, ou no caso de contas de estudante (como a utilizada), seja selecionada uma opção permitida. Nesse caso, será utilizado o perfil LabRole.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01hfgf30umy3wha1zdxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01hfgf30umy3wha1zdxx.png" alt="Função de execução de tarefas" width="800" height="191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agora será o momento de configurar o container para que rode no cluster.

&lt;ul&gt;
&lt;li&gt;Comece colocando um nome para o contêiner, o link para a imagem  do Docker no repositório, mantenha a opção de &lt;strong&gt;Contêiner Essencial&lt;/strong&gt; como &lt;strong&gt;Sim&lt;/strong&gt;, caso as imagens do repositório sejam privadas é necessário a configuração de um Secrets Manager no AWS para autenticação e acesso a imagem no repositório.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6wcfspriu5ytip6zy8s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6wcfspriu5ytip6zy8s.png" alt="Detalhes do contêiner" width="800" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso não saiba, para conseguir o link para a imagem no repositório você deve ir em &lt;strong&gt;Deploy -&amp;gt; Container Registry&lt;/strong&gt; após ter publicado a imagem e clicar no botão de copiar ao lado do nome da imagem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvl1siwc92o4q81rmpzfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvl1siwc92o4q81rmpzfe.png" alt="Gitlab docker image link" width="315" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Em mapeamento de porta coloque a porta em que a API estará respondendo, no exemplo será a porta 8080. Caso queira o protocolo da aplicação pode ser alterado também (por exemplo HTTP2 para HTTPS).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0c3buoojd02uhd261h5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0c3buoojd02uhd261h5h.png" alt="Mapeamento de porta" width="800" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No caso do exemplo o resto das opções podem ser mantidas como padrão.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inserindo a tarefa no Cluster
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Acesse o Cluster e clique em Criar na aba de Tarefa.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7thsymo6tzjwpgp0kb1j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7thsymo6tzjwpgp0kb1j.png" alt="Aba de Tarefa" width="800" height="222"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Em &lt;strong&gt;Ambiente&lt;/strong&gt; selecione a opção &lt;strong&gt;Tipo de Inicialização&lt;/strong&gt; e mantenha em Fargate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx024uujrbz6j9g9f0156.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx024uujrbz6j9g9f0156.png" alt="Ambiente" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Em &lt;strong&gt;Configuração de Implantação&lt;/strong&gt; selecione &lt;strong&gt;Serviço&lt;/strong&gt;. No caso da Web API, selecione a família da tarefa criada para o cluster, atribua um nome, mantenha o tipo de serviço no padrão e coloque quantas tarefas irão ser inicializadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnz1u3zu1calysgeqsiv0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnz1u3zu1calysgeqsiv0.png" alt="Configuração de Implantação" width="800" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após isso, para esse exemplo pode-se manter o resto em padrão e clicar em Criar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acessar a API Web por IP Público
&lt;/h2&gt;

&lt;p&gt;Depois de criado o serviço no cluster basta acessar o cluster e na aba services selecionar o serviço criado.&lt;/p&gt;

&lt;p&gt;Na tela do serviço clique em Tarefas e clique na Tarefa do serviço.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ggs2lcl8852fxhrkc6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ggs2lcl8852fxhrkc6x.png" alt="Tarefa do serviço" width="800" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao clicar na tarefa, na aba de &lt;strong&gt;Configuração&lt;/strong&gt; será possível ver uma aba com o &lt;strong&gt;IP Público&lt;/strong&gt;, por meio desse IP será possível acessar a API externamente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrf1af2xbf7dh3to7p49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrf1af2xbf7dh3to7p49.png" alt="IP Público" width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lembre-se de colocar a porta que deve ser acessada, assim como os caminhos próprios da API na URL para verificar funcionalidade.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsbuivtl4votomxg8new.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsbuivtl4votomxg8new.png" alt="URL API" width="616" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Dessa forma, por meio desse artigo temos ao fim uma ASP.NET Web API Dockerizada rodando em ECS AWS. Essa publicação teve em mente detalhar e exemplificar melhor o processo de criação desse serviço utilizando imagens dos módulos. Por fim, é importante incentivar a leitura da documentação oficial do AWS assim como a busca por outros fóruns capazes de sanar dúvidas e questões relacionadas a passos específicos não elaborados suficientemente aqui.&lt;/p&gt;

</description>
      <category>ledscommunity</category>
      <category>tutorial</category>
      <category>aws</category>
      <category>aspnet</category>
    </item>
    <item>
      <title>Levantando um SQL Server RDS em AWS</title>
      <dc:creator>Bruno Caxias</dc:creator>
      <pubDate>Wed, 24 Apr 2024 15:56:14 +0000</pubDate>
      <link>https://forem.com/ledsifes/levantando-um-sql-server-rds-em-aws-31fe</link>
      <guid>https://forem.com/ledsifes/levantando-um-sql-server-rds-em-aws-31fe</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Este artigo tem como objetivo ensinar como é possível levantar um SQL Server em RDS por meio do AWS Academy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Antes de Começarmos
&lt;/h2&gt;

&lt;p&gt;Para poder utilizar o RDS do AWS, deve-se ter um cadastro na plataforma da AWS para uso das ferramentas. No caso deste artigo, será utilizado uma conta de estudante com acesso limitado a alguns módulos.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Que é o RDS?
&lt;/h2&gt;

&lt;p&gt;De acordo com a &lt;a href="https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Welcome.html" rel="noopener noreferrer"&gt;documentação oficial da Amazon&lt;/a&gt;, o Amazon Relational Database Service (Amazon RDS) é um serviço da Web que facilita a configuração, operação e escalabilidade de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional padrão do setor e gerencia tarefas comuns de administração de banco de dados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Levantando o RDS na AWS
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Iniciando o Lab
&lt;/h4&gt;

&lt;p&gt;Para começar o levantamento do ECS, primeiro deve-se acessar o AWS Lab para ter acesso aos serviços.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0uyw5pwmeu8vpcs59as.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0uyw5pwmeu8vpcs59as.png" alt="Módulos" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em "Start Lab". Assim que o símbolo da AWS ficar verde, clique nele.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmurgpu60o64fp8jvq8ee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmurgpu60o64fp8jvq8ee.png" alt="Start Lab" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Criando o RDS
&lt;/h4&gt;

&lt;p&gt;Após isso, na aba de pesquisa, coloca-se "RDS" para encontrar o serviço.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx918ftew75tnz38g0467.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx918ftew75tnz38g0467.png" alt="Pesquisa por RDS" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em RDS e acesse a opção de &lt;strong&gt;Instâncias de banco de dados&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5b523ljif72lkgge9pm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5b523ljif72lkgge9pm.png" alt="Clique em RDS" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em &lt;strong&gt;Criar Banco de Dados&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Na tela de criação, na aba de &lt;strong&gt;Escolher um método de criação de banco de dados&lt;/strong&gt;, devido às limitações da conta utilizada, a opção de &lt;strong&gt;Criação Fácil&lt;/strong&gt; é indisponível.&lt;/p&gt;

&lt;p&gt;Em &lt;strong&gt;Opções de Mecanismo&lt;/strong&gt;, selecione &lt;strong&gt;Microsoft SQL Server&lt;/strong&gt; e escolha a versão que deseja utilizar para o banco. No caso do exemplo, a versão será a seguinte:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F940trkwmvi67qdc1er36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F940trkwmvi67qdc1er36.png" alt="Opções de Mecanismo" width="722" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em modelos, escolha qual a fase do projeto que deseja utilizar. Para o exemplo, será utilizado a versão gratuita.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2oym50fdn51jtjhjhzh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2oym50fdn51jtjhjhzh.png" alt="Modelos de banco de dados" width="733" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na aba de configurações, defina o nome, usuário e senha do banco.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdvrw1mbhzp6mt6tj5ami.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdvrw1mbhzp6mt6tj5ami.png" alt="Configurações do banco de dados" width="721" height="702"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As senhas podem ser salvas em AWS Secret Manager, mas aqui será utilizado um Autogerenciado.&lt;/p&gt;

&lt;p&gt;Para o resto das configurações, pode-se manter em padrão.&lt;/p&gt;

&lt;p&gt;Caso queira acessar seu banco externamente, é necessário fazer alterações nas configurações de &lt;strong&gt;Conectividade&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmzmyjhgvtj5jcghq595.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmzmyjhgvtj5jcghq595.png" alt="Conectividade" width="718" height="858"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nas opções, é possível vincular o banco a uma instância EC2 já existente no AWS e também é possível ativar o &lt;strong&gt;Acesso Público&lt;/strong&gt; ao banco.&lt;/p&gt;

&lt;p&gt;Após isso, pode-se criar o banco de dados e esperar o mesmo subir ao ar.&lt;/p&gt;

&lt;h4&gt;
  
  
  Mudando regras de acesso para o banco
&lt;/h4&gt;

&lt;p&gt;Na tela de detalhes do banco, podemos ver várias informações sobre o mesmo. Em &lt;strong&gt;Connectivity &amp;amp; security&lt;/strong&gt;, encontramos o endpoint que será a URL de acesso para o banco.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm3tjq6eldpfnn64ypu0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm3tjq6eldpfnn64ypu0e.png" alt="Connectivity &amp;amp; security" width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para mudar as regras para o acesso público ao banco, é necessário acessar o firewall responsável pelo mesmo. Para isso, deve-se acessar o &lt;strong&gt;VPC&lt;/strong&gt; na área de &lt;strong&gt;Security&lt;/strong&gt; dentro de &lt;strong&gt;Connectivity &amp;amp; security&lt;/strong&gt; e clicar no link do mesmo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioji2y849xv42f18f0jg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioji2y849xv42f18f0jg.png" alt="Security" width="387" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao ser redirecionado para a página de &lt;strong&gt;Security Groups&lt;/strong&gt;, deve-se acessar o security group responsável pelo banco de dados.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5taaxstz1di8f1vrjglt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5taaxstz1di8f1vrjglt.png" alt="Security Group" width="800" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao acessar o security group responsável pelo banco, pode-se ver a aba de &lt;strong&gt;Inbound rules&lt;/strong&gt; e nela estarão presentes todas as regras de acesso ao banco de dados.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77p6wzji1o3qpmkff6ai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77p6wzji1o3qpmkff6ai.png" alt="Inbound rules" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para criar uma nova regra, basta clicar em &lt;strong&gt;Edit Inbound Rules&lt;/strong&gt; e, na tela que aparecer, criar a nova regra.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2iwh2u6qi8dsdw8l9si4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2iwh2u6qi8dsdw8l9si4.png" alt="Edit Inbound Rules" width="800" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A seguinte regra permite que qualquer IP acesse o banco, sendo necessário apenas o uso do usuário e da senha (se foram criados).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjs91q4c9gf53aowwkxpd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjs91q4c9gf53aowwkxpd.png" alt="Qualquer IP acessar o banco" width="800" height="55"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Dessa forma, conclui-se o tutorial com passo-a-passo e imagens para compreensão de como criar um banco de dados RDS na AWS, visando sanar possíveis dúvidas e falta de entendimento do processo. Juntamente com este documento, recomenda-se o estudo aprofundado das ferramentas do AWS, assim como a busca por outros fóruns capazes de detalhar passos não elaborados.&lt;/p&gt;

</description>
      <category>ledscommunity</category>
      <category>aws</category>
      <category>database</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
