Skip to content

Commit 3406ca7

Browse files
committed
added build number
1 parent d1ba2b9 commit 3406ca7

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

coderd/audit.go

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,11 @@ func (api *API) convertAuditLogs(ctx context.Context, dblogs []database.GetAudit
159159
return alogs
160160
}
161161

162+
type AdditionalFields struct {
163+
WorkspaceName string
164+
BuildNumber string
165+
}
166+
162167
func (api *API) convertAuditLog(ctx context.Context, dblog database.GetAuditLogsOffsetRow) codersdk.AuditLog {
163168
ip, _ := netip.AddrFromSlice(dblog.Ip.IPNet.IP)
164169

@@ -184,6 +189,13 @@ func (api *API) convertAuditLog(ctx context.Context, dblog database.GetAuditLogs
184189
}
185190
}
186191

192+
additionalFieldsBytes := []byte(dblog.AdditionalFields)
193+
var additionalFields AdditionalFields
194+
err := json.Unmarshal(additionalFieldsBytes, &additionalFields)
195+
if err != nil {
196+
api.Logger.Error(ctx, "unmarshal additional fields", slog.Error(err))
197+
}
198+
187199
return codersdk.AuditLog{
188200
ID: dblog.ID,
189201
RequestID: dblog.RequestID,
@@ -200,23 +212,24 @@ func (api *API) convertAuditLog(ctx context.Context, dblog database.GetAuditLogs
200212
StatusCode: dblog.StatusCode,
201213
AdditionalFields: dblog.AdditionalFields,
202214
User: user,
203-
Description: auditLogDescription(dblog),
204-
ResourceLink: api.auditLogResourceLink(ctx, dblog),
215+
Description: auditLogDescription(dblog, additionalFields),
216+
ResourceLink: api.auditLogResourceLink(ctx, dblog, additionalFields),
205217
IsDeleted: api.auditLogIsResourceDeleted(ctx, dblog),
206218
}
207219
}
208220

209-
func auditLogDescription(alog database.GetAuditLogsOffsetRow) string {
221+
func auditLogDescription(alog database.GetAuditLogsOffsetRow, additionalFields AdditionalFields) string {
210222
str := fmt.Sprintf("{user} %s",
211223
codersdk.AuditAction(alog.Action).FriendlyString(),
212224
)
213225

214226
// Strings for starting/stopping workspace builds follow the below format:
215-
// "{user} started build for workspace {target}"
227+
// "{user} started build #{build_number} for workspace {target}"
216228
// where target is a workspace instead of a workspace build
217229
// passed in on the FE via AuditLog.AdditionalFields rather than derived in request.go:35
218230
if alog.ResourceType == database.ResourceTypeWorkspaceBuild && alog.Action != database.AuditActionDelete {
219-
str += " build for"
231+
str += fmt.Sprintf(" build #%s for",
232+
additionalFields.BuildNumber)
220233
}
221234

222235
// We don't display the name (target) for git ssh keys. It's fairly long and doesn't
@@ -271,12 +284,7 @@ func (api *API) auditLogIsResourceDeleted(ctx context.Context, alog database.Get
271284
}
272285
}
273286

274-
type AdditionalFields struct {
275-
WorkspaceName string
276-
BuildNumber string
277-
}
278-
279-
func (api *API) auditLogResourceLink(ctx context.Context, alog database.GetAuditLogsOffsetRow) string {
287+
func (api *API) auditLogResourceLink(ctx context.Context, alog database.GetAuditLogsOffsetRow, additionalFields AdditionalFields) string {
280288
if api.auditLogIsResourceDeleted(ctx, alog) {
281289
return ""
282290
}
@@ -292,12 +300,6 @@ func (api *API) auditLogResourceLink(ctx context.Context, alog database.GetAudit
292300
return fmt.Sprintf("/@%s/%s",
293301
alog.UserUsername.String, alog.ResourceTarget)
294302
case database.ResourceTypeWorkspaceBuild:
295-
additionalFieldsBytes := []byte(alog.AdditionalFields)
296-
var additionalFields AdditionalFields
297-
err := json.Unmarshal(additionalFieldsBytes, &additionalFields)
298-
if err != nil {
299-
api.Logger.Error(ctx, "could not unmarshal workspace name", slog.Error(err))
300-
}
301303
return fmt.Sprintf("/@%s/%s/builds/%s",
302304
alog.UserUsername.String, additionalFields.WorkspaceName, additionalFields.BuildNumber)
303305
default:

0 commit comments

Comments
 (0)