Skip to content

feat: Support git push via SSH#2397

Merged
lqiu96 merged 11 commits intomainfrom
support-remote-ssh
Oct 1, 2025
Merged

feat: Support git push via SSH#2397
lqiu96 merged 11 commits intomainfrom
support-remote-ssh

Conversation

@lqiu96
Copy link
Copy Markdown
Member

@lqiu96 lqiu96 commented Sep 26, 2025

Fixes: #2339

Changes

  • Automatically determine if HTTPS or SSH should be used based on the remote URI
  • SSH is configured via go-git transport using ssh-agent. Requires users to upload their private keys to ssh-agent so that it can be picked up. SSH-Agent is used so that the private key path + passphrase doesn't need to passed in via env vars or flags.

Result from running cloudtop

Command used: librarian release init -push. Resulted in PR created: #2449

Logs from invocation:

level=INFO msg="Authenticating with SSH"
level=INFO msg="Successfully pushed changes"
level=INFO [msg="Creating PR" branch=librarian-20250926T172344Z base=main title="chore: librarian release pull request: 20250926T172344Z"](https://github.com/googleapis/librarian/pull/2449)
level=INFO msg="PR created" url=https://github.com/googleapis/librarian/pull/2449
level=INFO msg="Labels added to issue" number=2449 labels=[release:pending]

@codecov
Copy link
Copy Markdown

codecov bot commented Sep 26, 2025

Codecov Report

❌ Patch coverage is 40.00000% with 39 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.21%. Comparing base (043cf65) to head (dd350f9).
⚠️ Report is 27 commits behind head on main.

Files with missing lines Patch % Lines
internal/gitrepo/gitrepo.go 40.00% 39 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2397      +/-   ##
==========================================
+ Coverage   84.50%   87.21%   +2.70%     
==========================================
  Files         100      100              
  Lines       10075    11144    +1069     
==========================================
+ Hits         8514     9719    +1205     
+ Misses       1212     1089     -123     
+ Partials      349      336      -13     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lqiu96 lqiu96 requested a review from codyoss September 26, 2025 18:44
@lqiu96 lqiu96 marked this pull request as ready for review September 26, 2025 18:44
@lqiu96 lqiu96 requested a review from a team as a code owner September 26, 2025 18:44
@lqiu96 lqiu96 requested a review from JoeWang1127 September 30, 2025 18:19
@lqiu96 lqiu96 requested a review from codyoss September 30, 2025 20:33
Copy link
Copy Markdown
Member

@codyoss codyoss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@lqiu96 lqiu96 merged commit 7259194 into main Oct 1, 2025
11 of 12 checks passed
@lqiu96 lqiu96 deleted the support-remote-ssh branch October 1, 2025 02:18
suztomo pushed a commit that referenced this pull request Oct 13, 2025
Librarian Version: v0.0.0-20251009012716-e267b1dfc9b9
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-release-container:latest
<details><summary>librarian: 0.4.0</summary>

##
[0.4.0](v0.3.0...v0.4.0)
(2025-10-09)

### Features

* add `git log` functionality (#2510)
([e267b1d](e267b1d))

* Modify README.md to match our agreed-upon wording (#2503)
([2dc6fc6](2dc6fc6))

* Show actual enum values on setter samples. (#2491)
([13fd5a1](13fd5a1))

* sort library state when writing to `state.yaml` (#2504)
([35e4495](35e4495))

* Generate methods that use server-side streaming (#2474)
([31a496d](31a496d))

* allow configuring tag_format in config.yaml (#2236)
([e0eeddb](e0eeddb))

* `update` supports different roots (#2473)
([65fa7ed](65fa7ed))

* Support git push via SSH (#2397)
([7259194](7259194))

* mount output dir in configure docker command (#2439)
([365019e](365019e))

* Update templates for otel (#2443)
([ea54ba6](ea54ba6))

* support aggregated pagination (#2432)
([5b010b9](5b010b9))

* override pagination items field (#2441)
([4a3664a](4a3664a))

* include source root in configure request (#2431)
([475a62d](475a62d))

* rust&#43;disco bytes (de)serialization (#2428)
([b2a186c](b2a186c))

* enum serialization for non-proto sources (#2410)
([516f29e](516f29e))

* optional singular fields in discovery (#2408)
([c86c2db](c86c2db))

* deprecated elements in discovery docs (#2399)
([1d83853](1d83853))

* allow &#34;.&#34; as valid `source_roots` entry (#2396)
([2f52aa7](2f52aa7))

* inline messages in discovery docs (#2394)
([043cf65](043cf65))

* write pr-body.txt to the work root when not pushing (#2395)
([862c7d7](862c7d7))

* define LIBRARIAN_GITHUB_TOKEN as a constant (#2367)
([5979bfd](5979bfd))

### Bug Fixes

* clarify doc and comment with commit and push flag (#2507)
([645e42a](645e42a))

* keep first value for repeated footer keys (#2440)
([e51490d](e51490d))

* group commit msg if they have the same piper id and subject (#2496)
([60b7d38](60b7d38))

* real runs for `rust-publish` (#2484)
([15d63c2](15d63c2))

* Remove unnecessary dereference in transport template (#2481)
([610cec9](610cec9))

* shorten SHAs in generate commit msgs (#2472)
([de336b1](de336b1))

* handle slashes in library IDs (#2463)
([91c0189](91c0189))

* nil check for github.NewClient (#2465)
([71db17e](71db17e))

* Conventional Commit parser filters files based on Librarian flow
(#2433)
([6cb55d2](6cb55d2))

* Ensure detailed-tracing-attributes flag is fully propagated (#2438)
([a184f0d](a184f0d))

* relax footer regex to allow line broke footers to be properly
recognized (#2388)
([dcbe063](dcbe063))

* release init provides read-only full repository (#2370)
([2e11004](2e11004))

* write the PR body on &#34;commit but no push&#34; (#2430)
([88698b4](88698b4))

* should not push to github when no push flag specified (#2405)
([2a49ae6](2a49ae6))

* only mount global files in configure command (#2377)
([1a2aaa0](1a2aaa0))

* `Map` field attribute in discovery (#2414)
([00c645f](00c645f))

* missing IDs in discovery doc fields (#2386)
([d579dd7](d579dd7))

</details>
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.

librarian: SSH remotes are not well supported

2 participants