-
Notifications
You must be signed in to change notification settings - Fork 961
fix!: support empty or default fields when updating templates #19256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
All contributors have signed the CLA ✍️ ✅ |
I have read the CLA Document and I hereby sign the CLA |
Can we add a This is a breaking change for the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LG 👍
Just throw the !
in the commit title, fix!:
. Add to the description the breaking change is the field types in codersdk.UpdateTemplateMeta
for icon
, description
, and displayname
moved to *string
Interestingly, the typescript types are unchanged because omitempty
was included. So the typscript was already correct ❤️
readonly display_name?: string;
readonly description?: string;
readonly icon?: string;
Breaking change: Field types in
codersdk.UpdateTemplateMeta
forIcon
,Description
, andDisplayName
moved to*string
Summary
In this pull request we're updating the
UpdateTemplateMeta
struct to allowDisplayName
,Description
, andIcon
to be set as empty""
or default to the value from the template if not provided in an update call.Fixes #19036
The bug
The reported bug occurred when clients were attempting to update a metadata field in a template via an edit call. When the request was decoded into an
UpdateTemplateMeta
struct the default values for fields in the struct were used to update the template even if they weren't provided. This led to fields likeIcon
being set to""
(the default value).Changes
To allow for specific fields to be set to
""
these fields were updated to be*string
as opposed tostring
. This allows for clients to set these fields as""
in an update request or they will default to the template value if they are not provided in the update request (will benil
).Added tests to confirm empty and nil values and updated other tests that use these fields.