Skip to content

feat: Added tool install verifier with cli calls#14

Merged
Alex793x merged 1 commit intodevelopfrom
feature/security-tool-verifier
Jun 6, 2025
Merged

feat: Added tool install verifier with cli calls#14
Alex793x merged 1 commit intodevelopfrom
feature/security-tool-verifier

Conversation

@Alex793x
Copy link
Copy Markdown
Contributor

@Alex793x Alex793x commented Jun 6, 2025

This pull request introduces significant enhancements to the Syncable CLI, focusing on improving installation scripts, adding support for vulnerability scanning tools, refining language detection logic, and extending CLI commands for tool management. The changes improve usability, expand functionality, and streamline the codebase.

Installation Script Enhancements:

  • Added helper functions for colored output (print_success, print_warning, print_error, print_info, print_step) to improve user experience during installation.
  • Integrated automatic installation of vulnerability scanning tools (cargo-audit, pip-audit, govulncheck, grype) with platform-specific handling and manual installation guides.

Language Detection Improvements:

  • Added Language::from_string method to map language strings to Language enum values, improving code clarity and reusability.
  • Refactored SecurityAnalyzer to use the new Language::from_string method for consistent language detection logic. [1] [2] [3] [4] [5]

CLI Extensions:

  • Introduced new Tools command in the CLI to manage vulnerability scanning tools, including subcommands for status, installation, verification, and manual setup guides.
  • Updated the main application logic to handle the new Tools command.

Codebase Simplifications:

  • Removed redundant Language::from_string implementation from SecurityAnalyzer and centralized it within the Language enum.
  • Made ToolInstaller::test_tool_availability method public for broader usage across modules.

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.
@Alex793x Alex793x requested a review from Copilot June 6, 2025 08:42
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request adds a new Tools command to the Syncable CLI for managing vulnerability scanning tools. It refines language detection by centralizing string-to-enum conversion, and it substantially improves the installation script with enhanced feedback and platform-specific instructions.

  • Adds a new Tools branch in both the main application logic and CLI argument parsing.
  • Makes the tool availability testing function public for reuse.
  • Updates the installation script with colored output and detailed installation procedures for vulnerability scanning tools.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/main.rs Added branch for Tools command handling in main application logic.
src/cli.rs Introduced Tools subcommands for status, install, verify, and guide.
src/analyzer/tool_installer.rs Made test_tool_availability public to support broader usage.
src/analyzer/security_analyzer.rs Updated language conversion calls in security analysis loops.
src/analyzer/dependency_parser.rs Added a public from_string method for language detection.
install.sh Enhanced installation script with colorized output and detailed instructions.

Comment thread src/analyzer/security_analyzer.rs
@Alex793x Alex793x merged commit 37d1dde into develop Jun 6, 2025
Alex793x added a commit that referenced this pull request Jun 6, 2025
* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot.yml

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Alex793x added a commit that referenced this pull request Jun 6, 2025
Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.
@Alex793x Alex793x mentioned this pull request Jun 6, 2025
@Alex793x Alex793x deleted the feature/security-tool-verifier branch June 6, 2025 08:53
Alex793x added a commit that referenced this pull request Jun 6, 2025
* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: release v0.1.5

* Develop (#15)

* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot.yml

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Revert "Develop (#15)"

This reverts commit 8ac0cfe.

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

* chore: release v0.2.0

* feat: Implemented automatic update information

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Alex793x added a commit that referenced this pull request Jun 6, 2025
* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: release v0.1.5

* Develop (#15)

* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot.yml

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Revert "Develop (#15)"

This reverts commit 8ac0cfe.

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

* chore: release v0.2.0

* feat: Implemented automatic update information

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@Alex793x Alex793x mentioned this pull request Jun 6, 2025
Alex793x added a commit that referenced this pull request Mar 28, 2026
Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.
Alex793x added a commit that referenced this pull request Mar 28, 2026
* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: release v0.1.5

* Develop (#15)

* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot.yml

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Revert "Develop (#15)"

This reverts commit 8ac0cfe.

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

* chore: release v0.2.0

* feat: Implemented automatic update information

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Alex793x added a commit that referenced this pull request Mar 28, 2026
* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot.yml

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Alex793x added a commit that referenced this pull request Mar 28, 2026
Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.
Alex793x added a commit that referenced this pull request Mar 28, 2026
* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: release v0.1.5

* Develop (#15)

* Feature/update dependabot (#11)

* chore: release v0.1.4

* Feature/dependabot (#3)

* chore: release v0.1.4

* Create dependabot.yml

* feat: depndabot branch strategy

* chore(deps): bump dirs from 5.0.1 to 6.0.0

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump reqwest from 0.11.27 to 0.12.19

Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.27 to 0.12.19.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.11.27...v0.12.19)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Update README.md

* Update README.md

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot.yml

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Revert "Develop (#15)"

This reverts commit 8ac0cfe.

* feat: Added tool install verifier with cli calls (#14)

Before we didn't check if users where missing tools with a expressive incormation enought, this update will highlight the missing tools users needs to security validate for instance python, go and java applications.

* chore: release v0.2.0

* feat: Implemented automatic update information

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants