go-octopusdeploy icon indicating copy to clipboard operation
go-octopusdeploy copied to clipboard

Remove redundant query parameters from API surface

Open borland opened this issue 3 years ago • 0 comments

Example:

ProjectsQuery in the library has this shape:

type ProjectsQuery struct {
	ClonedFromProjectID string   `url:"clonedFromProjectId"`
	IDs                 []string `uri:"ids,omitempty" url:"ids,omitempty"`
	IsClone             bool     `uri:"clone,omitempty" url:"clone,omitempty"`
	Name                string   `uri:"name,omitempty" url:"name,omitempty"`
	PartialName         string   `uri:"partialName,omitempty" url:"partialName,omitempty"`
	Skip                int      `uri:"skip,omitempty" url:"skip,omitempty"`
	Take                int      `uri:"take,omitempty" url:"take,omitempty"`
}

Note the presence of both Name and PartialName. To a casual observer, Name implies an exact name match -- however in practice the Octopus Server treats them both as a partial match.

I.e. given a project "Integrations", Query for {Name: "gr"} will find it. This is legacy behaviour in the server, and to avoid confusion we should remove the Name field from ProjectsQuery.

As part of this work, we should sweep the library's API surface and remove any other similarly redundant fields if there are others beyond Project Name

borland avatar Jul 31 '22 22:07 borland