MCPcopy Index your code
hub / github.com/coder/coder / workspaceBuild

Method workspaceBuild

coderd/workspacebuilds.go:48–103  ·  view source on GitHub ↗

@Summary Get workspace build @ID get-workspace-build @Security CoderSessionToken @Produce json @Tags Builds @Param workspacebuild path string true "Workspace build ID" @Success 200 {object} codersdk.WorkspaceBuild @Router /api/v2/workspacebuilds/{workspacebuild} [get]

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

46// @Success 200 {object} codersdk.WorkspaceBuild
47// @Router /api/v2/workspacebuilds/{workspacebuild} [get]
48func (api *API) workspaceBuild(rw http.ResponseWriter, r *http.Request) {
49 ctx := r.Context()
50 workspaceBuild := httpmw.WorkspaceBuildParam(r)
51 workspace := httpmw.WorkspaceParam(r)
52
53 data, err := api.workspaceBuildsData(ctx, []database.WorkspaceBuild{workspaceBuild})
54 if err != nil {
55 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
56 Message: "Internal error getting workspace build data.",
57 Detail: err.Error(),
58 })
59 return
60 }
61
62 // Ensure we have the job and template version for the workspace build.
63 // Otherwise we risk a panic in the api.convertWorkspaceBuild call below.
64 if len(data.jobs) == 0 {
65 httpapi.Write(ctx, rw, http.StatusNotFound, codersdk.Response{
66 Message: "Internal error getting workspace build data.",
67 Detail: "No job found for workspace build.",
68 })
69 return
70 }
71
72 if len(data.templateVersions) == 0 {
73 httpapi.Write(ctx, rw, http.StatusNotFound, codersdk.Response{
74 Message: "Internal error getting workspace build data.",
75 Detail: "No template version found for workspace build.",
76 })
77 return
78 }
79
80 apiBuild, err := api.convertWorkspaceBuild(
81 workspaceBuild,
82 workspace,
83 data.jobs[0],
84 data.resources,
85 data.metadata,
86 data.agents,
87 data.apps,
88 data.appStatuses,
89 data.scripts,
90 data.logSources,
91 data.templateVersions[0],
92 nil,
93 )
94 if err != nil {
95 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
96 Message: "Internal error converting workspace build.",
97 Detail: err.Error(),
98 })
99 return
100 }
101
102 httpapi.Write(ctx, rw, http.StatusOK, apiBuild)
103}
104
105// @Summary Get workspace builds by workspace ID

Callers

nothing calls this directly

Calls 7

workspaceBuildsDataMethod · 0.95
convertWorkspaceBuildMethod · 0.95
WorkspaceBuildParamFunction · 0.92
WorkspaceParamFunction · 0.92
WriteFunction · 0.92
ContextMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected