<?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: Ossama Hashim</title>
    <description>The latest articles on DEV Community by Ossama Hashim (@samotech).</description>
    <link>https://dev.to/samotech</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%2F3862933%2F9048cd6b-bea1-4beb-8137-a2c7a284bcab.png</url>
      <title>DEV Community: Ossama Hashim</title>
      <link>https://dev.to/samotech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samotech"/>
    <language>en</language>
    <item>
      <title>I built a free GitHub Action that scores your repo health — and auto-updates your README</title>
      <dc:creator>Ossama Hashim</dc:creator>
      <pubDate>Mon, 06 Apr 2026 01:16:11 +0000</pubDate>
      <link>https://dev.to/samotech/i-built-a-free-github-action-that-scores-your-repo-health-and-auto-updates-your-readme-4oij</link>
      <guid>https://dev.to/samotech/i-built-a-free-github-action-that-scores-your-repo-health-and-auto-updates-your-readme-4oij</guid>
      <description>&lt;p&gt;Ever looked at a repo and thought: "Is this actually well-maintained, or does it just &lt;em&gt;look&lt;/em&gt; like it is?"&lt;/p&gt;

&lt;p&gt;I had that thought one too many times — so I built &lt;strong&gt;DevLens&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/SamoTech/devlens" rel="noopener noreferrer"&gt;DevLens&lt;/a&gt; is a GitHub Action that gives your repository a &lt;strong&gt;health score from 0 to 100&lt;/strong&gt;, auto-injects a live badge into your README, and sends a weekly analytics digest to Discord.&lt;/p&gt;

&lt;p&gt;It's 100% free. Runs entirely inside GitHub Actions. Zero vendor lock-in. Forever.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;vs. Code Climate ($37/dev) · LinearB ($49/dev) · GitClear ($15/dev)&lt;br&gt;
DevLens costs $0.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The 7 Health Dimensions
&lt;/h2&gt;

&lt;p&gt;DevLens scores your repo across 7 weighted dimensions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;th&gt;What it checks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;📝 README Quality&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;Length, sections, badges, code examples, keywords&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔥 Commit Activity&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;Push frequency over last 90 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌿 Repo Freshness&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;td&gt;Days since last push&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📚 Documentation&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;td&gt;LICENSE, CONTRIBUTING, CHANGELOG, CODE_OF_CONDUCT, SECURITY, docs/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚙️ CI/CD Setup&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;td&gt;GitHub Actions workflows present&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎯 Issue Response&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;td&gt;Closed vs open issue ratio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⭐ Community Signal&lt;/td&gt;
&lt;td&gt;5%&lt;/td&gt;
&lt;td&gt;Stars, forks, watchers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The result? A single number that tells you — and your contributors — exactly where the repo stands.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it looks like in your README
&lt;/h2&gt;

&lt;p&gt;After each push, DevLens auto-commits a live badge between two markers in your README:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- DEVLENS:START --&amp;gt;&lt;/span&gt;
&lt;span class="gu"&gt;## Repository Health&lt;/span&gt;

This repository has a health score of 91.

&lt;span class="gs"&gt;**Repo Status:**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**readme**&lt;/span&gt;: 100
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**activity**&lt;/span&gt;: 75
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**freshness**&lt;/span&gt;: 100
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**docs**&lt;/span&gt;: 96
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**ci**&lt;/span&gt;: 100
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**issues**&lt;/span&gt;: 100
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**community**&lt;/span&gt;: 0
&lt;span class="c"&gt;&amp;lt;!-- DEVLENS:END --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No manual updates. Every push keeps it fresh.&lt;/p&gt;




&lt;h2&gt;
  
  
  Setup in 30 seconds
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; — Add markers to your &lt;code&gt;README.md&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- DEVLENS:START --&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- DEVLENS:END --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; — Create &lt;code&gt;.github/workflows/devlens.yml&lt;/code&gt;:&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="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;DevLens Health Check&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;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="nv"&gt;main&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;master&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;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;8&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="c1"&gt;# Weekly Monday digest&lt;/span&gt;

&lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;contents&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;write&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;devlens&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;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
      &lt;span class="pi"&gt;-&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;SamoTech/devlens@v1&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;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="na"&gt;groq_api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GROQ_API_KEY }}&lt;/span&gt;       &lt;span class="c1"&gt;# optional — free&lt;/span&gt;
          &lt;span class="na"&gt;notify_discord&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.DISCORD_WEBHOOK }}&lt;/span&gt;  &lt;span class="c1"&gt;# optional&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. On the next push, DevLens scores your repo and updates your README automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI-Powered Insights (Free)
&lt;/h2&gt;

&lt;p&gt;Add a free &lt;a href="https://console.groq.com/keys" rel="noopener noreferrer"&gt;Groq API key&lt;/a&gt; and DevLens uses &lt;strong&gt;Llama 3&lt;/strong&gt; to write a human-readable health summary directly into your README — not just numbers, but actual sentences explaining what's strong and what needs attention.&lt;/p&gt;

&lt;p&gt;No paid AI tier. No OpenAI credits. Just a free Groq key.&lt;/p&gt;




&lt;h2&gt;
  
  
  Weekly Discord Digest
&lt;/h2&gt;

&lt;p&gt;Set a &lt;code&gt;DISCORD_WEBHOOK&lt;/code&gt; secret and every Monday at 8am UTC your team gets a rich embed with all 7 dimension scores, the overall health score, and a direct link to the repo.&lt;/p&gt;

&lt;p&gt;Perfect for teams who want passive repo hygiene awareness without checking dashboards.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to score 100/100
&lt;/h2&gt;

&lt;p&gt;Here's exactly what DevLens looks for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;code&gt;LICENSE&lt;/code&gt; file present&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; present&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;CHANGELOG.md&lt;/code&gt; present&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;CODE_OF_CONDUCT.md&lt;/code&gt; present&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;SECURITY.md&lt;/code&gt; present&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;docs/&lt;/code&gt; folder present&lt;/li&gt;
&lt;li&gt;✅ README with install, usage, features, examples, roadmap sections&lt;/li&gt;
&lt;li&gt;✅ Code blocks and images in README&lt;/li&gt;
&lt;li&gt;✅ 3+ GitHub Actions workflows&lt;/li&gt;
&lt;li&gt;✅ 30+ commits in the last 90 days&lt;/li&gt;
&lt;li&gt;✅ All issues closed (or healthy ratio)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[x] 7-dimension health score engine&lt;/li&gt;
&lt;li&gt;[x] Auto README badge injection&lt;/li&gt;
&lt;li&gt;[x] Weekly Discord digest&lt;/li&gt;
&lt;li&gt;[x] AI README insights (Groq/Llama 3)&lt;/li&gt;
&lt;li&gt;[ ] Web dashboard (Next.js)&lt;/li&gt;
&lt;li&gt;[ ] Email digest (Resend free tier)&lt;/li&gt;
&lt;li&gt;[ ] PR quality scoring&lt;/li&gt;
&lt;li&gt;[ ] Historical trend charts&lt;/li&gt;
&lt;li&gt;[ ] Multi-repo portfolio view&lt;/li&gt;
&lt;li&gt;[ ] Slack integration&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  It's free. Forever.
&lt;/h2&gt;

&lt;p&gt;No trials. No paywalls. No "Pro" tier. DevLens is — and always will be — completely free.&lt;/p&gt;

&lt;p&gt;If it saves you time or helps your team ship better code, a ⭐ on GitHub means the world:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/SamoTech/devlens" rel="noopener noreferrer"&gt;github.com/SamoTech/devlens&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And if you want to say thanks beyond a star — &lt;a href="https://github.com/sponsors/SamoTech" rel="noopener noreferrer"&gt;sponsorships are open&lt;/a&gt;. No pressure. Just love. 💛&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with GitHub Actions + Groq + ☕ by &lt;a href="https://github.com/SamoTech" rel="noopener noreferrer"&gt;@SamoTech&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
