<?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: prem mishra</title>
    <description>The latest articles on DEV Community by prem mishra (@prem_mishra_f773d1beca3e7).</description>
    <link>https://dev.to/prem_mishra_f773d1beca3e7</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%2F3289455%2F93b3a0f7-9c8b-4cc2-ab53-344003f7aad9.png</url>
      <title>DEV Community: prem mishra</title>
      <link>https://dev.to/prem_mishra_f773d1beca3e7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prem_mishra_f773d1beca3e7"/>
    <language>en</language>
    <item>
      <title>From Pull Requests to PullBear: Why I Built a Developer’s Sidekick</title>
      <dc:creator>prem mishra</dc:creator>
      <pubDate>Tue, 24 Jun 2025 04:38:07 +0000</pubDate>
      <link>https://dev.to/prem_mishra_f773d1beca3e7/from-pull-requests-to-pullbear-why-i-built-a-developers-sidekick-4jgf</link>
      <guid>https://dev.to/prem_mishra_f773d1beca3e7/from-pull-requests-to-pullbear-why-i-built-a-developers-sidekick-4jgf</guid>
      <description>&lt;p&gt;🐼&lt;br&gt;
Because developers deserve to ship clean — and sleep clean.&lt;/p&gt;




&lt;p&gt;😫 The Problem We Keep Ignoring&lt;/p&gt;

&lt;p&gt;Let’s face it. Code reviews have turned into crime scenes.&lt;br&gt;
Vague commits. Missing tickets. .env files accidentally pushed. Late-night Slack pings asking:&lt;br&gt;
"Hey, did you mean to push this?"&lt;/p&gt;

&lt;p&gt;We’ve all tried to patch our setups with pre-commit scripts, Husky configs, and CI hacks.&lt;br&gt;
But those break. Or get outdated. Or forgotten.&lt;br&gt;
Because humans forget — especially at 6PM on a Friday.&lt;/p&gt;




&lt;p&gt;🐼 Enter PullBear — The Chillest Git Sidekick&lt;/p&gt;

&lt;p&gt;PullBear wasn’t built in a sprint planning session.&lt;br&gt;
It came from real frustration.&lt;/p&gt;

&lt;p&gt;I needed something that could:&lt;/p&gt;

&lt;p&gt;Catch bad commit messages&lt;/p&gt;

&lt;p&gt;Auto-add ticket IDs from branch names&lt;/p&gt;

&lt;p&gt;Block stupid mistakes like pushing .env files&lt;/p&gt;

&lt;p&gt;Be flexible and feel invisible in my workflow&lt;/p&gt;

&lt;p&gt;So I built PullBear — a smart tool that lives in your Git hooks and keeps your PRs review-ready without yelling at you.&lt;/p&gt;




&lt;p&gt;⚙️ What PullBear Does Right Now&lt;/p&gt;

&lt;p&gt;✅ Enforces commit message rules (length, pattern, etc.)&lt;/p&gt;

&lt;p&gt;✅ Auto-injects ticket IDs from branch names like feature/ABC-123-login&lt;/p&gt;

&lt;p&gt;✅ Lets you choose where the ticket appears: prefix or postfix&lt;/p&gt;

&lt;p&gt;✅ Fully customizable ticket formatting — [#ABC-123], (#123), etc.&lt;/p&gt;

&lt;p&gt;✅ Blocks sensitive files like .env, *.pem, debug.log from being committed&lt;/p&gt;

&lt;p&gt;✅ Supports allowlists (e.g., .env.example)&lt;/p&gt;

&lt;p&gt;✅ Lets you write your own custom JS-based Git hooks&lt;/p&gt;

&lt;p&gt;✅ Setup with npx pullbear init — just one command&lt;/p&gt;

&lt;p&gt;✅ Full logging, debugging, and works cross-platform&lt;/p&gt;




&lt;p&gt;👨‍💻 Example: The Friday Hook&lt;/p&gt;

&lt;p&gt;With custom hooks, you can build creative checks.&lt;br&gt;
For example, force every Friday commit to include a bear emoji:&lt;/p&gt;

&lt;p&gt;// custom-hooks/fridayBear.mjs&lt;br&gt;
export default function ({ commitMessage }) {&lt;br&gt;
  const isFriday = new Date().getDay() === 5;&lt;br&gt;
  if (isFriday &amp;amp;&amp;amp; !commitMessage.includes("🐻")) {&lt;br&gt;
    throw new Error("Friday commits must include a bear. No exceptions.");&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Then reference it in your config:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "hooks": {&lt;br&gt;
    "commit-msg": "custom-hooks/fridayBear.mjs"&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;And that’s it. Your Git flow just got culture.&lt;/p&gt;




&lt;p&gt;🔮 What’s Coming Next&lt;/p&gt;

&lt;p&gt;The bear’s just waking up. Here's what’s coming:&lt;/p&gt;

&lt;p&gt;pullbear report --target origin/main: pre-PR reports that flag issues, risks, file diffs, and style mismatches&lt;/p&gt;

&lt;p&gt;AI-powered red flag detection (anti-patterns, complexity spikes, suspicious code)&lt;/p&gt;

&lt;p&gt;Circular dependency checks&lt;/p&gt;

&lt;p&gt;File size and scope-limit rules&lt;/p&gt;

&lt;p&gt;Better CI support and integrations&lt;/p&gt;

&lt;p&gt;Prebuilt hook templates to plug into&lt;/p&gt;




&lt;p&gt;🧠 But Isn’t This Just Husky?&lt;/p&gt;

&lt;p&gt;Not really.&lt;/p&gt;

&lt;p&gt;Husky is great — if you want to run scripts at Git events.&lt;br&gt;
PullBear is more than that. It’s a context-aware Git reviewer.&lt;br&gt;
It understands your repo setup, your tickets, your code culture — and enforces it gently.&lt;/p&gt;

&lt;p&gt;Also, PullBear supports custom JavaScript hooks with context, not just bash commands.&lt;/p&gt;




&lt;p&gt;⚡ Quickstart&lt;/p&gt;

&lt;p&gt;npx pullbear init&lt;/p&gt;

&lt;p&gt;What it does:&lt;/p&gt;

&lt;p&gt;Installs Git hooks&lt;/p&gt;

&lt;p&gt;Creates a sample config&lt;/p&gt;

&lt;p&gt;You edit one file to make it yours&lt;/p&gt;

&lt;p&gt;That’s all. You’re live.&lt;/p&gt;




&lt;p&gt;📜 License Note&lt;/p&gt;

&lt;p&gt;PullBear is source-available, not open-source.&lt;br&gt;
You can read it. You can use it.&lt;br&gt;
But commercial use, rebranding, or redistribution requires permission.&lt;/p&gt;

&lt;p&gt;Read the LICENSE or email: &lt;a href="mailto:hello@pullbear.dev"&gt;hello@pullbear.dev&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;🐾 Final Thoughts&lt;/p&gt;

&lt;p&gt;I built PullBear because I was tired of taping tools together.&lt;br&gt;
I wanted something smart that stayed out of the way.&lt;br&gt;
If it saves even one weekend, I’ll call it a win.&lt;/p&gt;

&lt;p&gt;PullBear — Your PR's new best friend.&lt;br&gt;
GitHub: &lt;a href="https://github.com/Prem-Mishra007/pullbear" rel="noopener noreferrer"&gt;https://github.com/Prem-Mishra007/pullbear&lt;/a&gt;&lt;br&gt;
npm: &lt;a href="https://www.npmjs.com/package/pullbear" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/pullbear&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Made with ❤️ by someone who just wanted their Saturdays back.&lt;/p&gt;

&lt;p&gt;Ship clean. Sleep clean. 🐼&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>git</category>
      <category>productivity</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
