Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Pull Request Overview
This PR merges a working branch to master, transforming the project from "safe-hash-action" to "soteria" - a CLI tool for validating Safe transaction hashes in JSON log files. The changes include significant refactoring of the argument parsing, improved error handling and output formatting, support for account configuration files, and the addition of Docker support and CI/CD workflows.
Key changes:
- Replaced custom argument parsing with the
clapcrate for standardized CLI handling - Added colored output using
owo-colorsfor better visual feedback - Introduced support for
accountConfig.jsonfiles to provide directory-level Safe addresses - Added Docker configuration and GitHub Actions workflows for CI/CD
Reviewed Changes
Copilot reviewed 6 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/main.rs | Complete refactoring with clap-based argument parsing, colored output, account config support, and improved error handling |
| Cargo.toml | Updated package name to "soteria", added clap and owo-colors dependencies with pinned versions |
| Cargo.lock | Added dependency tree for new crates (clap, owo-colors, and their transitive dependencies) |
| README.md | New documentation with quickstart instructions for CLI and Docker usage |
| Dockerfile | Multi-stage Docker build using Rust Alpine and distroless runtime |
| .gitignore | Updated mocks path pattern from mocks/* to mocks/ |
| .github/workflows/release.yml | Release workflow for building artifacts and publishing Docker images |
| .github/workflows/ci.yml | CI workflow for building, testing, and formatting checks |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| }) | ||
| inputs.extend(self.input.iter().cloned()); | ||
| inputs.extend(self.paths.iter().cloned()); | ||
| inputs |
There was a problem hiding this comment.
The 'resolved_inputs' method always returns a Vec even when both 'input' and 'paths' are empty. This differs from the old behavior which defaulted to specific directories ('src/logs' and 'src/accountConfigs'). If no inputs are provided, the tool will find no files and exit silently. Consider documenting this behavior change or adding default paths back if the change was unintentional.
| inputs | |
| if inputs.is_empty() { | |
| vec![ | |
| PathBuf::from("src/logs"), | |
| PathBuf::from("src/accountConfigs"), | |
| ] | |
| } else { | |
| inputs | |
| } |
No description provided.