Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

add method to set default tag on image #187

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions coder-sdk/tags.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ type CreateImageTagReq struct {
Default bool `json:"default"`
}

// SetDefaultTagReq is used to set the default tag for an image.
type SetDefaultTagReq struct {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Another approach is to have the SetDefaultImageTag take a tag string instead, and then we build the JSON struct either on the fly or build it using an inline struct.

I went with this approach since it seemed to mirror the existing struct CreateImageTagReq.

DefaultTag string `json:"default_tag"`
}

// CreateImageTag creates a new image tag resource.
func (c Client) CreateImageTag(ctx context.Context, imageID string, req CreateImageTagReq) (*ImageTag, error) {
var tag ImageTag
Expand Down Expand Up @@ -66,3 +71,8 @@ func (c Client) ImageTagByID(ctx context.Context, imageID, tagID string) (*Image
}
return &tag, nil
}

// SetDefaultImageTag sets the default tag for an image. The tag must exist before calling this method.
func (c Client) SetDefaultImageTag(ctx context.Context, imageID string, req SetDefaultTagReq) error {
return c.requestBody(ctx, http.MethodPatch, "/api/images/"+imageID, req, nil)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This method returns the image, but I don't think that's necessary if you already have the imageID and this method returns without an error - the only changed value would be the default tag field.

Copy link
Contributor

Choose a reason for hiding this comment

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

Totally agree. Returning an error alone seems appropriate here.

}