<?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: Prateek Wayne</title>
    <description>The latest articles on DEV Community by Prateek Wayne (@prateekwayne).</description>
    <link>https://dev.to/prateekwayne</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%2F1207489%2F1578eb67-5a72-40da-8265-2fe5cacad9ab.png</url>
      <title>DEV Community: Prateek Wayne</title>
      <link>https://dev.to/prateekwayne</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prateekwayne"/>
    <language>en</language>
    <item>
      <title>😈 Dare to Commit Secrets to GitHub? With SOPS &amp; GPG, I Do! 🤫</title>
      <dc:creator>Prateek Wayne</dc:creator>
      <pubDate>Mon, 03 Nov 2025 08:04:56 +0000</pubDate>
      <link>https://dev.to/prateekwayne/dare-to-commit-secrets-to-github-with-sops-gpg-i-do-c7f</link>
      <guid>https://dev.to/prateekwayne/dare-to-commit-secrets-to-github-with-sops-gpg-i-do-c7f</guid>
      <description>&lt;h2&gt;
  
  
  Stop Sharing Secrets in Slack &amp;amp; Teams ! 🔐 Commit Them Safely Instead
&lt;/h2&gt;

&lt;p&gt;Ever had that awkward moment when a new teammate joins and you need to share &lt;code&gt;API_KEY_PROD&lt;/code&gt; over Teams? 😬 We've all been there searching for the "least embarrassing" way to send secrets without exposing them in chat history.&lt;/p&gt;

&lt;p&gt;But what if I told you we could &lt;strong&gt;commit secrets directly to our codebase&lt;/strong&gt; safely and securely?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Traditional Secret Sharing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📱 Sharing via Slack/Teams leaves traces in chat history&lt;/li&gt;
&lt;li&gt;📧 Email isn't secure for sensitive data&lt;/li&gt;
&lt;li&gt;🔄 Manual sharing doesn't scale with team growth&lt;/li&gt;
&lt;li&gt;😰 Always worried about who has access to what&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Solution: &lt;a href="https://getsops.io/" rel="noopener noreferrer"&gt;SOPS &lt;/a&gt;+ &lt;a href="https://gpgtools.org/" rel="noopener noreferrer"&gt;GPG &lt;/a&gt;Magic ✨
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SOPS&lt;/strong&gt; (Secrets OPerationS) + &lt;strong&gt;GPG encryption&lt;/strong&gt; = Git-native secret management that actually works!&lt;/p&gt;

&lt;p&gt;Here's the genius part: SOPS encrypts only the &lt;strong&gt;values&lt;/strong&gt; while keeping &lt;strong&gt;keys readable&lt;/strong&gt;. Your config files remain auditable and version-controlled.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before (Raw secrets - DON'T DO THIS! ❌)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sk-prod-1234567890abcdef&lt;/span&gt;
&lt;span class="na"&gt;database_password&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;super_secret_password&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  After (SOPS encrypted - SAFE! ✅)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ENC[AES256_GCM,data:v2svKtCydFchhEalpb5ptHM=,iv:kwjrP2JJ7yN8Z...]&lt;/span&gt;
&lt;span class="na"&gt;database_password&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ENC[AES256_GCM,data:qUfnJp7K3s0BLRfgLEKuog==,iv:4iIqV4DmoxrQ...]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How It Works (The Simple Version)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;🔑 Team members add their GPG keys to GitHub&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;📝 New teammate requests access via Pull Request&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;🤖 Admin runs automated script to grant access&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;🔓 Everyone can decrypt secrets locally with their own key&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Real Implementation: Step by Step
&lt;/h2&gt;

&lt;p&gt;I've built a working demo that shows exactly how this works. Let's walk through it:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Setup Your GPG Key on GitHub
&lt;/h3&gt;

&lt;p&gt;First, make sure GitHub knows your public GPG key:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;GitHub Settings&lt;/strong&gt; → &lt;strong&gt;SSH and GPG keys&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Generate a new GPG key if you don't have one&lt;/li&gt;
&lt;li&gt;Add your public key to GitHub&lt;/li&gt;
&lt;/ol&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%2Fsp1vs0yxoh718thh9af0.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%2Fsp1vs0yxoh718thh9af0.png" alt="Github" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📖 &lt;strong&gt;&lt;a href="https://docs.github.com/en/authentication/managing-commit-signature-verification" rel="noopener noreferrer"&gt;GitHub's GPG Guide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Request Secret Access
&lt;/h3&gt;

&lt;p&gt;Instead of asking for secrets in Slack, you simply:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository&lt;/li&gt;
&lt;li&gt;Add your GitHub username to &lt;code&gt;.sops.yaml&lt;/code&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;creation_rules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;pgp&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;-&lt;/span&gt;
      &lt;span class="s"&gt;196e2fb0add1fa0ea00e377eb92cc7cd1b5275ca,d7d1ff182af9f304af01db8f15ef228052ff6d2f&lt;/span&gt;
    &lt;span class="na"&gt;github&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;prateek-wayne&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ajayyadavcstech&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;your-username&lt;/span&gt; &lt;span class="c1"&gt;# &amp;lt;-- Add yourself here&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create a Pull Request&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it! No secret sharing required. 🎉&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Automated Admin Approval
&lt;/h3&gt;

&lt;p&gt;The magic happens here. Admin runs a simple Node.js script that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Fetches public keys from GitHub profiles automatically&lt;/li&gt;
&lt;li&gt;✅ Updates encryption keys to include new team member&lt;/li&gt;
&lt;li&gt;✅ Re-encrypts all secrets with the combined team keys
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;tools
npm &lt;span class="nb"&gt;install
&lt;/span&gt;node index.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Decrypt Locally
&lt;/h3&gt;

&lt;p&gt;Once your PR is merged, you can decrypt secrets locally:&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="c"&gt;# For .env files&lt;/span&gt;
./scripts/decrypt-env.sh

&lt;span class="c"&gt;# For YAML configs&lt;/span&gt;
./scripts/decrypt-yaml.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The decrypted files are automatically Git-ignored, so they never accidentally get committed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Approach Rocks 🚀
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔒 Security&lt;/strong&gt;: Military-grade GPG encryption&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📊 Auditability&lt;/strong&gt;: Full history of who has access when&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔄 Scalability&lt;/strong&gt;: Automated onboarding/offboarding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💰 Cost&lt;/strong&gt;: Completely free with existing tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎯 Git-native&lt;/strong&gt;: Works with your existing workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;I've created a complete working example that demonstrates this entire workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 &lt;a href="https://github.com/Prateek-Wayne/secure-env-with-sops" rel="noopener noreferrer"&gt;Demo Repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repo includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sample encrypted &lt;code&gt;.env&lt;/code&gt; and &lt;code&gt;.yaml&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;Automated key synchronization scripts&lt;/li&gt;
&lt;li&gt;Cross-platform decryption scripts (Linux, macOS, Windows)&lt;/li&gt;
&lt;li&gt;Complete documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion: Embrace Git-Native Security 🛡️
&lt;/h2&gt;

&lt;p&gt;Stop sharing secrets over chat. Start treating them like code - version controlled, auditable, and secure.&lt;/p&gt;

&lt;p&gt;Your future self (and your security team) will thank you! 🙏&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your current approach to secret management? Have you tried SOPS before? Drop a comment below! 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>github</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>React JS with Yarn 4</title>
      <dc:creator>Prateek Wayne</dc:creator>
      <pubDate>Sat, 18 May 2024 16:08:07 +0000</pubDate>
      <link>https://dev.to/prateekwayne/react-js-with-yarn-4-4a2m</link>
      <guid>https://dev.to/prateekwayne/react-js-with-yarn-4-4a2m</guid>
      <description>&lt;p&gt;Yarn 4 introduces several advancements and features that enhance the developer experience. It requires Node.js 18+ and has made significant changes like not enabling Zero-Install by default and using Corepack over yarnPath.&lt;/p&gt;

&lt;p&gt;We can use yarn 4 with react js by following these steps.&lt;br&gt;
&lt;em&gt;Must be Yarn 4&lt;/em&gt;&lt;br&gt;
check yarn version&lt;br&gt;
&lt;code&gt;yarn -v&lt;/code&gt;:&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%2Fjidfxq3704tfvlszmwy5.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%2Fjidfxq3704tfvlszmwy5.png" alt="yarn version"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we will create a React Project:&lt;code&gt;yarn create react-app my-app&lt;/code&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%2F8s1rxmvloyrjookrv4sa.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%2F8s1rxmvloyrjookrv4sa.png" alt="React Project Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike in previous version of yarn,we used to have node-modules&lt;br&gt;
but yarn 4 comes with Plug'n'Play and Zero-Installs.&lt;br&gt;
it contains 2 new files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.pnp.cjs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.pnp.loader.mjs&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;.pnp.cjs file contains info about all the package that mentioned in &lt;code&gt;package.json&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Plug N Play is faster than node-modules but some times due to some dependencies issue ,it might not work for some projects&lt;/p&gt;

&lt;p&gt;With Yarn 4 we can still use node-modules&lt;br&gt;
Just we have to paste this command:&lt;code&gt;yarn config set nodeLinker node-modules&lt;/code&gt;&lt;br&gt;
it will create a file name :&lt;code&gt;.yarnrc.yml&lt;/code&gt;&lt;br&gt;
which contains:&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%2Fy7u1d1xhid3c5tx6oprv.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%2Fy7u1d1xhid3c5tx6oprv.png" alt="node-linker"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now doing yarn install:&lt;code&gt;yarn install&lt;/code&gt;&lt;br&gt;
will bring back node_modules folder&lt;br&gt;
changes:&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%2Fok0pge8xhh3wutbmcegr.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%2Fok0pge8xhh3wutbmcegr.png" alt="changes"&gt;&lt;/a&gt;&lt;br&gt;
we will find that &lt;code&gt;.pnp&lt;/code&gt; files are deleted&lt;/p&gt;

</description>
      <category>react</category>
      <category>yarn</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Improving Code Quality with Mega -Linter 🧹</title>
      <dc:creator>Prateek Wayne</dc:creator>
      <pubDate>Sat, 18 May 2024 07:22:23 +0000</pubDate>
      <link>https://dev.to/prateekwayne/improving-code-quality-with-mega-linter-4mji</link>
      <guid>https://dev.to/prateekwayne/improving-code-quality-with-mega-linter-4mji</guid>
      <description>&lt;p&gt;&lt;strong&gt;What Is a Linter? 🧹&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A linter is a tool that analyzes your code for potential issues, style violations, and best practices. &lt;br&gt;
It helps maintain consistency, readability, and overall code quality. Linters can catch errors early, making debugging easier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting Up a Mega Linter in a Node.js Project .&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Setup a simple Node JS Project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init -y   
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;a package.json will be created.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting up Megalinter in a Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;we can set up mega linter in our project just by running a simple command&lt;br&gt;
&lt;code&gt;npx mega-linter-runner --install&lt;/code&gt;&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%2Fjzee8f5xvalpq9rs805a.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%2Fjzee8f5xvalpq9rs805a.png" alt="megalinter setup" width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Megalinter supports multiple techstacks&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dart &lt;/li&gt;
&lt;li&gt;Documentation &lt;/li&gt;
&lt;li&gt;C, C++, C# or Visual Basic.net &lt;/li&gt;
&lt;li&gt;Go &lt;/li&gt;
&lt;li&gt;Java / Groovy / Kotlin &lt;/li&gt;
&lt;li&gt;Javascript / Typescript&lt;/li&gt;
&lt;li&gt;PHP &lt;/li&gt;
&lt;li&gt;Python &lt;/li&gt;
&lt;li&gt;Ruby &lt;/li&gt;
&lt;li&gt;RUST 
....many more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In our case we will select :Javascript / Typescript&lt;/p&gt;

&lt;p&gt;It will further ask for customization:&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%2Fpj6yyl79i93r5pk25bey.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%2Fpj6yyl79i93r5pk25bey.png" alt="mega linter config" width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will select GithubAction&lt;br&gt;
further we will opt these minimal configurations:&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%2F55jdqgsqritv0uqtc7yp.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%2F55jdqgsqritv0uqtc7yp.png" alt="mega linter configs" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Changes Files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are files being created and updated :&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%2Fkvuaf4iacq2ugx8h36sm.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%2Fkvuaf4iacq2ugx8h36sm.png" alt="file changes1" width="536" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.github/workflows/mega-linter.yaml&lt;/code&gt;
this contains the workflow ,which will trigger when a pull request is raised:&lt;/li&gt;
&lt;/ul&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%2Fpxmlq00e35cwdbai84sk.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%2Fpxmlq00e35cwdbai84sk.png" alt="megalinter.yml" width="248" height="256"&gt;&lt;/a&gt;&lt;br&gt;
we can change these triggers as our need&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.cpell.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&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%2Fzizmsuj9rktr8n1ktisf.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%2Fzizmsuj9rktr8n1ktisf.png" alt="cpell.json" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.mega-linter.yml&lt;/code&gt;
This file contains the configuration that we have opted earlier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When we push our changes to github repository&lt;br&gt;
The workflow will gets triggered which we can see in the Action tab of our repository.&lt;br&gt;
Here we can see the failing checks and errors which we have to fix:&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%2Fn7gkj8srt5enykid5gn9.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%2Fn7gkj8srt5enykid5gn9.png" alt="Actiion" width="800" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion 🎉&lt;/strong&gt;&lt;br&gt;
MegaLinter combines multiple linters into one powerful tool, simplifying code quality checks. &lt;br&gt;
Remember to customize the content and add any specific examples or experiences you’d like to share. Feel free to ask questions or leave comments in the section below! 💗&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More In-Depth Details&lt;/strong&gt;&lt;br&gt;
For a deeper dive into MegaLinter, visit the official documentation: &lt;a href="https://megalinter.io/latest/"&gt;https://megalinter.io/latest/&lt;/a&gt;&lt;br&gt;
Connect with Me&lt;br&gt;
Github:&lt;a href="https://github.com/Prateek-Wayne/"&gt;https://github.com/Prateek-Wayne/&lt;/a&gt;&lt;br&gt;
Linkedin: &lt;a href="https://www.linkedin.com/in/prateek-verma-8125b3201/"&gt;https://www.linkedin.com/in/prateek-verma-8125b3201/&lt;/a&gt;&lt;br&gt;
Instagram:&lt;a href="https://www.instagram.com/prateek_wayne/"&gt;https://www.instagram.com/prateek_wayne/&lt;/a&gt;&lt;br&gt;
Happy coding! 🚀&lt;/p&gt;

</description>
      <category>linter</category>
      <category>megalinter</category>
      <category>tooling</category>
      <category>codequality</category>
    </item>
  </channel>
</rss>
