Skip to content

chore: update CI/CD pipeline, add PR template, and improve documentation - #50

Merged
khulnasoft-bot merged 1 commit into
khulnasoft:masterfrom
envrs:feature/update-ci-cd-and-docs
Dec 3, 2025
Merged

chore: update CI/CD pipeline, add PR template, and improve documentation#50
khulnasoft-bot merged 1 commit into
khulnasoft:masterfrom
envrs:feature/update-ci-cd-and-docs

Conversation

@envrs

@envrs envrs commented Dec 3, 2025

Copy link
Copy Markdown
Contributor

PR Type

Enhancement, Tests, Documentation


Description

  • Updated CI/CD pipeline with matrix testing across multiple Node.js versions

  • Added comprehensive PR template for standardized contribution process

  • Enhanced README with development, testing, and CI/CD documentation

  • Fixed test data to use dynamic dates instead of hardcoded values

  • Updated EKS Kubernetes version test fixture from 1.29 to 1.30


Diagram Walkthrough

flowchart LR
  A["CI/CD Workflow"] -->|"Matrix testing"| B["Multiple Node.js versions"]
  C["PR Template"] -->|"Standardizes"| D["Contribution process"]
  E["README"] -->|"Documents"| F["Development & Testing"]
  G["Test Fixtures"] -->|"Dynamic dates"| H["Webhook expiry test"]
Loading

File Walkthrough

Relevant files
Configuration changes
scans_ci.yml
CI/CD pipeline modernization with matrix testing                 

.github/workflows/scans_ci.yml

  • Restructured workflow with explicit branch triggers for main/master
  • Added matrix strategy for testing across Node.js versions 12.x, 14.x,
    16.x
  • Replaced codespell with khulnasoft/codetypo-actions for typo checking
  • Updated setup-node action to v2 with npm caching enabled
  • Added build verification step and improved step naming
+31/-12 
Documentation
pull_request_template.md
New pull request template for consistency                               

.github/pull_request_templates/pull_request_template.md

  • Created new PR template with sections for description, related issues,
    and change type
  • Included testing checklist covering local, staging, and production
    environments
  • Added documentation update requirements and additional notes section
  • Provides standardized structure for all future pull requests
+28/-0   
README.md
Expanded documentation for development workflow                   

README.md

  • Added comprehensive Development and Testing section with command
    examples
  • Documented test running, coverage reporting, and linting procedures
  • Explained CI/CD workflow and GitHub Actions integration
  • Added pull request guidelines and best practices
  • Fixed code block syntax highlighting for bash commands
+55/-1   
Tests
automationAcctExpiredWebhooks.spec.js
Fix webhook expiry test with dynamic dates                             

plugins/azure/automationAccounts/automationAcctExpiredWebhooks.spec.js

  • Replaced hardcoded expiry date with dynamic calculation using current
    timestamp
  • Added comment explaining the dynamic date calculation for future
    maintainability
  • Ensures webhook expiry test remains valid regardless of when tests are
    run
+2/-1     
eksKubernetesVersion.spec.js
Update EKS Kubernetes version fixture                                       

plugins/aws/eks/eksKubernetesVersion.spec.js

  • Updated Kubernetes version test fixture from 1.29 to 1.30
  • Keeps test data current with latest supported EKS versions
+1/-1     

Summary by CodeRabbit

  • Documentation

    • Added standardized pull request template with review sections and common checks
    • Introduced development and testing guide covering setup, test execution, coverage generation, and linting
  • Tests

    • Updated test fixtures to reflect current environment versions
  • Chores

    • Enhanced CI/CD pipeline with multi-version Node.js testing strategy and improved dependency installation

✏️ Tip: You can customize this high-level summary in your review settings.

@sourcery-ai

sourcery-ai Bot commented Dec 3, 2025

Copy link
Copy Markdown

Reviewer's Guide

Updates CI/CD workflow to a more structured multi-Node.js matrix pipeline, adds a standardized pull request template, and refreshes documentation and tests to be more robust and future-proof.

Sequence diagram for CI pipeline execution on pull request

sequenceDiagram
  actor Developer
  participant GitHubRepo
  participant GitHubActions
  participant TestJob

  Developer->>GitHubRepo: Open pull request to main or master
  GitHubRepo-->>GitHubActions: Trigger pull_request event
  GitHubActions->>GitHubActions: Match CI_CDPipeline workflow
  GitHubActions->>TestJob: Start matrix job for Node 12_x, 14_x, 16_x

  TestJob->>TestJob: actions_checkout_v2
  TestJob->>TestJob: actions_setup_node_v2 with cache npm
  TestJob->>TestJob: khulnasoft_codetypo_actions
  TestJob->>TestJob: npm ci
  TestJob->>TestJob: npm run lint
  TestJob->>TestJob: npm test
  TestJob->>TestJob: npm run build --if-present

  TestJob-->>GitHubActions: Report job status for all Node versions
  GitHubActions-->>GitHubRepo: Update PR checks status
  GitHubRepo-->>Developer: Display CI results on pull request
Loading

File-Level Changes

Change Details Files
Restructured GitHub Actions CI/CD workflow into a named, branch-scoped, matrix-based pipeline with caching and build verification.
  • Renamed the workflow and restricted triggers to pushes and pull requests against main/master plus a weekly cron schedule.
  • Converted the single build job into a test job that runs on a Node.js version matrix and uses setup-node v2 with npm caching.
  • Replaced the codespell action with a custom typo-checking action while preserving filename and path exclusions.
  • Switched dependency installation to npm ci and added explicit lint, test, and optional build steps.
.github/workflows/scans_ci.yml
Improved README developer documentation around development, testing, linting, and CI/CD expectations.
  • Clarified shell code block language annotations for installation commands.
  • Documented how to run the full test suite, specific tests, coverage, and linting commands.
  • Described the CI pipeline behavior and requirements for pull requests, including test, lint, and documentation expectations.
README.md
Stabilized tests by making data time- and version-agnostic to avoid future flakiness.
  • Updated an Azure automation account webhook test fixture to compute an expiryTime one year in the future instead of using a fixed date.
  • Adjusted an EKS Kubernetes version test fixture to expect version 1.30 instead of 1.29.
plugins/azure/automationAccounts/automationAcctExpiredWebhooks.spec.js
plugins/aws/eks/eksKubernetesVersion.spec.js
Introduced a standardized pull request template to improve review consistency and documentation of changes.
  • Added a PR template covering description, related issues, change type, testing, documentation, and additional notes checklists.
.github/pull_request_templates/pull_request_template.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented Dec 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

These changes establish CI/CD infrastructure and documentation standards: introducing a GitHub pull request template, updating the CI workflow to support multiple Node.js versions with npm caching and explicit test/build steps, documenting development and testing procedures in the README, and updating test fixtures with current version expectations.

Changes

Cohort / File(s) Summary
GitHub Infrastructure
.github/pull_request_templates/pull_request_template.md, .github/workflows/scans_ci.yml
New PR template with standardized sections for descriptions, issue tracking, change types, and testing checklists. CI workflow refactored to include Node.js matrix strategy (versions 12.x, 14.x, 16.x), npm caching, and explicit test and build steps.
Documentation
README.md
Added "Development and Testing" section with test execution commands (npm test, coverage, linting) and CI/CD requirements. Installation section updated with bash code fence and repository setup commands.
Test Fixtures
plugins/aws/eks/eksKubernetesVersion.spec.js, plugins/azure/automationAccounts/automationAcctExpiredWebhooks.spec.js
Test data updated: EKS Kubernetes version bumped from 1.29 to 1.30; Azure webhook expiry timestamp changed from fixed value to dynamic calculation (one year from current time).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • CI workflow matrix additions are straightforward templating changes
  • Test fixture updates are data-only with no logic modifications
  • Documentation and PR template additions are repetitive, low-complexity content

Poem

🐰 Hop hop, the pipeline now springs to life,
With nodes and versions cutting through the strife,
Tests dance in a matrix, clear and bright,
Our burrow now organized, cozy and tight! 🌿✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9f43b38 and 44f329d.

📒 Files selected for processing (5)
  • .github/pull_request_templates/pull_request_template.md (1 hunks)
  • .github/workflows/scans_ci.yml (1 hunks)
  • README.md (1 hunks)
  • plugins/aws/eks/eksKubernetesVersion.spec.js (1 hunks)
  • plugins/azure/automationAccounts/automationAcctExpiredWebhooks.spec.js (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review

Copy link
Copy Markdown

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
No audit scope: The PR adds CI/test/docs changes without introducing or touching runtime code where audit
trails would apply, so no new logging of critical actions is expected in this diff.

Referred Code
name: CI/CD Pipeline

on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]
  schedule:
    - cron: '0 0 * * 0'  # Weekly run on Sunday at midnight

jobs:
  test:
    name: Test on Node.js ${{ matrix.node-version }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x, 14.x, 16.x]  # Test on multiple Node.js versions
    steps:
      - uses: actions/checkout@v2

      - name: Use Node.js ${{ matrix.node-version }}


 ... (clipped 23 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
Time edge cases: Dynamic expiry uses Date.now() without handling timezone/clock skew or test determinism,
which could introduce flakiness around boundaries.

Referred Code
// Set expiry to 1 year from now to ensure it's in the future
"expiryTime": new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toISOString(),

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status:
Not applicable here: The changes are in CI workflow, docs, and tests and do not introduce user-facing error
messages; no evidence of sensitive error exposure in this diff.

Referred Code
name: CI/CD Pipeline

on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]
  schedule:
    - cron: '0 0 * * 0'  # Weekly run on Sunday at midnight

jobs:
  test:
    name: Test on Node.js ${{ matrix.node-version }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x, 14.x, 16.x]  # Test on multiple Node.js versions
    steps:
      - uses: actions/checkout@v2

      - name: Use Node.js ${{ matrix.node-version }}


 ... (clipped 23 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Test-only data: The diff only adjusts test fixtures and CI config without handling external inputs in
application code, so validation concerns are not applicable in this context.

Referred Code
const webhooks = [
    {
        "id": "/subscriptions/12345/resourceGroups/test-rg/providers/Microsoft.Automation/automationAccounts/test-automationacct/webhooks/test1",
        "name": "test1",
        "creationTime": "2024-01-22T13:33:52.1066667+00:00",
        // Set expiry to 1 year from now to ensure it's in the future
        "expiryTime": new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toISOString(),
    },

Learn more about managing compliance generic rules or creating your own custom rules

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@coderabbitai

coderabbitai Bot commented Dec 3, 2025

Copy link
Copy Markdown
Contributor

Note

Unit test generation is an Early Access feature. Expect some limitations and changes as we gather feedback and continue to improve it.


Generating unit tests... This may take up to 20 minutes.

@coderabbitai

coderabbitai Bot commented Dec 3, 2025

Copy link
Copy Markdown
Contributor

Caution

The CodeRabbit agent failed during execution: Clone operation failed

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes - here's some feedback:

  • The CI matrix is still targeting Node.js 12.x/14.x/16.x, which are EOL; consider updating the workflow to test against currently supported LTS versions (e.g., 18.x and 20.x) to better match real-world usage.
  • The new CI triggers only on push/pull_request to main/master and a weekly schedule, whereas the previous workflow also reacted to create/delete/issue_comment events; verify whether any of those older triggers are still needed for your workflow and reintroduce them if so.
  • The updated Azure webhook test now uses new Date(Date.now() + 365 * 24 * 60 * 60 * 1000) at module load time; if test determinism is important, consider injecting a fixed future date or using a helper to freeze time instead of relying on the current system clock.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The CI matrix is still targeting Node.js 12.x/14.x/16.x, which are EOL; consider updating the workflow to test against currently supported LTS versions (e.g., 18.x and 20.x) to better match real-world usage.
- The new CI triggers only on push/pull_request to main/master and a weekly schedule, whereas the previous workflow also reacted to create/delete/issue_comment events; verify whether any of those older triggers are still needed for your workflow and reintroduce them if so.
- The updated Azure webhook test now uses `new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)` at module load time; if test determinism is important, consider injecting a fixed future date or using a helper to freeze time instead of relying on the current system clock.

## Individual Comments

### Comment 1
<location> `.github/workflows/scans_ci.yml:15-17` </location>
<code_context>
-
+    strategy:
+      matrix:
+        node-version: [12.x, 14.x, 16.x]  # Test on multiple Node.js versions
     steps:
       - uses: actions/checkout@v2
</code_context>

<issue_to_address>
**🚨 suggestion (security):** Update the Node.js matrix to supported LTS versions to avoid running CI on EOL runtimes.

12.x and 14.x are end-of-life and no longer receive security updates. Unless you specifically need to support them, consider updating the matrix to current LTS versions (e.g., 18.x and 20.x) so CI aligns with supported production runtimes and future dependency support.

```suggestion
    strategy:
      matrix:
        node-version: [18.x, 20.x]  # Test on supported LTS Node.js versions
```
</issue_to_address>

### Comment 2
<location> `.github/workflows/scans_ci.yml:43-44` </location>
<code_context>
+      - name: Run Tests
         run: npm test
+      
+      - name: Build
+        run: npm run build --if-present
</code_context>

<issue_to_address>
**suggestion (performance):** Consider moving the build step to a separate job to avoid redundant builds on every matrix entry.

Because `Build` runs for every matrix Node.js version, it unnecessarily multiplies build time and resource usage. If your build artifacts are runtime-agnostic, consider running `npm run build --if-present` in a separate job that executes once (e.g., on a single LTS Node version) after tests complete. This preserves multi-runtime test coverage while making the workflow faster and more efficient.

Suggested implementation:

```
      - name: Run Tests
        run: npm test

```

To complete the change, you should also:

1. Add a new job (e.g., `build`) under the top-level `jobs:` section that:
   - Uses a single Node.js version (typically the current LTS, e.g., `20.x`).
   - Depends on the matrix test job via `needs: <test-job-id>` so it only runs once after tests succeed.
   - Checks out the code, sets up Node with the chosen version, runs `npm ci`, and then `npm run build --if-present`.

For example (you will need to adjust `needs:` to match your existing job id, and align indentation with your file):

```yaml
jobs:
  # existing test/matrix job
  tests:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x]
    steps:
      # ... checkout, setup-node, npm ci, lint, test (no build here)

  build:
    needs: tests          # make sure this matches the actual test job id
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Use Node.js LTS
        uses: actions/setup-node@v4
        with:
          node-version: 20.x

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npm run build --if-present
```

Ensure that:
- The new `build` job is at the same indentation level as your existing job(s) under `jobs:`.
- The `needs:` value references the correct existing job id (e.g., `tests`, `ci`, or whatever your current matrix job is named).
</issue_to_address>

### Comment 3
<location> `README.md:78` </location>
<code_context>
 ## Installation
 Ensure that NodeJS is installed. If not, install it from [here](https://nodejs.org/download/).

-```
</code_context>

<issue_to_address>
**nitpick (typo):** Consider using the canonical spelling "Node.js" instead of "NodeJS".

To match the official project name and common usage, please change "NodeJS" to "Node.js" here (e.g., "Ensure that Node.js is installed.").

```suggestion
Ensure that Node.js is installed. If not, install it from [here](https://nodejs.org/download/).
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines +15 to +17
strategy:
matrix:
node-version: [12.x, 14.x, 16.x] # Test on multiple Node.js versions

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 suggestion (security): Update the Node.js matrix to supported LTS versions to avoid running CI on EOL runtimes.

12.x and 14.x are end-of-life and no longer receive security updates. Unless you specifically need to support them, consider updating the matrix to current LTS versions (e.g., 18.x and 20.x) so CI aligns with supported production runtimes and future dependency support.

Suggested change
strategy:
matrix:
node-version: [12.x, 14.x, 16.x] # Test on multiple Node.js versions
strategy:
matrix:
node-version: [18.x, 20.x] # Test on supported LTS Node.js versions

Comment on lines +43 to +44
- name: Build
run: npm run build --if-present

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (performance): Consider moving the build step to a separate job to avoid redundant builds on every matrix entry.

Because Build runs for every matrix Node.js version, it unnecessarily multiplies build time and resource usage. If your build artifacts are runtime-agnostic, consider running npm run build --if-present in a separate job that executes once (e.g., on a single LTS Node version) after tests complete. This preserves multi-runtime test coverage while making the workflow faster and more efficient.

Suggested implementation:

      - name: Run Tests
        run: npm test

To complete the change, you should also:

  1. Add a new job (e.g., build) under the top-level jobs: section that:
    • Uses a single Node.js version (typically the current LTS, e.g., 20.x).
    • Depends on the matrix test job via needs: <test-job-id> so it only runs once after tests succeed.
    • Checks out the code, sets up Node with the chosen version, runs npm ci, and then npm run build --if-present.

For example (you will need to adjust needs: to match your existing job id, and align indentation with your file):

jobs:
  # existing test/matrix job
  tests:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x]
    steps:
      # ... checkout, setup-node, npm ci, lint, test (no build here)

  build:
    needs: tests          # make sure this matches the actual test job id
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Use Node.js LTS
        uses: actions/setup-node@v4
        with:
          node-version: 20.x

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npm run build --if-present

Ensure that:

  • The new build job is at the same indentation level as your existing job(s) under jobs:.
  • The needs: value references the correct existing job id (e.g., tests, ci, or whatever your current matrix job is named).

Comment thread README.md
@@ -77,11 +77,65 @@ A commercial version of CloudExploit hosted at Khulnasoft Wave. Try [Khulnasoft
## Installation
Ensure that NodeJS is installed. If not, install it from [here](https://nodejs.org/download/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick (typo): Consider using the canonical spelling "Node.js" instead of "NodeJS".

To match the official project name and common usage, please change "NodeJS" to "Node.js" here (e.g., "Ensure that Node.js is installed.").

Suggested change
Ensure that NodeJS is installed. If not, install it from [here](https://nodejs.org/download/).
Ensure that Node.js is installed. If not, install it from [here](https://nodejs.org/download/).

@khulnasoft-bot
khulnasoft-bot merged commit b15bb09 into khulnasoft:master Dec 3, 2025
3 of 7 checks passed
@qodo-code-review

Copy link
Copy Markdown

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Update EOL Node.js test versions

Update the Node.js versions in the CI test matrix from the End-of-Life versions
[12.x, 14.x, 16.x] to currently supported LTS versions like [18.x, 20.x, 22.x].

.github/workflows/scans_ci.yml [15-17]

 strategy:
   matrix:
-    node-version: [12.x, 14.x, 16.x]  # Test on multiple Node.js versions
+    node-version: [18.x, 20.x, 22.x] # Test on supported Node.js LTS versions
  • Apply / Chat
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies that the Node.js versions in the test matrix are End-of-Life, and updating them is crucial for security and maintaining a relevant testing environment.

Medium
General
Pin action to a specific version

Pin the khulnasoft/codetypo-actions GitHub Action to a specific version tag
(e.g., v1.0.0) instead of the master branch to ensure workflow stability.

.github/workflows/scans_ci.yml [27-28]

 - name: Check for common typos
-  uses: khulnasoft/codetypo-actions@master
+  uses: khulnasoft/codetypo-actions@v1.0.0
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly points out the risk of using @master for a GitHub Action and recommends pinning to a specific version, which is a best practice for CI stability.

Low
  • More

@sonarqubecloud

sonarqubecloud Bot commented Dec 3, 2025

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
3.1% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

FortiShield added a commit that referenced this pull request Aug 10, 2026
* cloudsplit 2.0.0 fixed

* Bump @babel/traverse from 7.9.0 to 7.23.2

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.9.0 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* init commit

* Create SECURITY.md

Signed-off-by: Md Sulaiman <51925710+sulaiman-coder@users.noreply.github.com>

* Bump @octokit/app from 14.0.1 to 14.0.2

Bumps [@octokit/app](https://github.com/octokit/app.js) from 14.0.1 to 14.0.2.
- [Release notes](https://github.com/octokit/app.js/releases)
- [Commits](octokit/app.js@v14.0.1...v14.0.2)

---
updated-dependencies:
- dependency-name: "@octokit/app"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump follow-redirects from 1.15.3 to 1.15.4

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* ci: build

* Update scans_ci.yml

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* 1.0.0 add

* Update README.md

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* Azure/gov cloud

* ci: build (#30)

* ci: build

* Update scans_ci.yml

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* 1.0.0 add

* Update README.md

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* Azure/gov cloud

---------

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* fix index

* Ci (#31)

* ci: build

* Update scans_ci.yml

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* 1.0.0 add

* Update README.md

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* Azure/gov cloud

* fix index

---------

Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>

* update

* Update eksKubernetesVersion.spec.js

Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>

* Update scans_ci.yml

Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>

* Create docker-publish.yml

Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>

* Delete package-lock.json

Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>

* Update .gitignore

Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>

* Update scans_ci.yml

Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>

* Update scans_ci.yml

Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>

* Feature: CloudEploit 2.0.1

* Feature: CloudEploit 2.0.1

* Feature: CloudEploit 2.0.1

* Feature: CloudEploit 2.0.1

* Merge pull request #50 from envrs/feature/update-ci-cd-and-docs

chore: update CI/CD pipeline, add PR template, and improve documentation

* Bump minimatch in the npm_and_yarn group across 1 directory

Bumps the npm_and_yarn group with 1 update in the / directory: [minimatch](https://github.com/isaacs/minimatch).


Updates `minimatch` from 3.1.3 to 10.2.2
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v3.1.3...v10.2.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 10.2.2
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>

* ☁️  CloudExploit by KhulnaSoft Security, Ltd.    🔐  Multi‑Cloud Security Auditing Platform    🚀  AWS • Azure • GCP • Oracle • GitHub (#52)

* Merge pull request #1 from envrs/feature/update-ci-cd-and-docs

Feature/update ci cd and docs

* feat: ☁️  CloudExploit by KhulnaSoft Security, Ltd.
   🔐  Multi‑Cloud Security Auditing Platform
   🚀  AWS • Azure • GCP • Oracle • GitHub

* Update helpers/shared.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: fortishield <161459699+FortiShield@users.noreply.github.com>

* 🔧 Fix multiple issues across plugins, collectors, and helpers

- Remove invalid apis property from 9 privilege analysis plugins (no-op run functions)
- Fix regexMismatch length checks in iamRolePolicies.js to use Object.keys()
- Fix GuardDuty BridgeResourceNameIdentifier to use 'detectorId' instead of 'id'
- Update broken repo links in docs (cloudexploit/scans -> khulnasoft/cloudexploit)
- Fix queueService collector to use QueueServiceClient instead of TableServiceClient

* feat: migration uv

---------

Signed-off-by: fortishield <161459699+FortiShield@users.noreply.github.com>
Co-authored-by: fortishield <161459699+FortiShield@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: xeondesk <xeondesk@gmail.com>

* improve (#54)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Md Sulaiman <51925710+sulaiman-coder@users.noreply.github.com>
Signed-off-by: NxPKG <116948796+NxPKG@users.noreply.github.com>
Signed-off-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>
Signed-off-by: fortishield <161459699+FortiShield@users.noreply.github.com>
Co-authored-by: NxPKG <116948796+NxPKG@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Md Sulaiman <51925710+sulaiman-coder@users.noreply.github.com>
Co-authored-by: gitworkflows <118260833+gitworkflows@users.noreply.github.com>
Co-authored-by: khulnasoft-bot <43526132+khulnasoft-bot@users.noreply.github.com>
Co-authored-by: envrs <dr.lizadmf@gmail.com>
Co-authored-by: envrs <230240030+envrs@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: xeondesk <xeondesk@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants