[{"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5054","id":3487399499,"node_id":"PR_kwDONTKKrs7P3X5L","html_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5054","diff_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5054.diff","patch_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5054.patch","issue_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5054","number":5054,"state":"open","locked":false,"title":"feat(sidekick\/swift): basic field annotations","user":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/6241635?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/coryan","html_url":"https:\/\/github.com\/coryan","followers_url":"https:\/\/api.github.com\/users\/coryan\/followers","following_url":"https:\/\/api.github.com\/users\/coryan\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/coryan\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/coryan\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/coryan\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/coryan\/orgs","repos_url":"https:\/\/api.github.com\/users\/coryan\/repos","events_url":"https:\/\/api.github.com\/users\/coryan\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/coryan\/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"As for messages, we need some basic annotations on fields. This time no need for copyright boilerplate.\r\n\r\nPart of the work for #5037 ","created_at":"2026-04-03T20:10:39Z","updated_at":"2026-04-03T20:10:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b8895736e96b7890dc43294a02a182198e7b5f3c","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":true,"commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5054\/commits","review_comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5054\/comments","review_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5054\/comments","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/a90c55dc906e6febeb7c510de56ef5cabd86c5dd","head":{"label":"coryan:feat-sidekick-swift-annotate-fields","ref":"feat-sidekick-swift-annotate-fields","sha":"a90c55dc906e6febeb7c510de56ef5cabd86c5dd","user":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/6241635?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/coryan","html_url":"https:\/\/github.com\/coryan","followers_url":"https:\/\/api.github.com\/users\/coryan\/followers","following_url":"https:\/\/api.github.com\/users\/coryan\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/coryan\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/coryan\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/coryan\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/coryan\/orgs","repos_url":"https:\/\/api.github.com\/users\/coryan\/repos","events_url":"https:\/\/api.github.com\/users\/coryan\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/coryan\/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1032116199,"node_id":"R_kgDOPYTX5w","name":"librarian","full_name":"coryan\/librarian","private":false,"owner":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/6241635?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/coryan","html_url":"https:\/\/github.com\/coryan","followers_url":"https:\/\/api.github.com\/users\/coryan\/followers","following_url":"https:\/\/api.github.com\/users\/coryan\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/coryan\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/coryan\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/coryan\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/coryan\/orgs","repos_url":"https:\/\/api.github.com\/users\/coryan\/repos","events_url":"https:\/\/api.github.com\/users\/coryan\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/coryan\/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/coryan\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":true,"url":"https:\/\/api.github.com\/repos\/coryan\/librarian","forks_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/deployments","created_at":"2025-08-04T20:41:32Z","updated_at":"2026-04-03T20:06:53Z","pushed_at":"2026-04-03T20:10:19Z","git_url":"git:\/\/github.com\/coryan\/librarian.git","ssh_url":"git@github.com:coryan\/librarian.git","clone_url":"https:\/\/github.com\/coryan\/librarian.git","svn_url":"https:\/\/github.com\/coryan\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19961,"stargazers_count":1,"watchers_count":1,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":1,"default_branch":"main"}},"base":{"label":"googleapis:main","ref":"main","sha":"c58b8c175a47231ee0854162dea9ab5782e1a959","user":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":892504750,"node_id":"R_kgDONTKKrg","name":"librarian","full_name":"googleapis\/librarian","private":false,"owner":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/googleapis\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":false,"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian","forks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/deployments","created_at":"2024-11-22T08:36:43Z","updated_at":"2026-04-03T20:02:14Z","pushed_at":"2026-04-03T20:02:09Z","git_url":"git:\/\/github.com\/googleapis\/librarian.git","ssh_url":"git@github.com:googleapis\/librarian.git","clone_url":"https:\/\/github.com\/googleapis\/librarian.git","svn_url":"https:\/\/github.com\/googleapis\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19957,"stargazers_count":32,"watchers_count":32,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":42,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":341,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["cloud","google","libraries","sdk"],"visibility":"public","forks":42,"open_issues":341,"watchers":32,"default_branch":"main"}},"_links":{"self":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5054"},"html":{"href":"https:\/\/github.com\/googleapis\/librarian\/pull\/5054"},"issue":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5054"},"comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5054\/comments"},"review_comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5054\/comments"},"review_comment":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}"},"commits":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5054\/commits"},"statuses":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/a90c55dc906e6febeb7c510de56ef5cabd86c5dd"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5053","id":3487367262,"node_id":"PR_kwDONTKKrs7P3QBe","html_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5053","diff_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5053.diff","patch_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5053.patch","issue_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5053","number":5053,"state":"open","locked":false,"title":"feat(internal\/librarian\/java): update bom and poarent pom.xml with submodules","user":{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},"body":" Librarian is updated to surgically synchronize the BOM and Parent POM files for Java client libraries. The update logic uses template markers to define managed blocks for dependencies and modules. When synchronization is triggered, only the content between these markers is replaced with generated content. This follows the same pattern already established for the main client library POM files.\r\n\r\nFor #4922\r\n","created_at":"2026-04-03T19:55:49Z","updated_at":"2026-04-03T20:01:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"73c1b23ee19a71bb3ed3582c67741661aca6a2ec","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":true,"commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5053\/commits","review_comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5053\/comments","review_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5053\/comments","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/ea9cd90adf55bf8ae6e12c3e458b178f6705536f","head":{"label":"zhumin8:java-module-bom-parent-update","ref":"java-module-bom-parent-update","sha":"ea9cd90adf55bf8ae6e12c3e458b178f6705536f","user":{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":938866383,"node_id":"R_kgDON_X2zw","name":"librarian","full_name":"zhumin8\/librarian","private":false,"owner":{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/zhumin8\/librarian","description":null,"fork":true,"url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian","forks_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/deployments","created_at":"2025-02-25T16:16:51Z","updated_at":"2026-02-04T20:05:25Z","pushed_at":"2026-04-03T19:53:53Z","git_url":"git:\/\/github.com\/zhumin8\/librarian.git","ssh_url":"git@github.com:zhumin8\/librarian.git","clone_url":"https:\/\/github.com\/zhumin8\/librarian.git","svn_url":"https:\/\/github.com\/zhumin8\/librarian","homepage":null,"size":20205,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"}},"base":{"label":"googleapis:main","ref":"main","sha":"8b5b384948c738f742175c2577ed1d9e04b01b13","user":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":892504750,"node_id":"R_kgDONTKKrg","name":"librarian","full_name":"googleapis\/librarian","private":false,"owner":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/googleapis\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":false,"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian","forks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/deployments","created_at":"2024-11-22T08:36:43Z","updated_at":"2026-04-03T20:02:14Z","pushed_at":"2026-04-03T20:02:09Z","git_url":"git:\/\/github.com\/googleapis\/librarian.git","ssh_url":"git@github.com:googleapis\/librarian.git","clone_url":"https:\/\/github.com\/googleapis\/librarian.git","svn_url":"https:\/\/github.com\/googleapis\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19957,"stargazers_count":32,"watchers_count":32,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":42,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":341,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["cloud","google","libraries","sdk"],"visibility":"public","forks":42,"open_issues":341,"watchers":32,"default_branch":"main"}},"_links":{"self":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5053"},"html":{"href":"https:\/\/github.com\/googleapis\/librarian\/pull\/5053"},"issue":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5053"},"comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5053\/comments"},"review_comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5053\/comments"},"review_comment":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}"},"commits":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5053\/commits"},"statuses":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/ea9cd90adf55bf8ae6e12c3e458b178f6705536f"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5049","id":3487192400,"node_id":"PR_kwDONTKKrs7P2lVQ","html_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5049","diff_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5049.diff","patch_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5049.patch","issue_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5049","number":5049,"state":"open","locked":false,"title":"feat(tool\/cmd\/migrate): migrate to support adding template marker for client pom.xml files","user":{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Supports adding templated markers for client pom.xml as part of migrate command for Java. For more context on why we are adding this see #4921.\r\n\r\nSee result from sample run [in draft pr](https:\/\/github.com\/zhumin8\/google-cloud-java\/pull\/2). Note this script currently inserts to 196\/236 pom.xml files, the missing ones are due to module name derive issues, tracked in #5048.\r\n\r\n\r\nFix #4991","created_at":"2026-04-03T18:49:08Z","updated_at":"2026-04-03T19:16:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5a27dd3735d99ffbe437e2436b46178991403c9a","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":true,"commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5049\/commits","review_comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5049\/comments","review_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5049\/comments","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/8094916d5d4c5bba681f7d37d973cd171f510b3b","head":{"label":"zhumin8:java-migrate-client-pom-template-markers","ref":"java-migrate-client-pom-template-markers","sha":"8094916d5d4c5bba681f7d37d973cd171f510b3b","user":{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":938866383,"node_id":"R_kgDON_X2zw","name":"librarian","full_name":"zhumin8\/librarian","private":false,"owner":{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/zhumin8\/librarian","description":null,"fork":true,"url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian","forks_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/zhumin8\/librarian\/deployments","created_at":"2025-02-25T16:16:51Z","updated_at":"2026-02-04T20:05:25Z","pushed_at":"2026-04-03T19:53:53Z","git_url":"git:\/\/github.com\/zhumin8\/librarian.git","ssh_url":"git@github.com:zhumin8\/librarian.git","clone_url":"https:\/\/github.com\/zhumin8\/librarian.git","svn_url":"https:\/\/github.com\/zhumin8\/librarian","homepage":null,"size":20205,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"}},"base":{"label":"googleapis:main","ref":"main","sha":"f143596760ce1e31ef3ac7fb05e529d774b96e02","user":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":892504750,"node_id":"R_kgDONTKKrg","name":"librarian","full_name":"googleapis\/librarian","private":false,"owner":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/googleapis\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":false,"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian","forks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/deployments","created_at":"2024-11-22T08:36:43Z","updated_at":"2026-04-03T20:02:14Z","pushed_at":"2026-04-03T20:02:09Z","git_url":"git:\/\/github.com\/googleapis\/librarian.git","ssh_url":"git@github.com:googleapis\/librarian.git","clone_url":"https:\/\/github.com\/googleapis\/librarian.git","svn_url":"https:\/\/github.com\/googleapis\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19957,"stargazers_count":32,"watchers_count":32,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":42,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":341,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["cloud","google","libraries","sdk"],"visibility":"public","forks":42,"open_issues":341,"watchers":32,"default_branch":"main"}},"_links":{"self":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5049"},"html":{"href":"https:\/\/github.com\/googleapis\/librarian\/pull\/5049"},"issue":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5049"},"comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5049\/comments"},"review_comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5049\/comments"},"review_comment":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}"},"commits":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5049\/commits"},"statuses":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/8094916d5d4c5bba681f7d37d973cd171f510b3b"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5038","id":3486503311,"node_id":"PR_kwDONTKKrs7Pz9GP","html_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5038","diff_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5038.diff","patch_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5038.patch","issue_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5038","number":5038,"state":"open","locked":false,"title":"feat(sidekick): support file-per-element","user":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/6241635?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/coryan","html_url":"https:\/\/github.com\/coryan","followers_url":"https:\/\/api.github.com\/users\/coryan\/followers","following_url":"https:\/\/api.github.com\/users\/coryan\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/coryan\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/coryan\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/coryan\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/coryan\/orgs","repos_url":"https:\/\/api.github.com\/users\/coryan\/repos","events_url":"https:\/\/api.github.com\/users\/coryan\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/coryan\/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"In Swift we want to generate a separate file per message. The robots tell me that a large file with all the message could be trouble, why not avoid the trouble?\r\n\r\nPreviously sidekick could only generate files starting at the root of the model, with this change it can generate a separate file for each message, or enum, or service.\r\n\r\nPart of the work for #5037 ","created_at":"2026-04-03T14:26:23Z","updated_at":"2026-04-03T20:14:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"00cb6575f156e3e38a1771c98bc7a9421fd20e04","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5038\/commits","review_comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5038\/comments","review_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5038\/comments","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/7ef08f892223baf8592ecfd8c04fd832b13bf638","head":{"label":"coryan:feat-sidekick-element-per-file","ref":"feat-sidekick-element-per-file","sha":"7ef08f892223baf8592ecfd8c04fd832b13bf638","user":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/6241635?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/coryan","html_url":"https:\/\/github.com\/coryan","followers_url":"https:\/\/api.github.com\/users\/coryan\/followers","following_url":"https:\/\/api.github.com\/users\/coryan\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/coryan\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/coryan\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/coryan\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/coryan\/orgs","repos_url":"https:\/\/api.github.com\/users\/coryan\/repos","events_url":"https:\/\/api.github.com\/users\/coryan\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/coryan\/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1032116199,"node_id":"R_kgDOPYTX5w","name":"librarian","full_name":"coryan\/librarian","private":false,"owner":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/6241635?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/coryan","html_url":"https:\/\/github.com\/coryan","followers_url":"https:\/\/api.github.com\/users\/coryan\/followers","following_url":"https:\/\/api.github.com\/users\/coryan\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/coryan\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/coryan\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/coryan\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/coryan\/orgs","repos_url":"https:\/\/api.github.com\/users\/coryan\/repos","events_url":"https:\/\/api.github.com\/users\/coryan\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/coryan\/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/coryan\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":true,"url":"https:\/\/api.github.com\/repos\/coryan\/librarian","forks_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/coryan\/librarian\/deployments","created_at":"2025-08-04T20:41:32Z","updated_at":"2026-04-03T20:06:53Z","pushed_at":"2026-04-03T20:10:19Z","git_url":"git:\/\/github.com\/coryan\/librarian.git","ssh_url":"git@github.com:coryan\/librarian.git","clone_url":"https:\/\/github.com\/coryan\/librarian.git","svn_url":"https:\/\/github.com\/coryan\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19961,"stargazers_count":1,"watchers_count":1,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":1,"default_branch":"main"}},"base":{"label":"googleapis:main","ref":"main","sha":"cdd77aa4b756a48a0aba9718248cf864e27d0503","user":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":892504750,"node_id":"R_kgDONTKKrg","name":"librarian","full_name":"googleapis\/librarian","private":false,"owner":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/googleapis\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":false,"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian","forks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/deployments","created_at":"2024-11-22T08:36:43Z","updated_at":"2026-04-03T20:02:14Z","pushed_at":"2026-04-03T20:02:09Z","git_url":"git:\/\/github.com\/googleapis\/librarian.git","ssh_url":"git@github.com:googleapis\/librarian.git","clone_url":"https:\/\/github.com\/googleapis\/librarian.git","svn_url":"https:\/\/github.com\/googleapis\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19957,"stargazers_count":32,"watchers_count":32,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":42,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":341,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["cloud","google","libraries","sdk"],"visibility":"public","forks":42,"open_issues":341,"watchers":32,"default_branch":"main"}},"_links":{"self":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5038"},"html":{"href":"https:\/\/github.com\/googleapis\/librarian\/pull\/5038"},"issue":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5038"},"comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5038\/comments"},"review_comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5038\/comments"},"review_comment":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}"},"commits":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5038\/commits"},"statuses":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/7ef08f892223baf8592ecfd8c04fd832b13bf638"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5032","id":3485279213,"node_id":"PR_kwDONTKKrs7PvSPt","html_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5032","diff_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5032.diff","patch_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5032.patch","issue_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5032","number":5032,"state":"open","locked":false,"title":"feat(nodejs): execute librarian.js from repository root","user":{"login":"quirogas","id":22756465,"node_id":"MDQ6VXNlcjIyNzU2NDY1","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/22756465?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/quirogas","html_url":"https:\/\/github.com\/quirogas","followers_url":"https:\/\/api.github.com\/users\/quirogas\/followers","following_url":"https:\/\/api.github.com\/users\/quirogas\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/quirogas\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/quirogas\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/quirogas\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/quirogas\/orgs","repos_url":"https:\/\/api.github.com\/users\/quirogas\/repos","events_url":"https:\/\/api.github.com\/users\/quirogas\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/quirogas\/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Modify the execution of the custom `librarian.js` post-processing script to run from the repository root instead of the individual package directory.\r\n\r\n## Root Cause\r\nPreviously, Librarian executed `node librarian.js` with the working directory set to the package directory (e.g., `packages\/google-cloud-secretmanager`). However, many existing `librarian.js` scripts were authored with the assumption they would be executed from the repository root, using hardcoded paths like:\r\n`const filePath = 'packages\/google-cloud-secretmanager\/src\/v1\/secret_manager_service_client.ts';`\r\n\r\nThis caused the scripts to fail silently as they looked for a `packages\/` directory inside their own package folder.\r\n\r\n## Backwards Compatibility\r\nThis change is backwards compatible for the following reasons:\r\n1. **Existing Scripts:** Most existing `librarian.js` scripts in the `google-cloud-node` monorepo already use repository-relative paths. This fix allows them to work as intended without modification.\r\n2. **Path Resolution:** By running from the root and passing the absolute or root-relative path to the script itself, Node.js still correctly locates the script, but `process.cwd()` now points to the root, which aligns with the authoring convention for these post-processors.\r\n\r\n## Verification\r\nVerified with `google-cloud-secretmanager`:\r\n- **Before Fix:** Custom path templates (`projectPath`, `secretPath`) were removed during generation because `librarian.js` failed to find the target files.\r\n- **After Fix:** `librarian.js` successfully finds and modifies the generated files, restoring the missing handwritten code.\r\n\r\nUpdates #4843\r\n","created_at":"2026-04-03T06:43:45Z","updated_at":"2026-04-03T11:32:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"64906d3e0575ee285d8afdbc67129332bcac497b","assignees":[{"login":"quirogas","id":22756465,"node_id":"MDQ6VXNlcjIyNzU2NDY1","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/22756465?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/quirogas","html_url":"https:\/\/github.com\/quirogas","followers_url":"https:\/\/api.github.com\/users\/quirogas\/followers","following_url":"https:\/\/api.github.com\/users\/quirogas\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/quirogas\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/quirogas\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/quirogas\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/quirogas\/orgs","repos_url":"https:\/\/api.github.com\/users\/quirogas\/repos","events_url":"https:\/\/api.github.com\/users\/quirogas\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/quirogas\/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_reviewers":[{"login":"pearigee","id":86282859,"node_id":"MDQ6VXNlcjg2MjgyODU5","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/86282859?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/pearigee","html_url":"https:\/\/github.com\/pearigee","followers_url":"https:\/\/api.github.com\/users\/pearigee\/followers","following_url":"https:\/\/api.github.com\/users\/pearigee\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/pearigee\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/pearigee\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/pearigee\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/pearigee\/orgs","repos_url":"https:\/\/api.github.com\/users\/pearigee\/repos","events_url":"https:\/\/api.github.com\/users\/pearigee\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/pearigee\/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"draft":true,"commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5032\/commits","review_comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5032\/comments","review_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5032\/comments","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/8ed3a11bb09798406c11e23fc63e41ad9f61f4bb","head":{"label":"quirogas:fix-librarian-js-cwd","ref":"fix-librarian-js-cwd","sha":"8ed3a11bb09798406c11e23fc63e41ad9f61f4bb","user":{"login":"quirogas","id":22756465,"node_id":"MDQ6VXNlcjIyNzU2NDY1","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/22756465?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/quirogas","html_url":"https:\/\/github.com\/quirogas","followers_url":"https:\/\/api.github.com\/users\/quirogas\/followers","following_url":"https:\/\/api.github.com\/users\/quirogas\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/quirogas\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/quirogas\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/quirogas\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/quirogas\/orgs","repos_url":"https:\/\/api.github.com\/users\/quirogas\/repos","events_url":"https:\/\/api.github.com\/users\/quirogas\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/quirogas\/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1068516017,"node_id":"R_kgDOP7BCsQ","name":"librarian","full_name":"quirogas\/librarian","private":false,"owner":{"login":"quirogas","id":22756465,"node_id":"MDQ6VXNlcjIyNzU2NDY1","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/22756465?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/quirogas","html_url":"https:\/\/github.com\/quirogas","followers_url":"https:\/\/api.github.com\/users\/quirogas\/followers","following_url":"https:\/\/api.github.com\/users\/quirogas\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/quirogas\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/quirogas\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/quirogas\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/quirogas\/orgs","repos_url":"https:\/\/api.github.com\/users\/quirogas\/repos","events_url":"https:\/\/api.github.com\/users\/quirogas\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/quirogas\/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/quirogas\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":true,"url":"https:\/\/api.github.com\/repos\/quirogas\/librarian","forks_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/quirogas\/librarian\/deployments","created_at":"2025-10-02T13:57:40Z","updated_at":"2026-02-18T23:11:45Z","pushed_at":"2026-04-03T07:02:15Z","git_url":"git:\/\/github.com\/quirogas\/librarian.git","ssh_url":"git@github.com:quirogas\/librarian.git","clone_url":"https:\/\/github.com\/quirogas\/librarian.git","svn_url":"https:\/\/github.com\/quirogas\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":20469,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"base":{"label":"googleapis:main","ref":"main","sha":"836df0adad4e8659a0595b3008430229fe63d6a4","user":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":892504750,"node_id":"R_kgDONTKKrg","name":"librarian","full_name":"googleapis\/librarian","private":false,"owner":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/googleapis\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":false,"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian","forks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/deployments","created_at":"2024-11-22T08:36:43Z","updated_at":"2026-04-03T20:02:14Z","pushed_at":"2026-04-03T20:02:09Z","git_url":"git:\/\/github.com\/googleapis\/librarian.git","ssh_url":"git@github.com:googleapis\/librarian.git","clone_url":"https:\/\/github.com\/googleapis\/librarian.git","svn_url":"https:\/\/github.com\/googleapis\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19957,"stargazers_count":32,"watchers_count":32,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":42,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":341,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["cloud","google","libraries","sdk"],"visibility":"public","forks":42,"open_issues":341,"watchers":32,"default_branch":"main"}},"_links":{"self":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5032"},"html":{"href":"https:\/\/github.com\/googleapis\/librarian\/pull\/5032"},"issue":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5032"},"comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5032\/comments"},"review_comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5032\/comments"},"review_comment":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}"},"commits":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5032\/commits"},"statuses":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/8ed3a11bb09798406c11e23fc63e41ad9f61f4bb"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":{"login":"quirogas","id":22756465,"node_id":"MDQ6VXNlcjIyNzU2NDY1","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/22756465?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/quirogas","html_url":"https:\/\/github.com\/quirogas","followers_url":"https:\/\/api.github.com\/users\/quirogas\/followers","following_url":"https:\/\/api.github.com\/users\/quirogas\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/quirogas\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/quirogas\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/quirogas\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/quirogas\/orgs","repos_url":"https:\/\/api.github.com\/users\/quirogas\/repos","events_url":"https:\/\/api.github.com\/users\/quirogas\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/quirogas\/received_events","type":"User","user_view_type":"public","site_admin":false},"active_lock_reason":null},{"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5009","id":3482442530,"node_id":"PR_kwDONTKKrs7Pkdsi","html_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5009","diff_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5009.diff","patch_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/5009.patch","issue_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5009","number":5009,"state":"open","locked":false,"title":"test(internal\/librarian\/java): use sentinel errors with errors.Is for error validation","user":{"login":"perashanid","id":155494150,"node_id":"U_kgDOCUSnBg","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/155494150?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/perashanid","html_url":"https:\/\/github.com\/perashanid","followers_url":"https:\/\/api.github.com\/users\/perashanid\/followers","following_url":"https:\/\/api.github.com\/users\/perashanid\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/perashanid\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/perashanid\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/perashanid\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/perashanid\/orgs","repos_url":"https:\/\/api.github.com\/users\/perashanid\/repos","events_url":"https:\/\/api.github.com\/users\/perashanid\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/perashanid\/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Address review feedback by replacing string-based error checking with sentinel errors following the project's Go style guide.\n\nChanges:\n- Add errInvalidDistributionName and errAPIConfigNotFound sentinel errors (unexported)\n- Wrap sentinel errors in collectModules error returns using %w\n- Update TestCollectModules_Error to use errors.Is instead of strings.Contains\n- Remove unused strings import from test file\n\nThis makes error checking more robust and maintainable by avoiding fragile string comparisons that can break when error messages change.\n\nFixes #4962","created_at":"2026-04-02T13:54:18Z","updated_at":"2026-04-02T21:06:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignees":[],"requested_reviewers":[{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},{"login":"noahdietz","id":6644735,"node_id":"MDQ6VXNlcjY2NDQ3MzU=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/6644735?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/noahdietz","html_url":"https:\/\/github.com\/noahdietz","followers_url":"https:\/\/api.github.com\/users\/noahdietz\/followers","following_url":"https:\/\/api.github.com\/users\/noahdietz\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/noahdietz\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/noahdietz\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/noahdietz\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/noahdietz\/orgs","repos_url":"https:\/\/api.github.com\/users\/noahdietz\/repos","events_url":"https:\/\/api.github.com\/users\/noahdietz\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/noahdietz\/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5009\/commits","review_comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5009\/comments","review_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5009\/comments","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/dfb3e1101ee7823a18ac92fe3c3d3bd229e8f533","head":{"label":"perashanid:fix\/java-test-error-check-4962","ref":"fix\/java-test-error-check-4962","sha":"dfb3e1101ee7823a18ac92fe3c3d3bd229e8f533","user":{"login":"perashanid","id":155494150,"node_id":"U_kgDOCUSnBg","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/155494150?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/perashanid","html_url":"https:\/\/github.com\/perashanid","followers_url":"https:\/\/api.github.com\/users\/perashanid\/followers","following_url":"https:\/\/api.github.com\/users\/perashanid\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/perashanid\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/perashanid\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/perashanid\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/perashanid\/orgs","repos_url":"https:\/\/api.github.com\/users\/perashanid\/repos","events_url":"https:\/\/api.github.com\/users\/perashanid\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/perashanid\/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1196437097,"node_id":"R_kgDOR1AuaQ","name":"librarian","full_name":"perashanid\/librarian","private":false,"owner":{"login":"perashanid","id":155494150,"node_id":"U_kgDOCUSnBg","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/155494150?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/perashanid","html_url":"https:\/\/github.com\/perashanid","followers_url":"https:\/\/api.github.com\/users\/perashanid\/followers","following_url":"https:\/\/api.github.com\/users\/perashanid\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/perashanid\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/perashanid\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/perashanid\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/perashanid\/orgs","repos_url":"https:\/\/api.github.com\/users\/perashanid\/repos","events_url":"https:\/\/api.github.com\/users\/perashanid\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/perashanid\/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/perashanid\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":true,"url":"https:\/\/api.github.com\/repos\/perashanid\/librarian","forks_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/deployments","created_at":"2026-03-30T17:42:25Z","updated_at":"2026-03-30T17:42:29Z","pushed_at":"2026-04-02T21:06:29Z","git_url":"git:\/\/github.com\/perashanid\/librarian.git","ssh_url":"git@github.com:perashanid\/librarian.git","clone_url":"https:\/\/github.com\/perashanid\/librarian.git","svn_url":"https:\/\/github.com\/perashanid\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19924,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"base":{"label":"googleapis:main","ref":"main","sha":"821586f8375642616f24f3ee20222397710e1341","user":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":892504750,"node_id":"R_kgDONTKKrg","name":"librarian","full_name":"googleapis\/librarian","private":false,"owner":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/googleapis\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":false,"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian","forks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/deployments","created_at":"2024-11-22T08:36:43Z","updated_at":"2026-04-03T20:02:14Z","pushed_at":"2026-04-03T20:02:09Z","git_url":"git:\/\/github.com\/googleapis\/librarian.git","ssh_url":"git@github.com:googleapis\/librarian.git","clone_url":"https:\/\/github.com\/googleapis\/librarian.git","svn_url":"https:\/\/github.com\/googleapis\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19957,"stargazers_count":32,"watchers_count":32,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":42,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":341,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["cloud","google","libraries","sdk"],"visibility":"public","forks":42,"open_issues":341,"watchers":32,"default_branch":"main"}},"_links":{"self":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5009"},"html":{"href":"https:\/\/github.com\/googleapis\/librarian\/pull\/5009"},"issue":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5009"},"comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/5009\/comments"},"review_comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5009\/comments"},"review_comment":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}"},"commits":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/5009\/commits"},"statuses":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/dfb3e1101ee7823a18ac92fe3c3d3bd229e8f533"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/4967","id":3474195252,"node_id":"PR_kwDONTKKrs7PFAM0","html_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/4967","diff_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/4967.diff","patch_url":"https:\/\/github.com\/googleapis\/librarian\/pull\/4967.patch","issue_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/4967","number":4967,"state":"open","locked":false,"title":"feat(internal\/librarian\/java): add entries to versions.txt for new modules","user":{"login":"perashanid","id":155494150,"node_id":"U_kgDOCUSnBg","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/155494150?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/perashanid","html_url":"https:\/\/github.com\/perashanid","followers_url":"https:\/\/api.github.com\/users\/perashanid\/followers","following_url":"https:\/\/api.github.com\/users\/perashanid\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/perashanid\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/perashanid\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/perashanid\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/perashanid\/orgs","repos_url":"https:\/\/api.github.com\/users\/perashanid\/repos","events_url":"https:\/\/api.github.com\/users\/perashanid\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/perashanid\/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"This PR adds functionality to automatically update versions.txt when new Java modules are generated. This is needed during migration when release-please is still in use.\r\n\r\nChanges Made:\r\n\r\nModified generatePomsIfMissing to track newly created modules and call updateVersionsFile after generating POMs\r\nAdded updateVersionsFile function that appends entries to versions.txt for new modules\r\nThe function handles creating the file if it doesn't exist, appending to existing content, and avoiding duplicate entries\r\nFormat used: module-name:0.0.0:version-SNAPSHOT where 0.0.0 is the initial released version for new modules\r\n\r\nTechnical Implementation:\r\n\r\nWhen new proto-, grpc-, or gapic client modules are generated, their artifact IDs are collected\r\nThe updateVersionsFile function reads the existing versions.txt to avoid duplicates\r\nNew entries are appended with format: module:0.0.0:library-version-SNAPSHOT\r\nThe file is created in the repository root (parent directory of the library directory)\r\n\r\nTesting:\r\n\r\nAdded comprehensive test coverage in TestUpdateVersionsFile with scenarios for:\r\n- Creating new versions.txt file\r\n- Appending to existing file\r\n- Skipping duplicate modules\r\n- Adding multiple new modules at once\r\n\r\nAll existing pom-related tests pass\r\nNo linting or diagnostic issues\r\n\r\nFixes https:\/\/github.com\/googleapis\/librarian\/issues\/4927\r\n","created_at":"2026-03-31T21:59:57Z","updated_at":"2026-04-02T14:27:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignees":[],"requested_reviewers":[{"login":"zhumin8","id":3340152,"node_id":"MDQ6VXNlcjMzNDAxNTI=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/3340152?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/zhumin8","html_url":"https:\/\/github.com\/zhumin8","followers_url":"https:\/\/api.github.com\/users\/zhumin8\/followers","following_url":"https:\/\/api.github.com\/users\/zhumin8\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/zhumin8\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/zhumin8\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/zhumin8\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/zhumin8\/orgs","repos_url":"https:\/\/api.github.com\/users\/zhumin8\/repos","events_url":"https:\/\/api.github.com\/users\/zhumin8\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/zhumin8\/received_events","type":"User","user_view_type":"public","site_admin":false},{"login":"JoeWang1127","id":106995533,"node_id":"U_kgDOBmCfTQ","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/106995533?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/JoeWang1127","html_url":"https:\/\/github.com\/JoeWang1127","followers_url":"https:\/\/api.github.com\/users\/JoeWang1127\/followers","following_url":"https:\/\/api.github.com\/users\/JoeWang1127\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/JoeWang1127\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/JoeWang1127\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/JoeWang1127\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/JoeWang1127\/orgs","repos_url":"https:\/\/api.github.com\/users\/JoeWang1127\/repos","events_url":"https:\/\/api.github.com\/users\/JoeWang1127\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/JoeWang1127\/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/4967\/commits","review_comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/4967\/comments","review_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/4967\/comments","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/bf3283df3f39d59ba3da4a00c4dad5b00964a14f","head":{"label":"perashanid:feat\/java-versions-txt-4927","ref":"feat\/java-versions-txt-4927","sha":"bf3283df3f39d59ba3da4a00c4dad5b00964a14f","user":{"login":"perashanid","id":155494150,"node_id":"U_kgDOCUSnBg","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/155494150?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/perashanid","html_url":"https:\/\/github.com\/perashanid","followers_url":"https:\/\/api.github.com\/users\/perashanid\/followers","following_url":"https:\/\/api.github.com\/users\/perashanid\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/perashanid\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/perashanid\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/perashanid\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/perashanid\/orgs","repos_url":"https:\/\/api.github.com\/users\/perashanid\/repos","events_url":"https:\/\/api.github.com\/users\/perashanid\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/perashanid\/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1196437097,"node_id":"R_kgDOR1AuaQ","name":"librarian","full_name":"perashanid\/librarian","private":false,"owner":{"login":"perashanid","id":155494150,"node_id":"U_kgDOCUSnBg","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/155494150?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/perashanid","html_url":"https:\/\/github.com\/perashanid","followers_url":"https:\/\/api.github.com\/users\/perashanid\/followers","following_url":"https:\/\/api.github.com\/users\/perashanid\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/perashanid\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/perashanid\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/perashanid\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/perashanid\/orgs","repos_url":"https:\/\/api.github.com\/users\/perashanid\/repos","events_url":"https:\/\/api.github.com\/users\/perashanid\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/perashanid\/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/perashanid\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":true,"url":"https:\/\/api.github.com\/repos\/perashanid\/librarian","forks_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/perashanid\/librarian\/deployments","created_at":"2026-03-30T17:42:25Z","updated_at":"2026-03-30T17:42:29Z","pushed_at":"2026-04-02T21:06:29Z","git_url":"git:\/\/github.com\/perashanid\/librarian.git","ssh_url":"git@github.com:perashanid\/librarian.git","clone_url":"https:\/\/github.com\/perashanid\/librarian.git","svn_url":"https:\/\/github.com\/perashanid\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19924,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"base":{"label":"googleapis:main","ref":"main","sha":"f5f4a577e6d5c1fc4c6076f63f331e880dc41701","user":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":892504750,"node_id":"R_kgDONTKKrg","name":"librarian","full_name":"googleapis\/librarian","private":false,"owner":{"login":"googleapis","id":16785467,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Nzg1NDY3","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/16785467?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/googleapis","html_url":"https:\/\/github.com\/googleapis","followers_url":"https:\/\/api.github.com\/users\/googleapis\/followers","following_url":"https:\/\/api.github.com\/users\/googleapis\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/googleapis\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/googleapis\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/googleapis\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/googleapis\/orgs","repos_url":"https:\/\/api.github.com\/users\/googleapis\/repos","events_url":"https:\/\/api.github.com\/users\/googleapis\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/googleapis\/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https:\/\/github.com\/googleapis\/librarian","description":"CLI for managing SDK client library configuration, generation and releases","fork":false,"url":"https:\/\/api.github.com\/repos\/googleapis\/librarian","forks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/forks","keys_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/keys{\/key_id}","collaborators_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/collaborators{\/collaborator}","teams_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/teams","hooks_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/hooks","issue_events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/events{\/number}","events_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/events","assignees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/assignees{\/user}","branches_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/branches{\/branch}","tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/tags","blobs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/blobs{\/sha}","git_tags_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/tags{\/sha}","git_refs_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/refs{\/sha}","trees_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/trees{\/sha}","statuses_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/{sha}","languages_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/languages","stargazers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/stargazers","contributors_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contributors","subscribers_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscribers","subscription_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/subscription","commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/commits{\/sha}","git_commits_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/git\/commits{\/sha}","comments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/comments{\/number}","issue_comment_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/comments{\/number}","contents_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/contents\/{+path}","compare_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/compare\/{base}...{head}","merges_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/merges","archive_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/{archive_format}{\/ref}","downloads_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/downloads","issues_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues{\/number}","pulls_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls{\/number}","milestones_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/milestones{\/number}","notifications_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/notifications{?since,all,participating}","labels_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/labels{\/name}","releases_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/releases{\/id}","deployments_url":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/deployments","created_at":"2024-11-22T08:36:43Z","updated_at":"2026-04-03T20:02:14Z","pushed_at":"2026-04-03T20:02:09Z","git_url":"git:\/\/github.com\/googleapis\/librarian.git","ssh_url":"git@github.com:googleapis\/librarian.git","clone_url":"https:\/\/github.com\/googleapis\/librarian.git","svn_url":"https:\/\/github.com\/googleapis\/librarian","homepage":"https:\/\/cloud.google.com\/sdk","size":19957,"stargazers_count":32,"watchers_count":32,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":42,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":341,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https:\/\/api.github.com\/licenses\/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["cloud","google","libraries","sdk"],"visibility":"public","forks":42,"open_issues":341,"watchers":32,"default_branch":"main"}},"_links":{"self":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/4967"},"html":{"href":"https:\/\/github.com\/googleapis\/librarian\/pull\/4967"},"issue":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/4967"},"comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/issues\/4967\/comments"},"review_comments":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/4967\/comments"},"review_comment":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/comments{\/number}"},"commits":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/pulls\/4967\/commits"},"statuses":{"href":"https:\/\/api.github.com\/repos\/googleapis\/librarian\/statuses\/bf3283df3f39d59ba3da4a00c4dad5b00964a14f"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null}]