<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ronak Suthar</title>
    <description>The latest articles on Forem by Ronak Suthar (@ronakronu).</description>
    <link>https://forem.com/ronakronu</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%2F1338962%2F26903fb2-a49f-4486-99be-ba28761d89b3.jpeg</url>
      <title>Forem: Ronak Suthar</title>
      <link>https://forem.com/ronakronu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ronakronu"/>
    <language>en</language>
    <item>
      <title>How I Turned My GitHub Profile into a Real-Time Feedback Machine (and You Can Too!)”</title>
      <dc:creator>Ronak Suthar</dc:creator>
      <pubDate>Thu, 25 Jul 2024 16:51:27 +0000</pubDate>
      <link>https://forem.com/ronakronu/how-i-turned-my-github-profile-into-a-real-time-feedback-machine-and-you-can-too-2i3i</link>
      <guid>https://forem.com/ronakronu/how-i-turned-my-github-profile-into-a-real-time-feedback-machine-and-you-can-too-2i3i</guid>
      <description>&lt;p&gt;Have you ever wondered what your GitHub profile visitors really think about your projects? Do they love your code? Hate your documentation? Want to steal your ideas? Okay, maybe not that last one, but you get the idea!&lt;/p&gt;

&lt;p&gt;As a developer, I wanted to create a way to collect feedback, thoughts, and opinions from my visitors without them having to create an issue. I mean, let’s be real, who doesn’t love a good chat?&lt;/p&gt;

&lt;p&gt;So, I decided to hack my GitHub profile using a clever workflow pipeline that turns visitor thoughts into a live comment section on my README file! It’s like having a digital suggestion box, but way cooler!&lt;/p&gt;

&lt;p&gt;When a visitor opens an issue (i.e., leaves a thought), my workflow kicks in, running a Python script that extracts the issue author’s login, title, avatar, and body. Then, it appends a beautifully formatted comment to my README file, complete with the author’s avatar and thought.&lt;/p&gt;

&lt;p&gt;The YAML goes under .github/workflows and Python goes under the dir where your readme lives.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# hiii&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;Visitors Thoughts Workflow&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;issues&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;opened&lt;/span&gt;&lt;span class="pi"&gt;]&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;update-my-readme&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 Repository&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@v3&lt;/span&gt;
        &lt;span class="c1"&gt;# Coffee not included, but you'll need it for this workflow&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 Python Script (aka Magic Happens)&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;python runscript.py&lt;/span&gt;
        &lt;span class="c1"&gt;# Where the magic happens, or where the errors occur... &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;Update README (with a hint of drama)&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;

          &lt;span class="s"&gt;# The moment of truth...&lt;/span&gt;
          &lt;span class="s"&gt;echo "${{ github.event.issue.user.login }}" &lt;/span&gt;

          &lt;span class="s"&gt;# Setting up our GitHub bot identity (no catfishing here!)&lt;/span&gt;
          &lt;span class="s"&gt;git config --local user.email github-actions[bot]&lt;/span&gt;
          &lt;span class="s"&gt;git config --local user.name  &lt;/span&gt;

          &lt;span class="s"&gt;git add Readme.md&lt;/span&gt;
          &lt;span class="s"&gt;# Committing with a message that's not too confusing&lt;/span&gt;
          &lt;span class="s"&gt;git commit -m "Update README with issue owner"&lt;/span&gt;
          &lt;span class="s"&gt;# Pushing changes (please don't break, please don't break)&lt;/span&gt;
          &lt;span class="s"&gt;git push origin HEAD:main&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="c1"&gt;# The secret sauce (don't even think about trying to steal it!)&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;span class="c1"&gt;# If you're reading this, you're probably a developer.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# hiii
&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Visitors&lt;/span&gt; &lt;span class="n"&gt;Thoughts&lt;/span&gt; &lt;span class="n"&gt;Workflow&lt;/span&gt;

&lt;span class="n"&gt;on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="n"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;opened&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;my&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;readme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;runs&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ubuntu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;latest&lt;/span&gt;
    &lt;span class="n"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Checkout&lt;/span&gt; &lt;span class="n"&gt;Repository&lt;/span&gt;
        &lt;span class="n"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;actions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;checkout&lt;/span&gt;&lt;span class="nd"&gt;@v3&lt;/span&gt;
        &lt;span class="c1"&gt;# Coffee not included, but you'll need it for this workflow
&lt;/span&gt;
      &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Run&lt;/span&gt; &lt;span class="n"&gt;Python&lt;/span&gt; &lt;span class="nc"&gt;Script &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aka&lt;/span&gt; &lt;span class="n"&gt;Magic&lt;/span&gt; &lt;span class="n"&gt;Happens&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="n"&gt;runscript&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;py&lt;/span&gt;
        &lt;span class="c1"&gt;# Where the magic happens, or where the errors occur... 
&lt;/span&gt;
      &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Update&lt;/span&gt; &lt;span class="nc"&gt;README &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;hint&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;drama&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;

          &lt;span class="c1"&gt;# The moment of truth...
&lt;/span&gt;          &lt;span class="n"&gt;echo&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;${{ github.event.issue.user.login }}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; 

          &lt;span class="c1"&gt;# Setting up our GitHub bot identity (no catfishing here!)
&lt;/span&gt;          &lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="n"&gt;github&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;bot&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
          &lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;  

          &lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="n"&gt;Readme&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;md&lt;/span&gt;
          &lt;span class="c1"&gt;# Committing with a message that's not too confusing
&lt;/span&gt;          &lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;commit&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Update README with issue owner&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
          &lt;span class="c1"&gt;# Pushing changes (please don't break, please don't break)
&lt;/span&gt;          &lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;push&lt;/span&gt; &lt;span class="n"&gt;origin&lt;/span&gt; &lt;span class="n"&gt;HEAD&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;
        &lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
          &lt;span class="c1"&gt;# The secret sauce (don't even think about trying to steal it!)
&lt;/span&gt;          &lt;span class="n"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="n"&gt;secrets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GITHUB_TOKEN&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;
          &lt;span class="c1"&gt;# If you're reading this, you're probably a developer.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s all, user! done. Now, go forth and leave your witty remarks on my GitHub profile (redirect). As Linus Torvalds said, ‘I’ve finally learned to stop worrying and love the bug’ Yeah, replace that with ‘README updates’ and you’ve got my life. Thanks for sticking around, and don’t forget to roast me in the comments(just kidding) .&lt;/p&gt;

&lt;p&gt;REPO link: &lt;a href="https://github.com/Ronak-Ronu/Ronak-Ronu" rel="noopener noreferrer"&gt;https://github.com/Ronak-Ronu/Ronak-Ronu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Credits: &lt;a href="https://github.com/Ronak-Ronu" rel="noopener noreferrer"&gt;https://github.com/Ronak-Ronu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Learning.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>github</category>
      <category>githubactions</category>
    </item>
  </channel>
</rss>
