feat(cli): Add SSH key upload options to CLI#21
Merged
higherbros merged 3 commits intomainfrom Feb 3, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds SSH key upload functionality via the GitHub CLI (gh) to the gh-ssh tool, allowing users to automatically upload their SSH keys to GitHub instead of manually copying and pasting them. The PR also enables stricter ESLint checks for promises in conditionals and spreads.
Changes:
- Added new CLI options:
--upload,--skip-upload, and--key-titlefor controlling SSH key upload behavior - Implemented GitHub CLI service functions for checking installation, authentication, and uploading SSH keys
- Enhanced the workflow to support automated SSH key upload with authentication handling and fallback to manual upload
- Enabled ESLint
checksConditionalsandchecksSpreadsrules for theno-misused-promisesrule
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/help.test.ts | Added test assertions for new CLI options in help text |
| tests/gh.test.ts | Added comprehensive tests for new GitHub CLI service functions |
| tests/args.test.ts | Added tests for parsing new CLI arguments including edge case handling |
| src/lib/services/gh.ts | New service module for GitHub CLI operations (installation check, authentication, key upload) |
| src/lib/cli/workflow.ts | Enhanced step 6 to support automated SSH key upload with authentication flow and fallback handling |
| src/lib/cli/types.ts | Added new optional properties for upload-related CLI options |
| src/lib/cli/help.ts | Added documentation for new CLI options |
| src/lib/cli/args.ts | Added parsing logic for new CLI arguments |
| package-lock.json | Updated lockfile format with peer dependency markers (appears to be from npm version update) |
| eslint.config.mjs | Enabled additional promise checking rules and added config for disabling type-checked rules on JS files |
| README.md | Updated documentation to reflect new upload options and improved step 6 description |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Introduce options for uploading SSH keys to GitHub via the GitHub CLI, enhancing user experience.
Enable ESLint checks for conditionals and spreads in the no-misused-promises rule.