feat: add install script with sha256 validation#108
Merged
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add file SHA validation in install script
feat: add install script with sha256 validation
Dec 12, 2025
Test Coverage Report
Coverage ThresholdsThe project has the following coverage thresholds configured:
Coverage report generated by `npm run test:coverage` |
There was a problem hiding this comment.
Pull request overview
This PR adds a new installation script with SHA256 checksum validation to address issue #107, where 404 error pages could be downloaded and executed as valid binaries.
Key Changes:
- New
install.shscript with comprehensive security features including SHA256 verification, HTTP error detection, and file type validation - Updated installation documentation across README.md, docs/RELEASE_TEMPLATE.md, and docs-site to promote the new installer
- Added
-fflag to curl commands in manual installation instructions for fail-fast behavior on HTTP errors
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| install.sh | New installation script with SHA256 checksum verification, file type validation, and comprehensive error handling |
| README.md | Updated installation section to recommend the new one-line installer with SHA verification as the primary method |
| docs/RELEASE_TEMPLATE.md | Added one-line installer section and updated manual installation to include checksum verification steps |
| docs-site/src/content/docs/index.md | Updated installation instructions to promote the new installer with automatic SHA verification |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Jiaxiao (mossaka) Zhou <duibao55328@gmail.com>
- Separate local variable declarations from assignments (SC2155) - Use single quotes in trap to avoid early expansion warning (SC2064) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This was referenced Dec 19, 2025
This was referenced Dec 19, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Downloads could fail silently when HTTP errors (e.g., 404 pages) were saved as valid binaries. Users then executed HTML content instead of the binary.
Changes
New
install.shscript:checksums.txtfrom releasecurl -ffor fail-fast on HTTP errors (404, 403, etc.)^[a-fA-F0-9]{64}$)mktemp -d -tDocumentation updates:
Usage
Security
Protects against:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.