Skip to content

Commit 4a64554

Browse files
committed
Make configuration versions useful for workspaces
This adds the current configuration version ID to the workspace model and also includes the current VCS revision information on a given configuration version. This makes the configuration version information useful for workspaces that are VCS-backed.
1 parent 6aa9155 commit 4a64554

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

configuration_version.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ type configurationVersions struct {
2929
// ConfigurationStatus represents a configuration version status.
3030
type ConfigurationStatus string
3131

32-
//List all available configuration version statuses.
32+
// List all available configuration version statuses.
3333
const (
3434
ConfigurationErrored ConfigurationStatus = "errored"
3535
ConfigurationPending ConfigurationStatus = "pending"
@@ -43,7 +43,8 @@ type ConfigurationVersion struct {
4343
ID string `jsonapi:"primary,configuration-versions"`
4444
Status ConfigurationStatus `jsonapi:"attr,status"`
4545
// Relations
46-
Workspace *Workspace `jsonapi:"relation,workspace"`
46+
Workspace *Workspace `jsonapi:"relation,workspace"`
47+
VcsRevision *VcsRevision `jsonapi:"relation,vcs-revision,omitempty"`
4748
}
4849

4950
// ConfigurationVersionCreateOptions represents the options for creating a
@@ -52,6 +53,10 @@ type ConfigurationVersionCreateOptions struct {
5253
// For internal use only!
5354
ID string `jsonapi:"primary,configuration-versions"`
5455

56+
// Indicates if a run should automatically be queued when the configuration
57+
// has been uploaded.
58+
AutoQueueRuns *bool `jsonapi:"attr,auto-queue-runs,omitempty"`
59+
5560
Workspace *Workspace `jsonapi:"relation,workspace"`
5661
}
5762

@@ -94,8 +99,13 @@ func (s *configurationVersions) Read(ctx context.Context, cvID string) (*Configu
9499
return nil, errors.New("invalid value for configuration version ID")
95100
}
96101

102+
options := struct {
103+
Include string `url:"include"`
104+
}{
105+
Include: "vcs-revision",
106+
}
97107
u := fmt.Sprintf("configuration-versions/%s", url.QueryEscape(cvID))
98-
req, err := s.client.newRequest("GET", u, nil)
108+
req, err := s.client.newRequest("GET", u, options)
99109
if err != nil {
100110
return nil, err
101111
}

workspace.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,15 @@ type Workspace struct {
9393
VarFiles []string `jsonapi:"attr,var-files"`
9494

9595
// Relations
96-
CurrentRun *Run `jsonapi:"relation,current-run"`
97-
Environment *Environment `jsonapi:"relation,environment"`
98-
CreatedBy *User `jsonapi:"relation,created-by"`
99-
VcsProvider *VcsProvider `jsonapi:"relation,vcs-provider"`
100-
AgentPool *AgentPool `jsonapi:"relation,agent-pool"`
101-
ModuleVersion *ModuleVersion `jsonapi:"relation,module-version,omitempty"`
102-
Tags []*Tag `jsonapi:"relation,tags"`
96+
CurrentRun *Run `jsonapi:"relation,current-run"`
97+
Environment *Environment `jsonapi:"relation,environment"`
98+
CreatedBy *User `jsonapi:"relation,created-by"`
99+
VcsProvider *VcsProvider `jsonapi:"relation,vcs-provider"`
100+
AgentPool *AgentPool `jsonapi:"relation,agent-pool"`
101+
ModuleVersion *ModuleVersion `jsonapi:"relation,module-version,omitempty"`
102+
ConfigurationVersion *ConfigurationVersion `jsonapi:"relation,configuration-version,omitempty"`
103+
LatestConfigurationVersion *ConfigurationVersion `jsonapi:"relation,latest-configuration-version,omitempty"`
104+
Tags []*Tag `jsonapi:"relation,tags"`
103105
}
104106

105107
// Hooks contains the custom hooks field.

0 commit comments

Comments
 (0)