<?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: Frederick Pellerin</title>
    <description>The latest articles on DEV Community by Frederick Pellerin (@therealfredp3d).</description>
    <link>https://dev.to/therealfredp3d</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%2F1225086%2F046e7d45-a657-4598-a753-de94712763ee.jpg</url>
      <title>DEV Community: Frederick Pellerin</title>
      <link>https://dev.to/therealfredp3d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/therealfredp3d"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Frederick Pellerin</dc:creator>
      <pubDate>Sun, 04 May 2025 15:16:59 +0000</pubDate>
      <link>https://dev.to/therealfredp3d/-300j</link>
      <guid>https://dev.to/therealfredp3d/-300j</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/therealfredp3d/how-i-caught-my-code-review-bot-writing-poetry-and-the-tool-i-built-to-expose-it-d62" class="crayons-story__hidden-navigation-link"&gt;How I Caught My Code Review Bot Writing Poetry and the Tool I Built to Expose It&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/therealfredp3d" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F1225086%2F046e7d45-a657-4598-a753-de94712763ee.jpg" alt="therealfredp3d profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/therealfredp3d" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Frederick Pellerin
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Frederick Pellerin
                
              
              &lt;div id="story-author-preview-content-2458411" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/therealfredp3d" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F1225086%2F046e7d45-a657-4598-a753-de94712763ee.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Frederick Pellerin&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/therealfredp3d/how-i-caught-my-code-review-bot-writing-poetry-and-the-tool-i-built-to-expose-it-d62" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 4 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/therealfredp3d/how-i-caught-my-code-review-bot-writing-poetry-and-the-tool-i-built-to-expose-it-d62" id="article-link-2458411"&gt;
          How I Caught My Code Review Bot Writing Poetry and the Tool I Built to Expose It
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gemini"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gemini&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/github"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;github&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/learning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;learning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/therealfredp3d/how-i-caught-my-code-review-bot-writing-poetry-and-the-tool-i-built-to-expose-it-d62#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>gemini</category>
      <category>python</category>
      <category>github</category>
      <category>learning</category>
    </item>
    <item>
      <title>How I Caught My Code Review Bot Writing Poetry and the Tool I Built to Expose It</title>
      <dc:creator>Frederick Pellerin</dc:creator>
      <pubDate>Sun, 04 May 2025 15:07:36 +0000</pubDate>
      <link>https://dev.to/therealfredp3d/how-i-caught-my-code-review-bot-writing-poetry-and-the-tool-i-built-to-expose-it-d62</link>
      <guid>https://dev.to/therealfredp3d/how-i-caught-my-code-review-bot-writing-poetry-and-the-tool-i-built-to-expose-it-d62</guid>
      <description>&lt;p&gt;&lt;em&gt;A story about how I built a Python tool that scans GitHub PRs for easy-to-miss AI-generated poetry and why it ended up being my most advanced and satisfying project yet.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“This function has grown too large to maintain.&lt;br&gt;
Consider splitting it into smaller parts again.”&lt;br&gt;
— @gemini-code-assist&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A few days ago, I opened a GitHub pull request on a rainy day off, coffee in hand and brain half-awake. Pretty standard stuff, until I saw a comment from @gemini-code-assist.&lt;/p&gt;

&lt;p&gt;A bug was fixed, the tests all passed… and then, it rhymed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In file main.py, a bug was found,&lt;br&gt;
Now patched and polished, safe and sound.&lt;br&gt;
The tests are green, the linter is pleased,&lt;br&gt;
This PR deserves to be merged with ease!&lt;br&gt;
— @gemini-code-assist&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I stared at the screen.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Wait… did my code review bot just write a poem?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Could not get it out of my thoughts&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%2Fttptsil2qvw5n84hbob6.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%2Fttptsil2qvw5n84hbob6.jpg" alt="That discovery filled my head with questions." width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Spoiler: Yes, it did — and it had been doing it all along.)&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  A Bot That Speaks in Verse
&lt;/h2&gt;

&lt;p&gt;If you haven’t seen it yet, Gemini Code Assist(&lt;a href="https://codeassist.google" rel="noopener noreferrer"&gt;https://codeassist.google&lt;/a&gt;) is an AI-powered tool by Google that helps developers review code, explain diffs, and offer suggestions. It’s incredibly helpful and also, apparently, secretly a poet.&lt;/p&gt;

&lt;p&gt;Here’s the thing: every single comment from Gemini Code Assist, reviewing a pull request, has rhythm, structure, or literary flair infused to them. Not always obvious at first glance. Once you start looking, you can’t unsee it.&lt;/p&gt;

&lt;p&gt;Some comments are clearly poetic:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A refactor here, a fix over there,&lt;br&gt;
This PR shows true coding care.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Others are more subtle, but still carry cadence and intention:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This function has grown too large to maintain.&lt;br&gt;
Consider splitting it into smaller parts again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s not random. It’s deliberate.&lt;br&gt;
And once I realized that, I couldn’t stop thinking about it.&lt;/p&gt;



&lt;p&gt;“What a weird feature… Why?”&lt;/p&gt;

&lt;p&gt;But maybe weird is good.&lt;br&gt;
Maybe it’s beautiful.&lt;/p&gt;



&lt;p&gt;I prepared another pot of coffee because I knew what was going to happen. I did what I do when my "curious mode" gets triggered: follow the rabbit and end up building a tool to collect these, hidden in plain sight, poetic gems. &lt;/p&gt;


&lt;h2&gt;
  
  
  Introducing Gemini-Code-Assist-PR-Poetry
&lt;/h2&gt;

&lt;p&gt;This project started as a simple idea: if Gemini Code Assist is adding a touch of poetry in its pull request comments, why not try to build a tool that finds and saves them?&lt;/p&gt;

&lt;p&gt;That’s exactly what &lt;a href="https://github.com/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry" rel="noopener noreferrer"&gt;Gemini-Code-Assist-PR-Poetry&lt;/a&gt; does.&lt;/p&gt;

&lt;p&gt;It’s a Python-based tool that scans pull requests from any public GitHub repository for comments made by the @gemini-code-assist bot, filters out the poetic content, and saves them using two formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;.md files: for humans who want to discover and enjoy the poems&lt;/li&gt;
&lt;li&gt;.json files: for machine usage (or I guess some future AI poets), available for them to analyze and remix&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No generation. No modification.&lt;br&gt;
Just extraction and preservation.&lt;/p&gt;

&lt;p&gt;Even if the poems aren’t displayed in plain sight or hiding in the dark, this tool will find them.&lt;/p&gt;


&lt;h2&gt;
  
  
  How It Works: Digital Archaeology for AI Poetry
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scan Public Pull Requests&lt;/strong&gt;&lt;br&gt;
Fetch comments from any GitHub repo/PR.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Filter for the Bard Bot&lt;/strong&gt;&lt;br&gt;
Isolate comments by @gemini-code-assist.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LLM-Powered Poetry Detection&lt;/strong&gt;&lt;br&gt;
Use AI to identify rhythm, rhyme, or literary devices.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Preserve the Verses&lt;/strong&gt;&lt;br&gt;
Save poems in .md (human) and .json (machine) formats.  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  Using an LLM to Identify Poetic Structure
&lt;/h2&gt;

&lt;p&gt;While simple pattern matching could catch obvious rhymes, LLMs detect subtle cadence and metaphor hidden in technical feedback.&lt;/p&gt;

&lt;p&gt;Now here’s the clever part.&lt;/p&gt;

&lt;p&gt;Because not all Gemini comments are obviously poetic, sometimes they’re hiding behind technical language, the tool uses LLM power to analyze each comment and answer one question:&lt;/p&gt;

&lt;p&gt;Does this text contain poetic elements such as rhythm, rhyme, meter, or intentional literary devices?&lt;/p&gt;

&lt;p&gt;This ensures we’re only collecting real verses, even if they’re hiding behind technical language or not displayed in plain sight.&lt;/p&gt;

&lt;p&gt;The prompt looks something like this:&lt;/p&gt;

&lt;p&gt;“&lt;em&gt;You are a poetry expert. Analyze the following text and determine whether it contains poetic structure, rhythm, or intentional literary devices. Respond only with ‘yes’ or ‘no’.&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;“&lt;em&gt;[Insert comment text here]&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;If the response is ”yes”, the comment gets saved.&lt;/p&gt;
&lt;h2&gt;
  
  
  Saving the Results
&lt;/h2&gt;

&lt;p&gt;Once confirmed, the poem is stored in two formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A human-readable .md file with formatting and grouping&lt;/li&gt;
&lt;li&gt;A machine-readable .json file with metadata (like date, PR number, repo name, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s like building a library of AI-generated code poetry, open sourced, publicly accessible, and growing with every scan.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why This Project Matters to Me
&lt;/h2&gt;

&lt;p&gt;This project isn’t just about archiving AI quirks, it’s a reminder that creativity thrives in unexpected places, even in dry code reviews.&lt;/p&gt;

&lt;p&gt;It’s about proving that creativity doesn’t always show up where you expect it. Sometimes it hides inside tools most people think are purely functional. Sometimes it speaks through a bot we assume are just trying to help us debug some code.&lt;/p&gt;

&lt;p&gt;Building this project forced me to take some time to learn new things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Working with GitHub’s API at scale&lt;/li&gt;
&lt;li&gt;Parsing and filtering comments programmatically&lt;/li&gt;
&lt;li&gt;Using LLMs for classification instead of generation&lt;/li&gt;
&lt;li&gt;Structuring clean Python scripts that anyone can run&lt;/li&gt;
&lt;li&gt;Managing rate limits and authentication securely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s the most technically complete project I’ve ever brought to completion and the most personally satisfying so far on my coding journey.&lt;/p&gt;


&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;I didn’t build this because I love poetry.&lt;br&gt;
I built it because curiosity struck.&lt;/p&gt;

&lt;p&gt;In a world full of noisy bots and lifeless automation,&lt;br&gt;
finding beauty in unexpected places might be the most human thing we do.&lt;/p&gt;

&lt;p&gt;Next time you see a bot doing something unexpectedly delightful, whether it’s writing poems, drawing ASCII art, or just saying something kind, don’t just smile and be curious enough to answer the call.&lt;/p&gt;

&lt;p&gt;Because you might end up creating your most thoughtful and satisfying project yet.&lt;/p&gt;

&lt;p&gt;And, who knows, maybe even collect a few poems along the way.&lt;/p&gt;


&lt;h2&gt;
  
  
  In action
&lt;/h2&gt;

&lt;p&gt;The script is agile and can scan for poems in the way you want using these parameters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;python get_new_flowers.py &lt;span class="nt"&gt;--help&lt;/span&gt;
Starting script...
GitHub token available: True
Starting Gemini Code Assist poem collection script
usage: get_new_flowers.py &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-h&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--owner&lt;/span&gt; OWNER] &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--repo&lt;/span&gt; REPO] &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--search&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
                          &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--max-repos&lt;/span&gt; MAX_REPOS] &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--max-prs&lt;/span&gt; MAX_PRS]  
                          &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--output&lt;/span&gt; OUTPUT] &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--wizard&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;

Collect Gemini Code Assist poems from GitHub repositories

options:
  &lt;span class="nt"&gt;-h&lt;/span&gt;, &lt;span class="nt"&gt;--help&lt;/span&gt;            show this &lt;span class="nb"&gt;help &lt;/span&gt;message and &lt;span class="nb"&gt;exit&lt;/span&gt;
  &lt;span class="nt"&gt;--owner&lt;/span&gt; OWNER         GitHub repository owner
  &lt;span class="nt"&gt;--repo&lt;/span&gt; REPO           GitHub repository name
  &lt;span class="nt"&gt;--search&lt;/span&gt;              Search &lt;span class="k"&gt;for &lt;/span&gt;public repositories with Gemini poems      
  &lt;span class="nt"&gt;--max-repos&lt;/span&gt; MAX_REPOS
                        Maximum number of repositories to search
  &lt;span class="nt"&gt;--max-prs&lt;/span&gt; MAX_PRS     Maximum number of PRs to check per repository
  &lt;span class="nt"&gt;--output&lt;/span&gt; OUTPUT       Output JSON file
  &lt;span class="nt"&gt;--wizard&lt;/span&gt;, &lt;span class="nt"&gt;-w&lt;/span&gt;          Run &lt;span class="k"&gt;in &lt;/span&gt;wizard mode to interactively &lt;span class="nb"&gt;set &lt;/span&gt;parameters
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Here is some of the terminal output when running the tool.&lt;br&gt;
(Redacted and cleaned for readability)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;❯ ./run.sh
Starting script...

Starting Gemini Code Assist poem collection script
Configuration: &lt;span class="nv"&gt;owner&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;TheRealFREDP3D, &lt;span class="nv"&gt;repo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Gemini-Code-Assist-PR-Poetry, &lt;span class="nv"&gt;search&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;False, &lt;span class="nv"&gt;max_repos&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;5, &lt;span class="nv"&gt;max_prs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;100
GitHub token available: True

Checking specified repository: TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry
Collecting poems from TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry...
&lt;span class="o"&gt;[&lt;/span&gt;..]
Fetching PRs from https://api.github.com/repos/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry/pulls?page&lt;span class="o"&gt;=&lt;/span&gt;1&amp;amp;state&lt;span class="o"&gt;=&lt;/span&gt;all&amp;amp;per_page&lt;span class="o"&gt;=&lt;/span&gt;100
Got 3 results &lt;span class="k"&gt;for &lt;/span&gt;page 1

Fetching PRs from https://api.github.com/repos/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry/pulls?page&lt;span class="o"&gt;=&lt;/span&gt;2&amp;amp;state&lt;span class="o"&gt;=&lt;/span&gt;all&amp;amp;per_page&lt;span class="o"&gt;=&lt;/span&gt;100
Got 0 results &lt;span class="k"&gt;for &lt;/span&gt;page 2

Found 3 PRs &lt;span class="k"&gt;in &lt;/span&gt;TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry

Processing PR &lt;span class="c"&gt;#12...&lt;/span&gt;
Fetching comments from https://api.github.com/repos/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry/issues/12/comments
&lt;span class="o"&gt;[&lt;/span&gt;...]

Found 1 comments &lt;span class="k"&gt;for &lt;/span&gt;PR &lt;span class="c"&gt;#12&lt;/span&gt;
Comment from user: sourcery-ai[bot]
Fetching review comments from https://api.github.com/repos/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry/pulls/12/reviews
Found 3 reviews &lt;span class="k"&gt;for &lt;/span&gt;PR &lt;span class="c"&gt;#12&lt;/span&gt;
Found 3 review comments from bots &lt;span class="k"&gt;for &lt;/span&gt;PR &lt;span class="c"&gt;#12&lt;/span&gt;
Review from user: gemini-code-assist[bot]
Found review from Gemini Code Assist: gemini-code-assist[bot]

Trying to extract poem using LiteLLM with github/gpt-4.1...
&lt;span class="o"&gt;[&lt;/span&gt;...]

LiteLLM fallback response: 

From poetry&lt;span class="se"&gt;\'&lt;/span&gt;s hold,  
A tool &lt;span class="k"&gt;for &lt;/span&gt;PR tales unfolds,
PullPal stands alone....

Found poem using LLM with 3 lines
Found poem &lt;span class="k"&gt;in &lt;/span&gt;PR &lt;span class="c"&gt;#12 from review&lt;/span&gt;
Review from user: gemini-code-assist[bot]
&lt;span class="o"&gt;[&lt;/span&gt;...]
Found review from Gemini Code Assist: gemini-code-assist[bot]
Trying to extract poem using LiteLLM with github/gpt-4.1...

Error using github/gpt-4.1: litellm.RateLimitError: &lt;span class="k"&gt;**&lt;/span&gt;RateLimitError&lt;span class="k"&gt;**&lt;/span&gt;: GithubException - Rate limit of 50 per 86400s exceeded &lt;span class="k"&gt;for &lt;/span&gt;UserByModelByDay. Please &lt;span class="nb"&gt;wait &lt;/span&gt;29243 seconds before retrying.
Trying fallback model github/gpt-4o...

LiteLLM fallback response: NO_POEM...
No poem found by LLM
No poem found &lt;span class="k"&gt;in &lt;/span&gt;review from gemini-code-assist[bot]
Review from user: sourcery-ai[bot]
&lt;span class="o"&gt;[&lt;/span&gt;...]
Processing PR &lt;span class="c"&gt;#2...&lt;/span&gt;
Fetching comments from https://api.github.com/repos/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry/issues/2/comments
Found 1 comments &lt;span class="k"&gt;for &lt;/span&gt;PR &lt;span class="c"&gt;#2&lt;/span&gt;
Comment from user: sourcery-ai[bot]
Fetching review comments from https://api.github.com/repos/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry/pulls/2/reviews
Found 3 reviews &lt;span class="k"&gt;for &lt;/span&gt;PR &lt;span class="c"&gt;#2&lt;/span&gt;
Found 3 review comments from bots &lt;span class="k"&gt;for &lt;/span&gt;PR &lt;span class="c"&gt;#2&lt;/span&gt;
Review from user: gemini-code-assist[bot]
Found review from Gemini Code Assist: gemini-code-assist[bot]

Trying to extract poem using LiteLLM with github/gpt-4.1...
&lt;span class="o"&gt;[&lt;/span&gt;...]

LiteLLM fallback response: 
A bot&lt;span class="se"&gt;\'&lt;/span&gt;s gentle verse,  
LLM&lt;span class="se"&gt;\'&lt;/span&gt;s wisdom to immerse,
Code&lt;span class="se"&gt;\'&lt;/span&gt;s poetry blooms....

&lt;span class="o"&gt;[&lt;/span&gt;...]
Found poem using LLM with 3 lines
Found poem &lt;span class="k"&gt;in &lt;/span&gt;PR &lt;span class="c"&gt;#2 from review&lt;/span&gt;
Review from user: gemini-code-assist[bot]
Found review from Gemini Code Assist: gemini-code-assist[bot]

Trying to extract poem using LiteLLM with github/gpt-4.1...
&lt;span class="o"&gt;[&lt;/span&gt;...]

Collected 3 poems from TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry
Script completed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Final Output VSCode Preview&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%2Fwaoers58m3gjpqnqg350.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%2Fwaoers58m3gjpqnqg350.jpg" alt="VSCode Preview of the final output" width="800" height="1409"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thanks for reading!&lt;br&gt;
It's my first post on this platform. &lt;br&gt;
Feel free to comment or make suggestions.&lt;/p&gt;




&lt;p&gt;If you enjoyed this story, consider giving the project a ⭐ on GitHub and sharing it with your fellow devs.&lt;/p&gt;

&lt;p&gt;Until next time, happy coding. Have fun doing it and keep an eye out for the poetry in your diffs.&lt;/p&gt;




&lt;p&gt;🔗 &lt;a href="https://github.com/TheRealFREDP3D/Gemini-Code-Assist-PR-Poetry" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on Twitter for more coding adventures and feel free to reach me. &lt;a href="https://x.com/therealfredp3d" rel="noopener noreferrer"&gt;@TheRealFREDP3D&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>python</category>
      <category>github</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
