Skip to content

Feature: Prompt for SSH key passphrase during commit/push/PR #3813

Description

@pantharshit007

Summary

When using an SSH key protected by a passphrase, git operations (push/pull) require entering the SSH key password. In VS Code, this surfaces as a top-of-window popup that asks for the SSH key passphrase. T3 Code currently errors out instead of prompting.

Problem

If you use a passphrase-protected SSH key, running one-click commit, push, and create PR in T3 Code fails because there is no way to supply the SSH passphrase. The operation should not hard-fail; it should interactively collect the credential and continue.

Proposed solution

When git/SSH needs a passphrase (e.g. during push as part of commit + push + open PR):

  1. Show a popup/modal asking for the SSH key passphrase (similar to VS Code).
  2. Pass the passphrase into the git/SSH pipeline for that operation.
  3. Complete the full flow (commit → push → create PR) without requiring the user to leave T3 Code.

Img from vscode's popup:
Image

Motivation

  • Matches the familiar VS Code UX for passphrase-protected SSH keys.
  • Makes one-click commit/push/PR usable for users who secure their keys with a passphrase.
  • Avoids opaque failures when SSH agent doesn’t already hold the unlocked key.

Acceptance criteria

  • Passphrase-protected SSH keys prompt the user instead of failing the push.
  • Entered passphrase is used only for the active git/SSH operation (not persisted insecurely).
  • One-click commit + push + create PR completes successfully after the user provides the passphrase.
  • Behavior is consistent with other credential prompts in the product where applicable.

Additional context

Works fine when the key is already unlocked (e.g. via ssh-agent). The gap is interactive prompting when the key is locked, especially during automated multi-step git flows.

Error message

Git command failed in GitVcsDriver.pushCurrentBranch.pushWithUpstream (/Users/username/personal/projects): Git command exited with a non-zero status.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions