Uh oh!
There was an error while loading. Please reload this page.
refactor!: Pass TemplateRepoRequest by value in Repositories.CreateFromTemplate - #4378
Conversation
…eFromTemplate` Towards google#3644. BREAKING CHANGE: Repositories.CreateFromTemplate now takes TemplateRepoRequest by value, and TemplateRepoRequest.Name is now a non-pointer string.
gmlewis
left a comment
There was a problem hiding this comment.
Thank you, @JamBalaya56562!
LGTM.
Awaiting second LGTM+Approval from any other contributor to this repo before merging.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## master #4378 +/- ##
=======================================
Coverage 97.51% 97.51% =======================================
Files 193 193 Lines 19526 19526 =======================================
Hits 19040 19040 Misses 268 268 Partials 218 218 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
| @@ -621,7 +621,7 @@ func (s *RepositoriesService) Create(ctx context.Context, org string, repo *Repo | |||
| // TemplateRepoRequest represents a request to create a repository from a template. | |||
| type TemplateRepoRequest struct { | |||
| // Name is required when creating a repo. | |||
There was a problem hiding this comment.
This comment is redundant and can be removed.
| // Name is required when creating a repo. |
There was a problem hiding this comment.
Done, removed the redundant comment.
| Name string `json:"name"` | ||
| Owner *string `json:"owner,omitempty"` | ||
| Description *string `json:"description,omitempty"` | ||
There was a problem hiding this comment.
Let's remove this empty line:
There was a problem hiding this comment.
Done, removed the empty line.
Addresses review feedback.
BREAKING CHANGE:
RepositoriesService.CreateFromTemplatenow passesbodyby value andNameis now required and passed by value.Towards #3644.
Repositories.CreateFromTemplatenow takes itsTemplateRepoRequestbody by value instead of by pointer, and the requirednameproperty becomes a non-pointerstring(itsomitemptyis dropped), so the required body is enforced at compile time.The OpenAPI schema for
POST /repos/{template_owner}/{template_repo}/generatelistsnameas the only required property, and its properties (owner,name,description,include_all_branches,private) map 1:1 to the struct — no fields are missing, so nothing is added.TemplateRepoRequestis removed from theparamcheckbody-allowed-pointer-typesallowlist in.golangci.yml, and the generated accessors are regenerated (GetNamenow returns the value directly).