SIRTCK is an automated system for evaluating Rust solutions via GitHub pull requests. It clones repositories, runs tests, lints the code with Clippy, and posts detailed feedback directly on the pull request—all with a fun, Rust-themed twist!
- Automated Testing: Executes Rust’s test suites to validate your code.
- Linting with Clippy: Ensures code quality and adherence to best practices.
- Interactive Feedback: Posts formatted comments (with Rust-themed visuals) on pull requests.
- Task Management: Reads task definitions from a JSON file and processes related PRs automatically.
-
Clone the repository:
git clone https://github.com/yourusername/sirtck.git cd sirtck -
Build the project:
cargo build --release
-
Create a
.envFile:In the project root directory, create a file named
.envand add your GitHub token:GITHUB_TOKEN=ghp_yourGitHubPersonalAccessToken GITHUB_OWNER=owner GITHUB_REPO_NAME=test
-
Prepare Task Definitions:
Ensure that your task definitions are available in a JSON file at
tasks/tasks.json. Adjust the file path in the code if your file is located elsewhere.
Run the application using Cargo:
cargo run --releaseUpon execution, the system will:
- Load tasks from
tasks/tasks.json. - Use the GitHub API to locate pull requests associated with each task.
- Clone the relevant repository branches.
- Execute tests and perform Clippy checks.
- Post a formatted comment on each pull request with test results and Clippy output, including visual Rust-themed accents (e.g., 🦀).
An example comment posted on a PR might look like:
## 🦀 Test Results 🦀
**Score:** 5/5
### Test Output
(test output here)
### Clippy Output
(clippy output here)Contributions are welcome! Please open issues or submit pull requests to help improve SIRTCK.
This project is licensed under the MIT License.