<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kedasha</title>
    <description>The latest articles on DEV Community by Kedasha (@ladykerr).</description>
    <link>https://dev.to/ladykerr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F148949%2Fb0521d43-f22a-4de4-9331-bdf2f1a11f54.jpg</url>
      <title>DEV Community: Kedasha</title>
      <link>https://dev.to/ladykerr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ladykerr"/>
    <language>en</language>
    <item>
      <title>The GitHub Community Roundup: 03-08-24</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Fri, 08 Mar 2024 15:59:56 +0000</pubDate>
      <link>https://dev.to/github/the-github-community-roundup-03-08-24-4ffo</link>
      <guid>https://dev.to/github/the-github-community-roundup-03-08-24-4ffo</guid>
      <description>&lt;p&gt;Hey folks! Welcome to another edition of the GitHub Community Roundup! There's been some amazing content this week that from the community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I enjoyed this post by &lt;a class="mentioned-user" href="https://dev.to/aksrao1998"&gt;@aksrao1998&lt;/a&gt; where he shows us how to &lt;a href="https://dev.to/aksrao1998/trigger-workflows-of-different-repositories-and-exchange-data-5a1p"&gt;triggers workflows in two repositories and share data between the two&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/shariqahmed525"&gt;@shariqahmed525&lt;/a&gt; shared &lt;a href="https://dev.to/shariqahmed525/what-are-the-pros-and-cons-of-using-github-copilot-5deo"&gt;pros and cons of using GitHub Copilot&lt;/a&gt; which was quite insightful! &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yan Holtz wrote a nice introduction to GitHub! Check it out, especially if you're new to the platform. &lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-1766096644880183681-171" src="https://platform.twitter.com/embed/Tweet.html?id=1766096644880183681"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1766096644880183681-171');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1766096644880183681&amp;amp;theme=dark"
  }



&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shinya's post on CodeQL teaches us why the tool is a &lt;a href="https://www.linkedin.com/posts/shinyay_100daysoflearning-github-codeql-activity-7171875774633758721-XT3_?utm_source=share&amp;amp;utm_medium=member_desktop"&gt;beneficial game changer for code analysis&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learn about the &lt;a href="https://www.linkedin.com/posts/billups-tillman_github-softwareengineering-csstudents-activity-7170641697784188928-GY3M?utm_source=share&amp;amp;utm_medium=member_desktop"&gt;GitHub Student Developer pack&lt;/a&gt;! An amazing programming resource for students filled with tonns of benefits! Thanks for the great write up Billups.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve written an article about GitHub or find some great content about GitHub or any of its features or products, please share it with the #GitHub hashtag on Dev.to, Twitter or LinkedIn!&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new at GitHub this week?
&lt;/h2&gt;

&lt;p&gt;Well, exciting news! &lt;strong&gt;GitHub Copilot Chat&lt;/strong&gt; is now GA in JetBrains IDE! 🚀&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%2F57eqvya2b5llxdpel6py.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%2F57eqvya2b5llxdpel6py.png" alt="GitHub Copilot Chat in JetBrains IDE" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn more about how you can get started by &lt;a href="https://github.blog/changelog/2024-03-07-github-copilot-chat-general-availability-in-jetbrains-ide/"&gt;reading our blogpost&lt;/a&gt; or watch the youtube video.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Di-kkTO6b88"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Learn how to create your first terraform module with GitHub by checking out &lt;a href="https://youtu.be/oVZ8c2D0t-s?si=iNwn9A2kDWaMmrsy"&gt;this video&lt;/a&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you know that Autocoder was one of the first attempts at automatic coding? Back in 1950?! Yea, me either! Read more about the &lt;a href="https://github.blog/2024-03-07-hard-and-soft-skills-for-developers-coding-in-the-age-of-ai/"&gt;Hard and soft skills for developers coding in the age of AI&lt;/a&gt; where we touch on the brief history of Ai-powered tools. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learn &lt;a href="https://github.blog/2024-03-06-how-github-uses-merge-queue-to-ship-hundreds-of-changes-every-day/"&gt;How GitHub uses merge queue to ship hundreds of changes every day&lt;/a&gt; in this blog post&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Discover how to keep repository maintainer information accurate through CODEOWNERS file in &lt;a href="https://github.blog/2024-03-04-keeping-repository-maintainer-information-accurate/"&gt;this blog post&lt;/a&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A huge thanks goes out to all the contributors to the technical community this week!&lt;/p&gt;

&lt;p&gt;Happy Friday and we'll see you all next time for the latest GitHub community updates. ✨&lt;/p&gt;

</description>
      <category>github</category>
      <category>community</category>
      <category>news</category>
      <category>developers</category>
    </item>
    <item>
      <title>How I Bulk Closed 1000+ GitHub Issues with GitHub Actions 🚀</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Wed, 17 Jan 2024 18:29:57 +0000</pubDate>
      <link>https://dev.to/github/how-i-bulk-closed-1000-github-issues-with-github-actions-d3b</link>
      <guid>https://dev.to/github/how-i-bulk-closed-1000-github-issues-with-github-actions-d3b</guid>
      <description>&lt;p&gt;Now why would I want to do this huh? 🤔 &lt;/p&gt;

&lt;p&gt;Well, we have a private repo where maintainers are able to make requests to join the &lt;a href="https://maintainers.github.com/auth/signin" rel="noopener noreferrer"&gt;private maintainer community&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Someone thought it'd be cute to submit 1000+ issues to the repo with the handle &lt;code&gt;@undefined&lt;/code&gt; and the title &lt;code&gt;undefined&lt;/code&gt;. This was a problem because it was making it difficult to find the actual issues that were being submitted by maintainers that needed to be approved.&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%2F884nz0o2217qn0666znv.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%2F884nz0o2217qn0666znv.png" alt="1600+ issues on repo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We need to do some additional work to the repo before I'm able to add validation to the issue form but in the meantime, we needed to close these issues. So, I thought a temporary solution would be to create a GitHub action that closed all of the issues - with the title containing &lt;code&gt;Pending invitation request for: @undefined'&lt;/code&gt;. And it worked!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We went from having over 1,600+ issues to 64 valid issues in a matter of minutes.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Here's how I did it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating the GitHub Action
&lt;/h2&gt;

&lt;p&gt;The first thing I did was go to my bestie chatty (GitHub Copilot Chat) and asked it if I could close 1000+ issues with a GitHub action. It gave me a few options, but I decided to go with this one:&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%2Fu6kuj92p00n668hx3i8o.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%2Fu6kuj92p00n668hx3i8o.png" alt="gh copilot chat response"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then it generated the &lt;code&gt;closeIssue.js&lt;/code&gt; file which looked like this:&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%2Ffa44dc07s1g6m67rszia.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%2Ffa44dc07s1g6m67rszia.png" alt="gh copilot chat closeIssues.js function"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sweet, that was the bulk of the work. Now I just needed to add the action to my repo.&lt;/p&gt;

&lt;p&gt;I created a file called &lt;code&gt;close_issues.yml&lt;/code&gt; in the &lt;code&gt;.github/workflows&lt;/code&gt; directory and added the following code:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;

&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Close Undefined Issues&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;workflow_dispatch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;main"&lt;/span&gt; &lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="c1"&gt;# The branches below must be a subset of the branches above&lt;/span&gt;
      &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;main"&lt;/span&gt; &lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;43&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1'&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;close_issues&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout code&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Node.js&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-node@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;node-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;14&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install dependencies&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm install&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run script&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;node closeIssues.js&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I made a few tweaks to the code, but all in all, this code was written largely in collaboration with GitHub Copilot.&lt;/p&gt;

&lt;p&gt;The next file I created was the &lt;code&gt;closeIssues.js&lt;/code&gt; file. I added the following code:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;


&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Octokit&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@octokit/rest&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;octokit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Octokit&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;closeIssues&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;issues&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;octokit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listForRepo&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;OWNER&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;internal-repo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;issuesToClose&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;issue&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Pending invitation request for: @undefined&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;issue&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;issuesToClose&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;octokit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;OWNER&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;internal-repo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;issue_number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;closed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;closeIssues&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I added a &lt;code&gt;package.json&lt;/code&gt; file to my repo, install the needed dependency, and then pushed the code to my repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing the Action
&lt;/h2&gt;

&lt;p&gt;After about 3 (ok 4!) tries, I finally got the action to run successfully.&lt;/p&gt;

&lt;p&gt;Initially, the action closed 30 issues at a time, because that is the limit for the GitHub API. So, I had to read the docs 🤯 to understand how to grab ALL issues that matched the criteria and closed them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Updates
&lt;/h2&gt;

&lt;p&gt;After reading the docs, I realized that I needed to use the &lt;code&gt;paginate()&lt;/code&gt; method to get all of the issues for the specified repo. I also learned that with paginate, the issues are returned as an array, so I no longer needed &lt;code&gt;const { data: issues }&lt;/code&gt;. I also needed to use &lt;code&gt;octokit.rest.issues&lt;/code&gt; when making requests.&lt;/p&gt;

&lt;p&gt;In the end, the code that ran successfully and closed all 1000+ issues AT ONCE looked like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Octokit&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@octokit/rest&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;octokit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Octokit&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;closeIssues&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Fetching issues...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;issues&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;octokit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;paginate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;octokit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;listForRepo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;OWNER&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;internal-repo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;open&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;

        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Fetched &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; issues.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;issuesToClose&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;issue&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Pending invitation request for: @undefined&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Found &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;issuesToClose&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; issues to close.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;issue&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;issuesToClose&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Closing issue #&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;...`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;octokit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                &lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;OWNER&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;internal-repo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;issue_number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;closed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;});&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Closed issue #&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;closeIssues&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I added some logging to the code so I could see what was happening during the workflow run. I also added a try/catch block to catch any errors that may occur.&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%2Fgithub.com%2Fgithubevents%2Fopen-source-friday%2Fassets%2F47188731%2F75bd569f-b2f5-4b41-8915-2e6ca30a39ba" 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%2Fgithub.com%2Fgithubevents%2Fopen-source-friday%2Fassets%2F47188731%2F75bd569f-b2f5-4b41-8915-2e6ca30a39ba" alt="action_autoclose"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I was very happy that I could do this because it would've taken my teammate HOURS to close all these issues manually. I was able to do it in a matter of minutes! I'm super stoked that GitHub Copilot was able to teach me something new - how to interact with the GitHub API using the &lt;a href="https://octokit.github.io/rest.js/v20" rel="noopener noreferrer"&gt;Octokit&lt;/a&gt; library. 🚀&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%2Fuo9jt1hqh0hxawgl9q27.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%2Fuo9jt1hqh0hxawgl9q27.png" alt="64 open issues on repo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you ever used GitHub Copilot to help you write GitHub Actions? Let me know in the comments below! I hope you learned something new today. &lt;/p&gt;

&lt;p&gt;Until next time, happy coding! 😁&lt;/p&gt;

</description>
      <category>githubactions</category>
      <category>github</category>
      <category>githubcopilot</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Getting Started with GitHub Copilot in the CLI🚀</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Fri, 17 Nov 2023 17:09:17 +0000</pubDate>
      <link>https://dev.to/github/stop-struggling-with-terminal-commands-github-copilot-in-the-cli-is-here-to-help-4pnb</link>
      <guid>https://dev.to/github/stop-struggling-with-terminal-commands-github-copilot-in-the-cli-is-here-to-help-4pnb</guid>
      <description>&lt;p&gt;If you've ever used the terminal, you know the struggle of trying to remember a command, the fear of breaking your system with a random command you found on the interwebs or the frustration of trying to find the right command to do what you want. &lt;/p&gt;

&lt;p&gt;That struggle is lightened today, with &lt;a href="https://github.com/github/gh-copilot" rel="noopener noreferrer"&gt;GitHub Copilot in the CLI&lt;/a&gt;! 💃🏼&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/JQFuCdFbQAbNaawknQ/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/JQFuCdFbQAbNaawknQ/giphy.gif" alt="black mance dancing and saying yay!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Copilot in the CLI provides a chat-like interface in the terminal that allows you to ask questions about the command line.&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%2F4rravzw8jqsr45yrjtow.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%2F4rravzw8jqsr45yrjtow.png" alt="Copilot CLI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is designed to help you with general shell commands, git commands and &lt;em&gt;gh&lt;/em&gt; cli commands. This post aims to get you up and running with installing, and using copilot in the cli.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;To install copilot in the cli, you must first install &lt;a href="https://cli.github.com/" rel="noopener noreferrer"&gt;GitHub CLI&lt;/a&gt; and complete authentication in an OAuth browser window. If you're not familiar with the GitHub CLI, learn how to use it by &lt;a href="https://dev.to/github/top-10-tips-for-using-github-from-the-command-line-1me6"&gt;reading this blog post!&lt;/a&gt;&lt;br&gt;
Since I'm on macOS, I used homebrew as my package manager:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

brew &lt;span class="nb"&gt;install &lt;/span&gt;gh
gh auth login


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;You also need to have an active &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;GitHub Copilot subscription&lt;/a&gt; to use copilot in the cli. &lt;br&gt;
Once the &lt;code&gt;gh cli&lt;/code&gt; is installed, and you have a copilot subscription, you can install the extension by running:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh extension &lt;span class="nb"&gt;install &lt;/span&gt;github/gh-copilot


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;And you are ready to go! 🎉&lt;/p&gt;
&lt;h2&gt;
  
  
  Available Commands
&lt;/h2&gt;

&lt;p&gt;I recommend running the help command to understand how to interact with copilot in the cli. When you run &lt;code&gt;gh copilot --help&lt;/code&gt; you will see the following output:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot

Your AI &lt;span class="nb"&gt;command &lt;/span&gt;line copilot.

Usage:
  copilot &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;

Available Commands:

  config      Configure options
  explain     Explain a &lt;span class="nb"&gt;command
  &lt;/span&gt;suggest     Suggest a &lt;span class="nb"&gt;command

&lt;/span&gt;Flags:
  &lt;span class="nt"&gt;-h&lt;/span&gt;, &lt;span class="nt"&gt;--help&lt;/span&gt;      &lt;span class="nb"&gt;help &lt;/span&gt;&lt;span class="k"&gt;for &lt;/span&gt;copilot
  &lt;span class="nt"&gt;-v&lt;/span&gt;, &lt;span class="nt"&gt;--version&lt;/span&gt;   version &lt;span class="k"&gt;for &lt;/span&gt;copilot

Use &lt;span class="s2"&gt;"copilot [command] --help"&lt;/span&gt; &lt;span class="k"&gt;for &lt;/span&gt;more information about a command.



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;There are two primary commands you can use to interact with copilot in the cli: &lt;code&gt;gh copilot explain&lt;/code&gt; and &lt;code&gt;gh copilot suggest&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Create an Alias 💡
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Hot tip! creating an alias will make using copilot in the cli a part of your regular workflow a lot easier.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After installation, the next thing I advise you to do is to create an alias. This will make interfacing with copilot in the cli a lot smoother because it saves you some keystrokes and you can get help faster. &lt;/p&gt;

&lt;p&gt;Since I'm using &lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki" rel="noopener noreferrer"&gt;zsh&lt;/a&gt;, I ran the following commands to create aliases:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;copilot&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'gh copilot'&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'alias copilot="gh copilot"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.zshrc &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gcs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'gh copilot suggest'&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'alias gcs="gh copilot suggest"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.zshrc &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gce&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'gh copilot explain'&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'alias gce="gh copilot explain"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.zshrc &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Now, let's get into what these commands mean and a few examples on how to use them. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Remember, I have an alias so I'll be using &lt;code&gt;gce&lt;/code&gt; or &lt;code&gt;gcs&lt;/code&gt; instead of &lt;code&gt;gh copilot explain&lt;/code&gt; or &lt;code&gt;gh copilot suggest&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Explain Command 🤖
&lt;/h2&gt;

&lt;p&gt;There are two ways you can use the copilot cli explain command:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can run the explain command with no arguments and it will prompt you to enter a command to explain.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot explain


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fmu05y8xdnf2xnakooanr.gif" 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%2Fmu05y8xdnf2xnakooanr.gif" alt="copilot explains prompt flow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can run the explain command and the command you want explained at the same time:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot explain &lt;span class="s1"&gt;'your query'&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fl71eof2w28tn36ahi112.gif" 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%2Fl71eof2w28tn36ahi112.gif" alt="copilot explains a command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also run the explain command with the &lt;code&gt;-h&lt;/code&gt; flag to get more information:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot explain &lt;span class="nt"&gt;-h&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F94s8l93riupprjlgt8e1.gif" 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%2F94s8l93riupprjlgt8e1.gif" alt="copilot explains a command"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Suggest Command 🤖
&lt;/h2&gt;

&lt;p&gt;There are 3 ways you can interact with copilot in the cli to get a suggestion:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can run the suggest command and follow the on screen prompts:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot suggest


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F52376a70-9acc-41b3-9ed6-e5cd59c4bff1" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F52376a70-9acc-41b3-9ed6-e5cd59c4bff1" alt="copilot suggests a command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can run the suggest command and your query at the same time, then select the type of command:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot suggest &lt;span class="s1"&gt;'command you want to run'&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F55da2faa-1afa-4f2c-b74f-72a41ab9e655" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F55da2faa-1afa-4f2c-b74f-72a41ab9e655" alt="copilot suggests a command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can run the suggest command, your query and the type of command at the same time:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot suggest &lt;span class="s1"&gt;'command you want to run'&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="s1"&gt;'type of command'&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F54f28b58-6d69-4a75-aa71-aedf724e8648" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F54f28b58-6d69-4a75-aa71-aedf724e8648" alt="copilot suggests a command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;-t&lt;/code&gt; flag means type of command and can be one of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;git&lt;/li&gt;
&lt;li&gt;gh&lt;/li&gt;
&lt;li&gt;shell&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Revising Suggested Commands
&lt;/h2&gt;

&lt;p&gt;Sometimes, the suggestion you get from copilot in the cli is not exactly what you want. You can revise the command by selecting the &lt;code&gt;Revise command&lt;/code&gt; option when you receive a suggestion and give copilot about more detail about what you want:&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2Fd09f890a-930c-4fff-82df-4ec41af3c31e" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2Fd09f890a-930c-4fff-82df-4ec41af3c31e" alt="copilot suggests a command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Hot tip! Copilot in the CLI is not there to simply give you the suggested you want. Remember, it is there as your co-pilot, so if the output is not quite what you expected, edit the suggestion or ask for a revision until you get what you need.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Explaining Suggested Commands
&lt;/h2&gt;

&lt;p&gt;When you get a suggestion from copilot in the cli, you can ask copilot to explain the command by selecting the &lt;code&gt;Explain command&lt;/code&gt; option:&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F9a63fcab-993b-47b0-8d78-5d2ca118a91f" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F9a63fcab-993b-47b0-8d78-5d2ca118a91f" alt="copilot suggests a command"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Copying Suggested Commands
&lt;/h2&gt;

&lt;p&gt;When you get a suggestion from copilot in the cli, you can copy the provided response and run it in your terminal.&lt;/p&gt;
&lt;h2&gt;
  
  
  Rating Commands 🌟🌟🌟🌟🌟
&lt;/h2&gt;

&lt;p&gt;When you get a suggestion from copilot in the cli, you can rate the command by selecting the &lt;code&gt;Rate command&lt;/code&gt; option, and selecting whether or not it was helpful:&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F4c14610c-94be-4c98-a799-3d97eab19d5c" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F4c14610c-94be-4c98-a799-3d97eab19d5c" alt="copilot suggests a command"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Exiting the prompt flow window 🚪
&lt;/h2&gt;

&lt;p&gt;You can exit the prompt flow window by selecting the &lt;code&gt;Exit&lt;/code&gt; option:&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F8ea4838b-9c56-44b7-8df2-b36b2ec53a7e" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F8ea4838b-9c56-44b7-8df2-b36b2ec53a7e" alt="copilot suggests a command"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Examples of using Copilot in the CLI
&lt;/h1&gt;

&lt;p&gt;Now let's take a look at some examples. 💃🏼&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Explain a dangerous command ⚠️
&lt;/h2&gt;

&lt;p&gt;So, I saw this command online and was curious about what it did so I can ask:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot explain &lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; 777 /


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F59f3dd7f-2b6a-4fa3-8de7-43974e6b0eed" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F59f3dd7f-2b6a-4fa3-8de7-43974e6b0eed" alt="copilot explains a command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Hot tip! When asking copilot to explain commands that have special characters, enclose the command in a string so copilot can understand it better.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you see, this command is actually very dangerous and can cause you to lose all your data. What I love about the explanation I received was that it not only told me what the command does, but it also told me why it was dangerous.&lt;/p&gt;

&lt;p&gt;🚨 &lt;strong&gt;NEVER RUN THIS COMMAND ON YOUR MACHINE&lt;/strong&gt; 🚨&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Delete a git branch locally and remotely
&lt;/h2&gt;

&lt;p&gt;In the visual example below, I first list the branches in my local repo with the command &lt;code&gt;git branch&lt;/code&gt; then I list the branches in my remote repo with the command &lt;code&gt;git branch -r&lt;/code&gt;. I then ask copilot in the cli for a suggestion:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot suggest &lt;span class="s1"&gt;'delete a git branch locally and remotely'&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; git


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F17fdc685-0a34-49fc-93e1-9269329c5c42" 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%2Fgithub.com%2FLadyKerr%2Fcli-skills-copilot-talk%2Fassets%2F47188731%2F17fdc685-0a34-49fc-93e1-9269329c5c42" alt="Delete a git branch locally and remotely"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was provided with the following suggestion:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

git push origin &lt;span class="nt"&gt;--delete&lt;/span&gt; &amp;lt;branch_name&amp;gt;

git branch &lt;span class="nt"&gt;-D&lt;/span&gt; &amp;lt;branch_name&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I ran the suggested commands, then listed the branches in my local repo and remote repo again to confirm that the branch was deleted. Thankfully, it was. 🙌🏼&lt;/p&gt;
&lt;h2&gt;
  
  
  View all open issues in a repo
&lt;/h2&gt;

&lt;p&gt;You can also ask copilot in the cli for &lt;code&gt;gh&lt;/code&gt; commands. For example, if you wanted to view all open issues in a repo, you can ask copilot in the cli for a suggestion:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot suggest &lt;span class="s1"&gt;'view all open issues'&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; gh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I was provided with the following suggestion:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh issue list &lt;span class="nt"&gt;--state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'open'&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I ran the command and was provided with a list of all open issues in the repo I was currently in. See the flow in the visual example below:&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%2Fgithub-production-user-asset-6210df.s3.amazonaws.com%2F47188731%2F283870990-3d8b3b01-bcd7-4d63-9cd9-5c88bf4c5b21.gif" 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%2Fgithub-production-user-asset-6210df.s3.amazonaws.com%2F47188731%2F283870990-3d8b3b01-bcd7-4d63-9cd9-5c88bf4c5b21.gif" alt="View all open issues in a repo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  3. Kill processes with open files that have been deleted
&lt;/h2&gt;

&lt;p&gt;Copilot in the CLI can also be useful for administrative tasks in the terminal. For example, if you wanted to kill processes with open files that have been deleted, you can ask copilot in the cli for a suggestion:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot suggest &lt;span class="s1"&gt;'kill processes with open files that have been deleted'&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; shell


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I was provided with the following suggestion:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

lsof | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s1"&gt;'(deleted)'&lt;/span&gt; | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="s1"&gt;'{print $2}'&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; | xargs &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="nb"&gt;kill&lt;/span&gt; &lt;span class="nt"&gt;-9&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I asked copilot to explain the suggestion because I wasn't very familiar with the &lt;code&gt;xargs&lt;/code&gt; command. See more in the video example below:&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%2Fgithub-production-user-asset-6210df.s3.amazonaws.com%2F47188731%2F283871467-aa563010-30a4-412b-b127-db07d3bc2e9a.gif" 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%2Fgithub-production-user-asset-6210df.s3.amazonaws.com%2F47188731%2F283871467-aa563010-30a4-412b-b127-db07d3bc2e9a.gif" alt="kill processes with open files that were deleted"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once I ran the suggested command, I was able to run the command &lt;code&gt;lsof | grep '(deleted)' | awk '{print $2}' | sort -u&lt;/code&gt; to see the processes that were killed.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. Exit Vim 😅
&lt;/h2&gt;

&lt;p&gt;This would not be a terminal demo if I didn't ask this one question 😂:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh copilot suggest &lt;span class="s1"&gt;'how to exit vim'&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; shell


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I was provided with the following suggestion:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

:q!


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Though this is correct, it's not quite what I was looking for, because while this will take you out of vim, you will loose all your changes in the process. So I asked copilot to revise the command:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

? How should this be revised?
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; how to &lt;span class="nb"&gt;exit &lt;/span&gt;vim and save changes

Suggestion:

  :wq


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Perfect! 💃🏼&lt;br&gt;
See this entire flow in the visual example below:&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%2Fgithub-production-user-asset-6210df.s3.amazonaws.com%2F47188731%2F283871777-1469f589-3913-44b9-94f7-a6c21bd44b22.gif" 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%2Fgithub-production-user-asset-6210df.s3.amazonaws.com%2F47188731%2F283871777-1469f589-3913-44b9-94f7-a6c21bd44b22.gif" alt="copilot tells us how to exist vim"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;GitHub Copilot in the CLI is a game-changer that is super useful for reminding you of commands, teaching you new commands or explaining random commands you come across find online.&lt;/p&gt;

&lt;p&gt;I hope you enjoy using it! Try it yourself and let me know how you used it. If you have feedback or issues, you can submit an issue in the &lt;a href="https://github.com/github/gh-copilot" rel="noopener noreferrer"&gt;gh-copilot repo&lt;/a&gt; or leave a comment below and I'll be sure to get you an answer.&lt;/p&gt;

&lt;p&gt;Have you tried the GitHub Copilot in the CLI? What do you think? Let me know in the comments below! 👇🏼🚀&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1725549992792797304-525" src="https://platform.twitter.com/embed/Tweet.html?id=1725549992792797304"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1725549992792797304-525');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1725549992792797304&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>cli</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I used GitHub Copilot Chat to debug my deployment workflow 🐥🤖</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Mon, 13 Nov 2023 18:02:31 +0000</pubDate>
      <link>https://dev.to/github/how-i-used-github-copilot-chat-to-debug-my-deployment-workflow-3p51</link>
      <guid>https://dev.to/github/how-i-used-github-copilot-chat-to-debug-my-deployment-workflow-3p51</guid>
      <description>&lt;p&gt;A few weeks ago I was working on putting together a slide deck for my talk at GitHub Universe 2023. I spoke about how you can use &lt;a href="https://github.com/github/gh-copilot" rel="noopener noreferrer"&gt;Github Copilot in the CLI&lt;/a&gt; to improve your time in the terminal.&lt;/p&gt;

&lt;p&gt;I typically use Canva to create my presentations but I reaaaly didn't want to do that this time around because I get really anal about the small details and I didn't want to spend a lot of time on design. I wanted to focus on the content and the delivery.&lt;/p&gt;

&lt;p&gt;So of course, &lt;a href="https://twitter.com/itsthatladydev/status/1717737766027514046" rel="noopener noreferrer"&gt;I tweeted&lt;/a&gt; and someone suggested &lt;a href="https://sli.dev/" rel="noopener noreferrer"&gt;slidev&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%2Fbguecgz89is99sb8oe8q.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%2Fbguecgz89is99sb8oe8q.png" alt="kedasha tweeting about finding a  markdown presentation solution"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I took a quick gander at it and was quite impresed with the dev experience and built in themes and decided to give it a go. I was able to create the initial draft of my slides pretty quickly and I'm quite happy with the results!&lt;/p&gt;

&lt;p&gt;I'm not going to go into the details of how to use it but I'll link to the docs here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying my slides
&lt;/h2&gt;

&lt;p&gt;So, let's get into the GitHub Actions part. So slidev has a template workflow for deploying your slides to GitHub Pages. I copied the workflow and added it to my repo, pushed to GitHub ad expected magic to happen on the first go. It didn't of course lol.&lt;/p&gt;

&lt;p&gt;I ran into a few issues with actions and thought oh, GitHub Copilot is the perfect tool to help me out so I decided to use it to help me debug my workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is GitHub Actions
&lt;/h3&gt;

&lt;p&gt;If you've never used GitHub actions before, it's essentially a way for you to automate anything in your repos. You can use it to build, test, and deploy your code right from GitHub and you can also use it to automate your project's triage process, label issues, and more.&lt;/p&gt;

&lt;p&gt;If you want to learn more about actions, checkout my talk below from Philly ETE Conference this past April. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SDAgg2Dm0Dk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;You can also check out &lt;a href="https://github.com/LadyKerr/codespaces-actions-playground" rel="noopener noreferrer"&gt;this repo&lt;/a&gt; for a full walk through of how to use actions.&lt;/p&gt;

&lt;p&gt;Anyway, so my workflow didn't work for a few reasons.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. I didn't enable Github Pages
&lt;/h3&gt;

&lt;p&gt;I didn't enable GitHub pages in my repo. I know, I know, lol. I was so excited to get my slides deployed that I forgot to enable it. So I enabled GitHub pages to use actions and tried again. Still didn't work.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The installation of &lt;code&gt;package.json&lt;/code&gt; failed
&lt;/h3&gt;

&lt;p&gt;I received an error stating that my directory could not be found.&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%2F9unqagyn0b8vjupfkfh7.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%2F9unqagyn0b8vjupfkfh7.png" alt="GitHub actions failed log"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So my slides are located in a folder and not the root of my repo. I had to update the workflow to point to the correct folder, so I updated the command like so:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;

&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install dependencies&lt;/span&gt;
&lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;  &lt;span class="s"&gt;cd ../copilot-cli &amp;amp;&amp;amp; npm install&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;But that still didn't work. So I went to copilot and pasted the error message I saw in the actions logs:&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%2Fqtjkod9zkx5l0512almb.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%2Fqtjkod9zkx5l0512almb.png" alt="GitHub copilot suggestion for failed install"&gt;&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%2Fhdx0n8sy18anzx5stf4r.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%2Fhdx0n8sy18anzx5stf4r.png" alt="GitHub copilot suggestion for failed install"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What I love about this is that it not only provided a suggestion on how to solve the problem, copilot also gave me a bit of education: I didn't know that workflows were ran from the root of the repo. I thought they were ran from &lt;code&gt;.github/workflows&lt;/code&gt; directory, so I learned something new.&lt;/p&gt;

&lt;p&gt;I updated my workflow with copilots suggestion and it worked well. But then the slidev build command failed. 😫&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Slidev build command failed
&lt;/h3&gt;

&lt;p&gt;Since I had the earlier experience of forgetting to update the directory, I knew that I had to update the build command to point to the correct directory. I updated the command like so:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;

&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build&lt;/span&gt;
&lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;slidev build --base /gh-copilot-cli/copilot-cli/&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This goes into the repo and then goes into the folder where my slides are located and then runs the build command. It failed, so I updated the command to this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;

&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build&lt;/span&gt;
&lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;slidev build --base /copilot-cli/&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;That makes sense right? Since the workflow is ran from the root of the repo, I should be able to just go into the folder where my slides are located and run the build command. But that failed too.&lt;/p&gt;

&lt;p&gt;So, I went to copilot and pasted the error message I saw in the actions logs:&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%2Fafvejnlak11dzxu0py46.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%2Fafvejnlak11dzxu0py46.png" alt="GitHub copilot suggestion for failed slidev build"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oh gotcha, I  need to &lt;code&gt;cd copilot-cli&lt;/code&gt; then point to &lt;code&gt;/copilot-cli&lt;/code&gt; directory. I implemented copilot's suggestion and it ran successfully! 💃🏼&lt;/p&gt;

&lt;p&gt;But then, I got another error. 😫&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The post build command failed - no &lt;code&gt;dist&lt;/code&gt; folder found
&lt;/h3&gt;

&lt;p&gt;You would think by now I would've learned my lesson and updated the command to point to the correct directory. But I didn't. 😅 When the build failed again, I updated the build command to this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;

&lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/upload-pages-artifact@v1&lt;/span&gt;
    &lt;span class="s"&gt;with&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;copilot-cli/dist&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I was like ok that should do it, I'm pointing to the correct directory. But it failed again. So I went to copilot and pasted the error message I saw in the actions logs:&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%2Fw4vjy2xwj9edwgb1jmye.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%2Fw4vjy2xwj9edwgb1jmye.png" alt="GitHub copilot suggestion for dist directory error"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's what I did, hmm 🤔. I went back to my debugging buddy and it suggested the following:&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%2Fvp6z6qzz0jbhawyq5lk5.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%2Fvp6z6qzz0jbhawyq5lk5.png" alt="github copilot suggestion for dist directory error"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After listing the directory contents as suggested, it turns out that the &lt;code&gt;dist folder&lt;/code&gt; was not being created by the &lt;code&gt;slidev build&lt;/code&gt; command. Here's what the logs showed:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

Run &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt; copilot-cli
total 536
drwxr-xr-x   6 runner docker   4096 Oct 28 16:46 &lt;span class="nb"&gt;.&lt;/span&gt;
drwxr-xr-x   6 runner docker   4096 Oct 28 16:46 ..
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker     78 Oct 28 16:46 .gitignore
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker     57 Oct 28 16:46 .npmrc
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker      9 Oct 28 16:46 .prettierignore
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker    267 Oct 28 16:46 README.md
drwxr-xr-x   2 runner docker   4096 Oct 28 16:46 components
drwxr-xr-x   2 runner docker   4096 Oct 28 16:46 layouts
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker    248 Oct 28 16:46 netlify.toml
drwxr-xr-x 467 runner docker  20480 Oct 28 16:46 node_modules
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker 299331 Oct 28 16:46 package-lock.json
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker    431 Oct 28 16:46 package.json
drwxr-xr-x   2 runner docker   4096 Oct 28 16:46 pages
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker 166229 Oct 28 16:46 pnpm-lock.yaml
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker   7616 Oct 28 16:46 slides.md
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt;   1 runner docker    144 Oct 28 16:46 vercel.json


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;No &lt;code&gt;dist&lt;/code&gt; directory in sight. So of course, I went back to my bestie copilot and pasted the returned directory contents. Here's what it suggested:&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%2Finkotz5q4kh8b01otp2h.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%2Finkotz5q4kh8b01otp2h.png" alt="github copilot suggestion for dist directory error"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I implemented copilot's suggestion and it failed again. I decided to use my eagle eyes and comb through the Build logs. Turns out, the &lt;code&gt;slidev build&lt;/code&gt; command wasn't even running! What?! 😫&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%2Frofxxtx7012vb1mi7hme.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%2Frofxxtx7012vb1mi7hme.png" alt="actions log showing build command isn't running"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.... not solved lol&lt;/p&gt;

&lt;p&gt;That was a journey lol. 😂&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Lessons learned
&lt;/h2&gt;

&lt;p&gt;I learned a few things from this experience:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I need to read the docs&lt;/li&gt;
&lt;li&gt;GitHub Copilot is a great debugging buddy&lt;/li&gt;
&lt;li&gt;I need to read the docs and pay closer attention my files 😅&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My slides are still not deployed LOL but &lt;a href="https://github.com/LadyKerr/cli-skills-copilot-talk/blob/main/gh-copilot-cli.pdf" rel="noopener noreferrer"&gt;here they are in PDF format&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;If you've ever worked with slidev before lemme know how I can deploy my slides to gh-pages LOL. GitHub Copilot was still a great rubber ducky! 🐥&lt;/p&gt;

&lt;p&gt;Happy coding! 💕&lt;br&gt;
Kedasha&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>githubactions</category>
      <category>coding</category>
    </item>
    <item>
      <title>Top 10 Tips for using GitHub from the Command Line</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Fri, 13 Oct 2023 21:47:59 +0000</pubDate>
      <link>https://dev.to/github/top-10-tips-for-using-github-from-the-command-line-1me6</link>
      <guid>https://dev.to/github/top-10-tips-for-using-github-from-the-command-line-1me6</guid>
      <description>&lt;p&gt;The &lt;a href="https://cli.github.com/" rel="noopener noreferrer"&gt;GitHub CLI&lt;/a&gt; (&lt;em&gt;gh&lt;/em&gt; cli) is a command line tool that allows you to interact with GitHub without ever leaving your terminal. It's an open source tool that allows you to view and manage issues, pull requests, releases, and more. In this post, we'll cover 10 tips for using the GitHub CLI, but first, how do you install it?&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing the GitHub CLI 🛠️
&lt;/h2&gt;

&lt;p&gt;I'm using MacOS, so I'll be using &lt;a href="https://brew.sh/" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt; to install the GitHub CLI. If you're using Windows or Linux, you can find instructions for installing the GitHub CLI &lt;a href="https://github.com/cli/cli#installation" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

brew &lt;span class="nb"&gt;install &lt;/span&gt;gh



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once you've installed the GitHub CLI, you'll need to authenticate with GitHub. You can do this by running the following command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh auth login



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This will open a browser window and prompt you to login to GitHub. Once you've logged in, you'll be prompted to authenticate with GitHub. Once you've authenticated, you'll be able to use the GitHub CLI. 🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI Syntax and Usage 📝
&lt;/h2&gt;

&lt;p&gt;The CLI follows a very specific syntax. It generally works as, "&lt;em&gt;gh&lt;/em&gt;" "feature" "then what you want to do with the feature" then “any flags associated with the feature” - everything you want to do with the cli takes on this format.&lt;/p&gt;

&lt;p&gt;For example, if you wanted to clone a repository using the &lt;em&gt;gh&lt;/em&gt; cli, it would be &lt;code&gt;gh repo clone &amp;lt;repo to be cloned&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Let's take a look at some practical tips when using the GitHub CLI.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Create a new repository and clone it locally 🎉
&lt;/h2&gt;

&lt;p&gt;You can create a new repository using the &lt;code&gt;gh repo create&lt;/code&gt; command. This command will prompt you for the name of the repository, the description, and the visibility. You can also specify the name of the repository as an argument to the command.&lt;/p&gt;

&lt;p&gt;You can also create a new repository and clone it locally at the same time by using the &lt;code&gt;--clone&lt;/code&gt; flag. Here's what this will look like:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh repo create your-new-repo &lt;span class="nt"&gt;--public&lt;/span&gt; &lt;span class="nt"&gt;--clone&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fsimple-next-app%2Fassets%2F47188731%2Fc2ba02cb-c753-4656-82de-da5f0928f8c9" 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%2Fgithub.com%2FLadyKerr%2Fsimple-next-app%2Fassets%2F47188731%2Fc2ba02cb-c753-4656-82de-da5f0928f8c9" alt="gh repo create command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repo was &lt;a href="https://github.com/LadyKerr/gh-cli-example-repo" rel="noopener noreferrer"&gt;created here&lt;/a&gt; and all you need to do now is to push your changes and you're good.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Create issues 📝
&lt;/h2&gt;

&lt;p&gt;We can create issues for this repository right from the command line with the &lt;em&gt;gh&lt;/em&gt; cli. This command will prompt you for the title and body of the issue. You can also specify the title and body as arguments to the command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh issue create &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="s2"&gt;"issue title"&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="s2"&gt;"issue body content"&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt; &lt;span class="s2"&gt;"assignee"&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You can also edit, transfer, delete, close, and reopen issues with the &lt;em&gt;gh&lt;/em&gt; cli. You can find more information about this &lt;a href="https://cli.github.com/manual/gh_issue" rel="noopener noreferrer"&gt;here&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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2Ff7a9328c-5a60-4af0-a12d-54e4cfc32e01" 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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2Ff7a9328c-5a60-4af0-a12d-54e4cfc32e01" alt="gh repo issue create"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Create pull requests 🔄
&lt;/h2&gt;

&lt;p&gt;We can create pull requests by using the &lt;code&gt;gh pr create&lt;/code&gt; command and follow the on-screen prompts. You can also specify the title and body as arguments to the command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh &lt;span class="nb"&gt;pr &lt;/span&gt;create &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="s2"&gt;"pull request title"&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="s2"&gt;"pull request body content"&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt; &lt;span class="s2"&gt;"assignee"&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F0f8789dc-ee18-4b0a-9fd4-2670a226c0a8" 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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F0f8789dc-ee18-4b0a-9fd4-2670a226c0a8" alt="gh repo pr create"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Review pull requests 👀
&lt;/h2&gt;

&lt;p&gt;Run &lt;em&gt;gh&lt;/em&gt; pr create and add the necessary flags: -t for the title, -b for the body -a for the assignee and -d to mark the pr as draft. You can also use &lt;code&gt;gh pr create&lt;/code&gt; and follow the on screen prompts to create a new PR with the cli.&lt;br&gt;
Once the PR is created, take note of the PR num and run &lt;code&gt;gh pr view &amp;lt;num&amp;gt;&lt;/code&gt; to see the details of the pr in your terminal.&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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F9124f58c-7556-4494-9616-4a9c608aa7f9" 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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F9124f58c-7556-4494-9616-4a9c608aa7f9" alt="gh pr review"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. View action workflows 👀
&lt;/h2&gt;

&lt;p&gt;We can view the action workflows right from the command line with the &lt;em&gt;gh&lt;/em&gt; cli. This command will list all the recent action workflows for the repository.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh run list



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2Fcd88ca64-95d2-44f5-bf9e-06d6d05d2da8" 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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2Fcd88ca64-95d2-44f5-bf9e-06d6d05d2da8" alt="gh run list"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also run workflows right from your terminal with the command &lt;code&gt;gh workflow run &amp;lt;workflow name&amp;gt;&lt;/code&gt;. This command will run the workflow and prompt you for any required inputs.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh workflow run &amp;lt;workflow filename&amp;gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  6. Open your current Repo in the browser 💻
&lt;/h2&gt;

&lt;p&gt;You can open your current repository in the browser right from your terminal. This command will take you to the homepage of your repository.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh browse



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If you you attach the -b option, you can open the current branch in the browser, like so:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh browse &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="s2"&gt;"branch name"&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  7. Create and update Project Boards 📋
&lt;/h2&gt;

&lt;p&gt;Creating a project from your terminal with the command line requires you to have project scope permissions. To update your auth token with project scope permissions, run the following command and follow the on screen prompts:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh auth refresh &lt;span class="nt"&gt;-s&lt;/span&gt; project,read:project



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once that's confirmed, you can create a project board with the command &lt;code&gt;gh project create&lt;/code&gt; and follow the on screen prompts.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh project create &lt;span class="nt"&gt;--owner&lt;/span&gt; &lt;span class="s2"&gt;"owner"&lt;/span&gt; &lt;span class="nt"&gt;--title&lt;/span&gt; &lt;span class="s2"&gt;"title"&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  8. Create edit, and view Releases 🚀
&lt;/h2&gt;

&lt;p&gt;You can create a release with the command &lt;code&gt;gh release create&lt;/code&gt; and follow the on screen prompts.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh release create &lt;span class="nt"&gt;--title&lt;/span&gt; &lt;span class="s2"&gt;"title"&lt;/span&gt; &lt;span class="nt"&gt;--notes&lt;/span&gt; &lt;span class="s2"&gt;"notes"&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You can also edit, dowload assets and delete relases with the &lt;em&gt;gh&lt;/em&gt; cli. You can find more information about this &lt;a href="https://cli.github.com/manual/gh_release" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Start and Stop Codespaces 💻
&lt;/h2&gt;

&lt;p&gt;A Codespace is an online development environment. You can start a codespace with the command &lt;code&gt;gh codespace create&lt;/code&gt; and follow the on screen prompts. You can also do it by specifying certain flags, for example, the branch you want to use:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh codespace create &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="s2"&gt;"branch"&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F02e6e688-53d9-4134-aaef-b07feea39fa2" 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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F02e6e688-53d9-4134-aaef-b07feea39fa2" alt="gh codespace create"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can then open up the codespace in VSCode or Jupyter Notebooks with the command &lt;code&gt;gh codespace code [flags]&lt;/code&gt; or &lt;code&gt;gh codespace jupyter [flags]&lt;/code&gt;, respectively, where the flags can include the version of vscode, repo, repo owner and name of the codespace you want to open.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Browse and create &lt;em&gt;gh&lt;/em&gt; cli extensions 📦
&lt;/h2&gt;

&lt;p&gt;You can run &lt;code&gt;gh extension browse&lt;/code&gt; in your terminal to view a list of all available cli extensions to make your terminal experience even better. You can also install ann extension directly from the browsing interface.&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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F2d4e3be9-ece5-404d-b690-3bb9d7354556" 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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2F2d4e3be9-ece5-404d-b690-3bb9d7354556" alt="gh extension browse command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To install an extension you like, run &lt;code&gt;gh extension install &amp;lt;repository&amp;gt; [flags]&lt;/code&gt; and follow the on screen prompts.&lt;br&gt;
You can also create your own cli extensions with the command &lt;code&gt;gh ext create&lt;/code&gt; and follow the on screen prompts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Help with the &lt;em&gt;gh&lt;/em&gt; cli ❓
&lt;/h2&gt;

&lt;p&gt;If you're ever unsure of what to do with the GitHub CLI or how to use it, you can always run &lt;code&gt;gh --help&lt;/code&gt; and it will give you a list of all the commands, help topics, extensions, flags and examples you can run with the GitHub CLI.&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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2Fa10819b9-f478-4430-933b-4aa0db58281f" 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%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2Fa10819b9-f478-4430-933b-4aa0db58281f" alt="gh --help command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Copilot for CLI 🤖
&lt;/h2&gt;

&lt;p&gt;Ever forget a command and have to search for it over and over again? Yea, me too. This is why we built &lt;a href="https://githubnext.com/projects/copilot-cli" rel="noopener noreferrer"&gt;GitHub Copilot for CLI&lt;/a&gt;. It provides a chat-like interface in your terminal to help you find commands for GitHub CLI, shell commands and git.&lt;/p&gt;

&lt;p&gt;I'll be showing you how to use GitHub Copilot for CLI and how amazing it is at &lt;a href="https://reg.githubuniverse.com/flow/github/universe23/sessioncatalog/page/sessioncatalog?search=AI2755D" rel="noopener noreferrer"&gt;taking your command line skills to the next level&lt;/a&gt;. Join me at GitHub Universe next month to see it in action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reg.githubuniverse.com/flow/github/universe23/sessioncatalog/page/sessioncatalog?search=AI2755D" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FLadyKerr%2Fgh-cli-example-repo%2Fassets%2F47188731%2Ff9e22821-df86-4890-9bf1-bcb27150524d" alt="github universe copilot for cli talk"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you can't make it in person, virtual passes are free and open to everyone. Register &lt;a href="https://githubuniverse.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have any questions about the &lt;em&gt;gh&lt;/em&gt; cli, feel free to post them below and I'll do my best to answer them. 😄&lt;/p&gt;

</description>
      <category>cli</category>
      <category>github</category>
      <category>tutorial</category>
      <category>git</category>
    </item>
    <item>
      <title>From TSV to CSV: How GitHub Copilot Chat Made Data Conversion a Breeze!</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Tue, 29 Aug 2023 17:44:01 +0000</pubDate>
      <link>https://dev.to/github/from-tsv-to-csv-how-github-copilot-chat-made-data-conversion-a-breeze-2i3g</link>
      <guid>https://dev.to/github/from-tsv-to-csv-how-github-copilot-chat-made-data-conversion-a-breeze-2i3g</guid>
      <description>&lt;p&gt;I recently discovered that GitHub projects has TSV exports! 💃🏼&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%2Fzcv27hrrz6k4hy1neuvx.gif" 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%2Fzcv27hrrz6k4hy1neuvx.gif" alt="projects-export-tsv"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was super excited about this but it also made me realize that some folks may want/prefer csv files and so, I asked by bestie - GitHub Copilot Chat - to help me convert a TSV file to a CSV file in Python. &lt;br&gt;
Now, I'm not a Python Developer, so I wasn't sure how I would do this in Python, and while I could use an npm module like &lt;a href="https://github.com/mholt/PapaParse" rel="noopener noreferrer"&gt;PapaParse&lt;/a&gt; to accomplish this, I wanted to try another language. &lt;/p&gt;

&lt;p&gt;Honestly, it was pretty seamless! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's how I did it:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;  Download your TSV file and add it to a folder, then open said folder in VSCode (or your preferred editor). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Create a new Python file, I called mine &lt;code&gt;tsv_to_csv.py&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Navigate to GitHub Copilot Chat and ask "how do I convert a tsv file to csv with python?" &lt;br&gt;
I was provided with the following code:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ruby-study-guide.tsv&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;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tsvfile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;reader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tsvfile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;delimiter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ruby-study-guide.csv&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;w&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newline&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;csvfile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csvfile&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writerow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Conversion complete!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;If you're not familiar with GitHub Copilot Chat, read this blog post to learn &lt;a href="https://dev.to/github/getting-started-with-github-copilot-chat-in-vscode-174m"&gt;how to get started with it&lt;/a&gt;. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Paste the code into your file by clicking the "Insert at Cursor" icon.&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%2F5yqa1253zuj30dwtlwq9.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%2F5yqa1253zuj30dwtlwq9.png" alt="insert at cursor icon GitHub Copilot Chat interface"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Save your file, run the code with &lt;code&gt;python &amp;lt;&amp;lt;name of your file here&amp;gt;&amp;gt;&lt;/code&gt;, for example &lt;code&gt;python tsv_to_csv.py&lt;/code&gt;, and enjoy your csv file!&lt;/p&gt;

&lt;p&gt;Here's a video/gif on the steps I did above:&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%2Fps4nl5lj2qe2619ipcwf.gif" 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%2Fps4nl5lj2qe2619ipcwf.gif" alt="convert tsv to csv with Github copilot chat"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Now that you know that GitHub Projects has TSV exports, learn more tidbits that you possibly didn't know by reading this blog post I wrote on &lt;a href="https://github.blog/2023-08-28-10-things-you-didnt-know-you-could-do-with-github-projects/" rel="noopener noreferrer"&gt;10 things you didn't know you could do with GitHub Projects&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let me know if you have any questions about GitHub Copilot or GitHub Projects below!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>githubcopilot</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Getting Started with GitHub Copilot Chat in VSCode</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Mon, 21 Aug 2023 18:40:33 +0000</pubDate>
      <link>https://dev.to/github/getting-started-with-github-copilot-chat-in-vscode-174m</link>
      <guid>https://dev.to/github/getting-started-with-github-copilot-chat-in-vscode-174m</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/github-copilot/chat_waitlist_signup/join" rel="noopener noreferrer"&gt;GitHub Copilot Chat&lt;/a&gt; is an extension that works in your Code Editor or IDE (VS Code or Visual Studio currently) that allows you to have conversations with GitHub Copilot right from your editor.You're able to get code suggestions, build, debug and tests applications with an AI model that understands natural language right from your editor. &lt;/p&gt;

&lt;h3&gt;
  
  
  Getting started
&lt;/h3&gt;

&lt;p&gt;To get started using GitHub Copilot Chat in VSCode, ensure that you have access to the extension by checking your email for access privileges. You get access privileges &lt;a href="https://github.blog/2023-07-20-github-copilot-chat-beta-now-available-for-every-organization/" rel="noopener noreferrer"&gt; through your organization&lt;/a&gt; or by being taken off the&lt;a href="https://github.com/github-copilot/chat_waitlist_signup/join" rel="noopener noreferrer"&gt; waitlist for the private beta&lt;/a&gt; for individuals. You also need to ensure that you have an active GitHub Copilot subscription.&lt;/p&gt;

&lt;p&gt;To verify your access, click on your GitHub profile and select "Try Copilot." If you have access to GitHub Copilot, you will see a message at the top of your settings page indicating such and if you don't have access, you will be routed to another page to start your 30-day free trial.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;
      
        &lt;img alt="copilot-chat-have-access" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F47188731%2F257664686-4e5fdacf-8e65-4021-81fa-656c52a8148a.png"&gt;You have access to GitHub Copilot
         
      
    &lt;/td&gt;
    &lt;td&gt;
      
        &lt;img alt="copilot-chat-access-signup" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F47188731%2F257663728-98ca93a1-7947-4597-ae71-e0360f062a88.png"&gt;You do not have access to GitHub Copilot
        
      
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Installing GitHub Copilot Chat &amp;amp; asking your first question
&lt;/h3&gt;

&lt;p&gt;Once you verify those details, follow the steps below to start using GitHub Copilot Chat:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search for "GitHub Copilot Chat" in the vscode extension marketplace, and click the blue install button. After the installation, you'll be prompted to login to your GitHub Account to validate your access to copilot chat.&lt;/li&gt;
&lt;/ol&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%2F3heciw7xz6fri289pz0r.gif" 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%2F3heciw7xz6fri289pz0r.gif" alt="how to install copilot chat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Be sure to sign in to the GitHub account that has access to your GitHub Copilot subscription and also that has access to Copilot Chat.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Once you've installed the extension, you're ready to use it! You'll see a message/chat icon appear on the side of your code editor, click that icon and start asking programming related questions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can start by asking a simple question like "How do I set up a new ruby project?" and it will provide you with a suggestion.&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%2Fi1sqenu71snd3o6yr1uo.gif" 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%2Fi1sqenu71snd3o6yr1uo.gif" alt="Ask copilot chat how to setup ruby project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's how you start using copilot chat in VSCode. &lt;/p&gt;

&lt;h3&gt;
  
  
  Slash Commands + GitHub Copilot Chat
&lt;/h3&gt;

&lt;p&gt;There are some really amazing slash commands that you have access to as well that makes it easier to ask for help, create vscode extensions or create unit tests. To start using Slash Commands with GitHub Copilot, type &lt;code&gt;/&lt;/code&gt; in the input box and you'll see the multiple options come up.&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%2Fuser-images.githubusercontent.com%2F47188731%2F257674956-c0988417-7945-4184-9c24-80d296e8505b.png" class="article-body-image-wrapper"&gt;&lt;img alt="copilot-chat-slash-command" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F47188731%2F257674956-c0988417-7945-4184-9c24-80d296e8505b.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choose one of the options and then ask a question to get a suggestion. &lt;/p&gt;

&lt;h3&gt;
  
  
  Asking GitHub Copilot Chat questions about your code
&lt;/h3&gt;

&lt;p&gt;To ask Copilot Chat specific questions about the code you're working on, open up the file in your editor, and navigate to the chat extension. &lt;/p&gt;

&lt;p&gt;Let's say for example this is your first time interacting with this particular repository, and you don't quite understand the code, you can ask copilot chat "what does this file mean?" and it will provide a suggested explanation of what the code is doing.&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%2Fpxiqlcvignw4s5aa3nle.gif" 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%2Fpxiqlcvignw4s5aa3nle.gif" alt="copilot-explains-code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using Code Suggestions from GitHub Copilot Chat
&lt;/h3&gt;

&lt;p&gt;Whenever you ask copilot chat for code suggestions, you can accept them by copying the suggestion from the chat interface or clicking the "Insert at Cursor" button. You can also insert the suggestion into a new file, or run the code in the terminal if applicable.&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%2Fg639h4u8m3y30vb466ui.gif" 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%2Fg639h4u8m3y30vb466ui.gif" alt="use copilot chat code suggestions"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was able to use GitHub Copilot Chat to tell me how to insert two images side by side using markdown ☺️ I copied to provided code suggestion and pasted it here and voila! I had two images side-by-side. 💃🏽&lt;/p&gt;

&lt;h3&gt;
  
  
  Opening a Copilot Chat session in your editor
&lt;/h3&gt;

&lt;p&gt;To make your life a little easier, we've made it possible to open up a copilot chat session right in your editor, so you don't have to go back and forth between the chat interface and your files.&lt;/p&gt;

&lt;p&gt;To do this, click on the chat icon on the side, and click the three dots at the top and select "Open session in editor" this will move the chat into your editor, similar to how a file would be open.&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%2Fwgodfs1hueptrgqlhw43.gif" 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%2Fwgodfs1hueptrgqlhw43.gif" alt="open chat session in editor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have any issues, questions, comments or concerns, feel free to leave them below and I'll try as best as possible to get you an answer! I hope you enjoy using GitHub copilot Chat as much as I do!&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ai</category>
      <category>githubcopilot</category>
      <category>vscode</category>
    </item>
    <item>
      <title>How to Enable 2FA for your GitHub Account </title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Mon, 27 Feb 2023 22:31:21 +0000</pubDate>
      <link>https://dev.to/github/how-to-enable-2fa-for-your-github-account-4o60</link>
      <guid>https://dev.to/github/how-to-enable-2fa-for-your-github-account-4o60</guid>
      <description>&lt;p&gt;Two-factor authentication (2FA) is an extra layer of security used when logging into websites or apps. It requires you to log in with your username, password, and provide an additional form of authentication that is uniquely accessed by you. &lt;br&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%2Fgycej165asza76pk58o9.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%2Fgycej165asza76pk58o9.png" alt="2FA will be required by end of 2023" width="671" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By the end of 2023, 2FA will be mandatory for all GitHub accounts - both on web and mobile (iOS and Android).&lt;/strong&gt; Let’s get a head start on the process by enabling at least 1 form of 2FA on our GitHub accounts.&lt;/p&gt;

&lt;p&gt;In your account, you have the option to choose one of the following methods for 2FA:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authenticator App (TOTP app) &lt;/li&gt;
&lt;li&gt;Text/SMS Authentication &lt;/li&gt;
&lt;li&gt;GitHub Mobile App&lt;/li&gt;
&lt;li&gt;Security Codes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I strongly recommend using an authenticator app, such as Microsoft Authenticator or Authy, to configure 2FA for your account as they are more reliable that SMS/text message based authentication. &lt;/p&gt;

&lt;p&gt;Let's walkthrough configuring 2FA on web and mobile using an authenticator app. &lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring 2FA on the Web 
&lt;/h3&gt;

&lt;p&gt;To enable 2FA on GitHub's webpp, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Download an authenticator app. I'm using &lt;a href="https://www.microsoft.com/en-us/security/mobile-authenticator-app" rel="noopener noreferrer"&gt;Microsoft Authenticator&lt;/a&gt;.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In your GitHub account, go to &lt;strong&gt;Settings&lt;/strong&gt; &lt;br&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%2Fearfhdvdr30bnnygw2zf.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%2Fearfhdvdr30bnnygw2zf.png" alt="go to settings" width="233" height="570"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under Access, select &lt;strong&gt;Password and authentication&lt;/strong&gt; &lt;br&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%2Fyrp6syn4xqvve5719xfq.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%2Fyrp6syn4xqvve5719xfq.png" alt="Password and authentication" width="337" height="299"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You will then see an option to enable 2FA, click the green button, &lt;strong&gt;"Enable two-factor authentication"&lt;/strong&gt;&lt;br&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%2Ffp5tetz7qq76fz1jxecp.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%2Ffp5tetz7qq76fz1jxecp.png" alt="enable-2fa-screen" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This will take you to a page to setup your authenticator app. Use the authenticator app you downloaded to scan the QR code on the screen.&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%2Fkcj80040ln88jwet25xa.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%2Fkcj80040ln88jwet25xa.png" alt="scan-qr-code" width="800" height="731"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you scan the QR code with the app, enter the generated code in the highlighted text box and click &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The next screen will ask you to download your recovery codes. Click the green download button and save these codes in a password manager - I love &lt;a href="https://bitwarden.com/" rel="noopener noreferrer"&gt;Bitwarden&lt;/a&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%2Fvuldkcpwgimovk8mzoq6.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%2Fvuldkcpwgimovk8mzoq6.png" alt="Download recovery codes" width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After you've downloaded and saved your codes, click the green button "I have saved my recovery codes" to confirm your download and complete enabling 2FA on your account. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And you're done! You've successfully enabled 2FA on your account. &lt;br&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%2Flda9hkw7f3jacgyjwqlz.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%2Flda9hkw7f3jacgyjwqlz.png" alt="congrats" width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can add a backup 2FA method for your account just in case using a security code (such as a touch ID on mac or a yubikey) or the GitHub mobile app. &lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring 2FA on Mobile  
&lt;/h3&gt;

&lt;p&gt;Getting 2FA enabled on your mobile device is very similar to what we just did on the web app. I'll be using an android device. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Go to the play store on Android or iOS App Store, search for the GitHub Mobile app install it (Im using an Android device). &lt;br&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%2Felx6znw1g99g971ju2ma.jpg" 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%2Felx6znw1g99g971ju2ma.jpg" alt="GitHub App on Google Play Store" width="800" height="1384"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once installed, you'll be prompted to sign into your account with your username and password.&lt;br&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%2F2xtyyz840zht1lghix94.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%2F2xtyyz840zht1lghix94.png" alt="Sign in to GitHub Mobile" width="729" height="573"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Since we just enabled 2FA on the webapp in our account, we'll be prompted to engter the authentication code from the authenticator app we previously downloaded. Enter the code and click &lt;strong&gt;Verify&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%2Fu50t94may0c9w9ittu08.jpg" 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%2Fu50t94may0c9w9ittu08.jpg" alt="2FA screen on mobile" width="800" height="1394"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Onced verified, you'll be prompted to authorize your GitHubHub mobile app with your GitHub account. Select &lt;strong&gt;Authorize github&lt;/strong&gt; to continue &lt;br&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%2Fez1dqvpg5hwp6ifg8o09.jpg" 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%2Fez1dqvpg5hwp6ifg8o09.jpg" alt="Authorize GitHub on Mobile" width="800" height="1542"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once authorized, you'll be rerouted to the Home screen on mobile. &lt;br&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%2Fv2dl5l07mm2q3a8ydcin.jpg" 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%2Fv2dl5l07mm2q3a8ydcin.jpg" alt="GitHub Mobile Homescreen" width="800" height="1590"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Wrapup
&lt;/h3&gt;

&lt;p&gt;And that's it! You've successfully enabled 2FA on GitHub web and mobile. Now GitHub your account is more secure. 🔐&lt;/p&gt;

&lt;p&gt;If you ever lose access to your 2FA credentials, you can use your recovery codes to gain access to your GitHub account. Learn how to use your recovery codes by reading the GitHub docs on &lt;a href="https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials" rel="noopener noreferrer"&gt;Recovering your account if you lose your 2FA credentials&lt;/a&gt;. You can also learn more about 2FA by &lt;a href="https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication" rel="noopener noreferrer"&gt;reading the docs on GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>gratitude</category>
      <category>motivation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Codespaces Tips: How to Create Pull Requests Without Leaving Your Code Editor</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Wed, 25 Jan 2023 17:17:16 +0000</pubDate>
      <link>https://dev.to/github/codespaces-tips-how-to-create-pull-requests-without-leaving-your-code-editor-1la8</link>
      <guid>https://dev.to/github/codespaces-tips-how-to-create-pull-requests-without-leaving-your-code-editor-1la8</guid>
      <description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=sYJ3CHtT6WM&amp;amp;list=PL0lo9MOBetEFGPccyxyfex8BYF_PQUQWn&amp;amp;index=14" rel="noopener noreferrer"&gt;Codespaces&lt;/a&gt; has been a game changer for the way I work with repos on GitHub. For example, I no longer clone repositories to my local machine since there isn’t a need to do so anymore with Codespaces in the browser. &lt;/p&gt;

&lt;p&gt;Last week, while pushing code to update an internal workflow, Codespaces asked me an interesting question. Once I hit enter after my regular &lt;code&gt;git push&lt;/code&gt;, a notification popped up asking if I wanted to open a PR in Codespaces with &lt;a href="https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github" rel="noopener noreferrer"&gt;GitHub’s Pull Request and Issues extension&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Usually, I would completely ignore these pop up messages but I was intrigued enough to select “yes” and what happened next completely blew my mind - ok, ok, slight exaggeration but I was impressed!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xUA7b2KE79co5JD9N6/giphy-downsized.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xUA7b2KE79co5JD9N6/giphy-downsized.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This beautifully intuitive UI popped up on my side panel showing me my branch, the main branch that I need to merge my changes into, a title box with my commit message and a description section for my PR needs. There was even an option to create the PR as a draft, see below:&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%2Fuser-images.githubusercontent.com%2F47188731%2F211912800-5b7c165f-c1c1-4b53-82fd-2ca9541d67a3.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%2Fuser-images.githubusercontent.com%2F47188731%2F211912800-5b7c165f-c1c1-4b53-82fd-2ca9541d67a3.png" alt="Pull Request dashboard in Codespaces"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point, I was not only intrigued, I was also impressed! You’re telling me that I don’t need to exit my code editor (codespace) to create a PR?! &lt;/p&gt;

&lt;p&gt;I continued creating the PR by hitting Create, which triggered a pop-up asking if I wanted to publish my changes in a new upstream branch and then create the PR.&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%2Fuser-images.githubusercontent.com%2F47188731%2F211912598-453dfeca-9cf0-4d8e-990b-334c9233864c.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%2Fuser-images.githubusercontent.com%2F47188731%2F211912598-453dfeca-9cf0-4d8e-990b-334c9233864c.png" alt="no upstream branch create one"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I obliged, clicked Publish Branch, and my PR was created with another pop-up asking if I wanted to periodically run &lt;code&gt;git fetch.&lt;/code&gt; Color me impressed by this extension. Color me impressed. &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%2Fuser-images.githubusercontent.com%2F47188731%2F211913080-55abe425-75d0-4e2f-95e2-87c4f8ce3413.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%2Fuser-images.githubusercontent.com%2F47188731%2F211913080-55abe425-75d0-4e2f-95e2-87c4f8ce3413.png" alt="periodically run git fetch pop-up"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But, just in case you don’t get that pop-up asking if you want to open a PR, to create a PR in Codespaces, click on the GitHub icon in the editor. This will pull up a side panel option that’s like a Pull Request Dashboard. Once there, click Create Pull Request as shown below, and create your PR!&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%2Fuser-images.githubusercontent.com%2F47188731%2F211915699-f36ee8d4-3576-412a-931f-76894ed2bcf6.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%2Fuser-images.githubusercontent.com%2F47188731%2F211915699-f36ee8d4-3576-412a-931f-76894ed2bcf6.png" alt="create pr in codespaces"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve used the extension before in VSCode, you’d already know how to do this and it works the same in Codespaces. What I did appreciate is that this extension built into Codespaces was intelligent enough to ask me if I wanted to use it. &lt;/p&gt;

&lt;p&gt;I’m super glad I clicked yes on that pop-up notification instead of ignoring it. It just goes to show that &lt;em&gt;sometimes&lt;/em&gt;, pop-ups can be useful. &lt;br&gt;
&lt;a href="https://i.giphy.com/media/u8wfPJO1CNx6ZbYWir/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/u8wfPJO1CNx6ZbYWir/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you tried this extension before? Or Codespaces? Let me know your thoughts in the comments and give &lt;a href="https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github" rel="noopener noreferrer"&gt;GitHub Pull Request and Issues extensions&lt;/a&gt; a try!&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>codespaces</category>
      <category>beginners</category>
      <category>github</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The role software developers play in the cybersecurity space</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Thu, 10 Mar 2022 19:54:49 +0000</pubDate>
      <link>https://dev.to/lacework/the-role-software-developers-play-in-the-cybersecurity-space-1jh2</link>
      <guid>https://dev.to/lacework/the-role-software-developers-play-in-the-cybersecurity-space-1jh2</guid>
      <description>&lt;p&gt;Cybersecurity is the intentional practice of securing networks, data, and devices from unauthorized users. With the growing increase in cyberattacks and security vulnerabilities (most recently, the &lt;a href="https://www.lacework.com/blog/log4j-and-whatever-comes-next/"&gt;Log4j vulnerability&lt;/a&gt;), it’s becoming increasingly important for developers to understand how to secure applications and think like cybercriminals to prevent these attacks from severely harming customers.&lt;/p&gt;

&lt;p&gt;As software developers, we have a unique opportunity to be one of the first lines of defense against cyberattacks. The software development lifecycle focuses on implementing core functionality in software and applications; code quality and security is often an afterthought. However, our understanding of core cybersecurity principles can make or break the applications that we build. &lt;/p&gt;

&lt;p&gt;Since 2003, the Open Web Application Security Project (OWASP) has highlighted the 10 most critical security risks to web applications via &lt;a href="https://owasp.org/www-project-top-ten/"&gt;OWASP Top 10 list&lt;/a&gt;. This is “globally recognized by developers as the first step towards more secure coding.” However, some of the same vulnerabilities appear year over year with little to no improvements on the quality of software code being deployed to production environments.&lt;/p&gt;

&lt;p&gt;Organizations deem it unacceptable for software teams to knowingly ship products with functional defects. It is time for organizations to also find it unacceptable to ship products with security defects. Security starts and ends with us - the developers. Unless a software team intentionally focuses on code quality and security, vulnerabilities will find their way into shipped products, and cybercriminals will exploit those vulnerabilities.&lt;/p&gt;

&lt;p&gt;As developers, we can help prevent cyberattacks by proactively implementing security controls in our code.  We can accomplish this in the following ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Take the time to resolve high-severity alerts by keeping packages and dependencies updated. We can use tools like &lt;a href="https://github.com/renovatebot/renovate"&gt;Renovate&lt;/a&gt; and &lt;a href="https://www.whitesourcesoftware.com/"&gt;WhiteSource&lt;/a&gt; to automatically scan for updates. &lt;/li&gt;
&lt;li&gt;Identify and understand the typical vulnerabilities for our tech stacks. We can use a tool such as the &lt;a href="https://cve.mitre.org/cve/search_cve_list.html"&gt;CVE&lt;/a&gt; to search for vulnerabilities in the software that we use. &lt;/li&gt;
&lt;li&gt;Test for what our code is and is not meant to do. &lt;/li&gt;
&lt;li&gt;Upskill by taking security courses on platforms such as Udemy. For example, this course teaches &lt;a href="https://www.udemy.com/course/cybersecurity-for-developers-1/"&gt;cybersecurity for developers&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Understand how to perform security testing such as vulnerability scanning and penetration tests. There are many tools available to automate this.&lt;/li&gt;
&lt;li&gt;Review the &lt;a href="https://owasp.org/www-project-top-ten/"&gt;OWASP Top 10 list&lt;/a&gt; to understand the most common security attacks and how to prevent them. &lt;/li&gt;
&lt;li&gt;At the very least, be familiar with the following three attacks:

&lt;ul&gt;
&lt;li&gt;Broken access control&lt;/li&gt;
&lt;li&gt;Cryptographic failures&lt;/li&gt;
&lt;li&gt;Injection attacks&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We control the security of the software and applications we build with code. Understanding cybersecurity is important because it protects the users and intellectual property of the companies that we work for. &lt;/p&gt;

&lt;p&gt;Come learn security with me in the &lt;a href="https://community.lacework.com/c/cloud-fundamentals/19"&gt;Lacework Community&lt;/a&gt;, where I’ll cover fundamental security topics for software developers.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>softwaredevelopers</category>
      <category>beginners</category>
    </item>
    <item>
      <title>From Social Worker to Software Engineer 💃</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Mon, 07 Oct 2019 03:45:28 +0000</pubDate>
      <link>https://dev.to/ladykerr/from-social-worker-to-software-engineer-56e0</link>
      <guid>https://dev.to/ladykerr/from-social-worker-to-software-engineer-56e0</guid>
      <description>&lt;p&gt;Six months ago I began my journey into the world of software engineering by joining the Full-Stack Web Development &amp;amp; Computer Science program at Lambda School. &lt;a href="https://dev.to/ladykerr/my-first-three-weeks-at-lambda-school-4lm0"&gt;The last time I wrote a blog post&lt;/a&gt;, I wrote from the perspective of a part-time student. So much has changed since then so I figured it was time to write an updated post. 📒&lt;/p&gt;

&lt;h2&gt;
  
  
  Transitioning to the Full-time cohort 💻
&lt;/h2&gt;

&lt;p&gt;At the end of May 2019, I decided to transition to the full-time cohort to accelerate my progress and learning in the program. I was working up to 35hrs per week in addition to coding for &lt;em&gt;at least&lt;/em&gt; 8hrs per day. Needless to say it was quite stressful and overwhelming. 😩 😩 😩&lt;/p&gt;

&lt;p&gt;In August, and after speaking with my partner, I left my full-time job, started working as a part-time Team Section Lead at Lambda School and kept pushing through the program. August &amp;amp; September were the two most trying times. Apart from the stress &amp;amp; shock of learning Reactjs &amp;amp; Redux back in June, participating in the 2 months in-house apprenticeship (labs) was maddening - primarily because I was coding all day with my team then had to switch to managing students &amp;amp; team leads in the part time cohort. My day started at 8am and ended at midnight most days. It was (and still is) &lt;em&gt;a lot of work.&lt;/em&gt; 💤 😫&lt;/p&gt;

&lt;p&gt;By the time labs ended, I was completely burnt out. 😩 So I asked for a short break from school. I wanted to be in the right mindset before going into the hardest part of the curriculum - computer science fundamentals. Additionally, I wanted to give myself time to enjoy the Grace Hopper Conference which was immediately after completing labs. 💃&lt;/p&gt;

&lt;h2&gt;
  
  
  Grace Hopper Celebration 🎉
&lt;/h2&gt;

&lt;p&gt;Sometime this year I received a registration scholarship from AnitaB to attend Grace Hopper. This was my very first time attending a tech conference and I was determined to make connections and engage with as many employers as possible. 😀&lt;/p&gt;

&lt;p&gt;While I was extremely surprised &lt;em&gt;at first&lt;/em&gt; to see how underrepresented WOC were at the conference, I made it my goal to present myself as best as possible and tried to standout among the &lt;em&gt;large computer science&lt;/em&gt; crowd. I used the wonderful interpersonal skills I gained from working in the field of Social Work, Non-Profit Organizations &amp;amp; Government, to connect with recruiters on an individual level and create meaningful conversations. 💬&lt;/p&gt;

&lt;p&gt;I spoke about my journey, my former career and my current tech stack and was surprised at how receptive most employers were to my story. This increased my confidence and allowed me to shine even brighter when I was speaking with the Engineering Director at Northwestern Mutual's (NM) booth. 🏦&lt;/p&gt;

&lt;p&gt;I'm happy to say that I was hired by NM as an Associate Engineer and will begin that journey in January 2020 after completing Lambda School in December. 😲 I still cannot believe this happened because my goal was to work in the fintech space post graduation. 😲 😀&lt;/p&gt;

&lt;h2&gt;
  
  
  The Journey Ahead ✈️
&lt;/h2&gt;

&lt;p&gt;As I continue my learning at Lambda and prepare to move across the country with my partner, I'm simply amazed at how much I have learned and how much I am yet to discover. Discovering code in December 2018 has been a transformative experience.   ✨ ✨ &lt;/p&gt;

&lt;p&gt;As a Jr Software Engineer, I am so excited to see what lies ahead. 😀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>My First Three Weeks at Lambda School as a PT Student</title>
      <dc:creator>Kedasha</dc:creator>
      <pubDate>Sat, 06 Apr 2019 20:36:26 +0000</pubDate>
      <link>https://dev.to/ladykerr/my-first-three-weeks-at-lambda-school-4lm0</link>
      <guid>https://dev.to/ladykerr/my-first-three-weeks-at-lambda-school-4lm0</guid>
      <description>&lt;p&gt;This week I completed my first three weeks in Lambda School's part-time Full-Stack Web Engineering and Computer Science bootcamp. As the program is 18 months long, I have quite the way to go.&lt;/p&gt;

&lt;p&gt;I wanted to take the time to write about what the part-time program is like for anyone considering enrolling in a PT cohort. I hope my insight will give you an idea of what to expect upon enrolling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I decided to attend Lambda School
&lt;/h2&gt;

&lt;p&gt;Five months ago I had no idea what web development was. At the time I was searching for a more robust career trajectory and came across the world of software engineering and web development. After teaching myself HTML5/CSS3 on &lt;a href="https://www.codecademy.com/"&gt;codecademy&lt;/a&gt; I decided in early January that I wanted to make this my new career path.&lt;/p&gt;

&lt;p&gt;My intention was to use as many free resources and &lt;a href="https://www.udemy.com/the-web-developer-bootcamp/"&gt;Udemy&lt;/a&gt; to further my education, build as many projects as possible and apply for a job within 9 months. It was all planned + going quite well until in late January I came across JavaScript and hit a mental roadblock. I realized that I needed a more structured learning path to assist me in my learning, and decided to apply to a bootcamp to accelerate &amp;amp;&amp;amp; support my progress. Enter: &lt;a href="https://lambdaschool.com/"&gt;Lambda School&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The First Three Weeks
&lt;/h2&gt;

&lt;p&gt;My cohort started on March 18th and I am honestly amazed at what I've been able to accomplish in the past three weeks as a part time student. For the first portion of the curriculum we focus on web development fundamentals. In 3 short weeks I have solidified my knowledge in semantic html5, CSS3, responsive web design and accessibility. &lt;/p&gt;

&lt;p&gt;During the first week I learned about Git and the command line and I must say that I am starting to get quite comfortable with using these essential web developer tools. I have created pull requests, cloned repositories, create branches in existing repos and have started to create really amazing relationships with students in my cohort. I also created my first portfolio website! How exciting!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Next Three Weeks
&lt;/h2&gt;

&lt;p&gt;In the next three weeks I will have a solid understanding of pre-processing and start learning more about fundamental Javascript concepts. I will continue to do more advanced projects and continue to build relationships with the amazing students I am learning with.&lt;/p&gt;

&lt;p&gt;If you would like to see what I have done so far, see my Github repos &lt;a href="https://github.com/LadyKerr?tab=repositories"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Until next time, thanks for reading! :)&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
      <category>css</category>
    </item>
  </channel>
</rss>
