Skip to content

fix: re-sync SSH deploy keys when updating site source control#1083

Open
urufudev wants to merge 3 commits into
vitodeploy:3.xfrom
urufudev:fix/ssh-key-resync-on-source-control-update
Open

fix: re-sync SSH deploy keys when updating site source control#1083
urufudev wants to merge 3 commits into
vitodeploy:3.xfrom
urufudev:fix/ssh-key-resync-on-source-control-update

Conversation

@urufudev
Copy link
Copy Markdown

When a user updates the Source Control provider/token for an existing site (via Settings → Source Controls), the SSH deploy key is not automatically re-registered in the repository. This leads to Permission denied (publickey) errors during subsequent deployments.

This PR updates UpdateSourceControl.php to:

  1. Remove the old deploy key from the previous source control provider (if it exists).
  2. Register the existing SSH key with the new source control provider/token.
  3. Store the new deploy_key_id in type_data to ensure DeleteSite can correctly clean it up later.

Changes:
Modified app/Actions/Site/UpdateSourceControl.php to include the logic for deleting the old key and creating the new one using the existing Site and SourceControl providers.

Verification:

  1. Tested on local and production (DigitalOcean) servers.
  2. Verified that keys are correctly created in GitHub with the expected {domain}-key-{id} format.
  3. Verified that the previous key is removed before creating the new one to avoid clutter.

@saeedvaziry
Copy link
Copy Markdown
Member

@urufudev thanks for the PR. I'd appreceate test coverage for this

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants