Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit541f985

Browse files
committed
feat: initiator_username joined to workspace_build queries
Using views to make models for sqlc
1 parent7258d6a commit541f985

File tree

13 files changed

+159
-75
lines changed

13 files changed

+159
-75
lines changed

‎coderd/autobuild/executor/lifecycle_executor.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ func (e *Executor) runOnce(t time.Time) Stats {
190190

191191
// TODO(cian): this function duplicates most of api.postWorkspaceBuilds. Refactor.
192192
// See: https://github.com/coder/coder/issues/1401
193-
funcbuild(ctx context.Context,store database.Store,workspace database.Workspace,trans database.WorkspaceTransition,priorHistory database.WorkspaceBuild,priorJob database.ProvisionerJob)error {
193+
funcbuild(ctx context.Context,store database.Store,workspace database.Workspace,trans database.WorkspaceTransition,priorHistory database.WorkspaceBuildsWithInitiator,priorJob database.ProvisionerJob)error {
194194
template,err:=store.GetTemplateByID(ctx,workspace.TemplateID)
195195
iferr!=nil {
196196
returnxerrors.Errorf("get workspace template: %w",err)

‎coderd/database/databasefake/databasefake.go‎

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -476,63 +476,63 @@ func (q *fakeQuerier) GetWorkspaceOwnerCountsByTemplateIDs(_ context.Context, te
476476
returnres,nil
477477
}
478478

479-
func (q*fakeQuerier)GetWorkspaceBuildByID(_ context.Context,id uuid.UUID) (database.WorkspaceBuild,error) {
479+
func (q*fakeQuerier)GetWorkspaceBuildByID(_ context.Context,id uuid.UUID) (database.WorkspaceBuildsWithInitiator,error) {
480480
q.mutex.RLock()
481481
deferq.mutex.RUnlock()
482482

483483
for_,history:=rangeq.workspaceBuilds {
484484
ifhistory.ID.String()==id.String() {
485-
returnhistory,nil
485+
returnq.workspaceBuildWithInitiator(history),nil
486486
}
487487
}
488-
return database.WorkspaceBuild{},sql.ErrNoRows
488+
return database.WorkspaceBuildsWithInitiator{},sql.ErrNoRows
489489
}
490490

491-
func (q*fakeQuerier)GetWorkspaceBuildByJobID(_ context.Context,jobID uuid.UUID) (database.WorkspaceBuild,error) {
491+
func (q*fakeQuerier)GetWorkspaceBuildByJobID(_ context.Context,jobID uuid.UUID) (database.WorkspaceBuildsWithInitiator,error) {
492492
q.mutex.RLock()
493493
deferq.mutex.RUnlock()
494494

495495
for_,build:=rangeq.workspaceBuilds {
496496
ifbuild.JobID.String()==jobID.String() {
497-
returnbuild,nil
497+
returnq.workspaceBuildWithInitiator(build),nil
498498
}
499499
}
500-
return database.WorkspaceBuild{},sql.ErrNoRows
500+
return database.WorkspaceBuildsWithInitiator{},sql.ErrNoRows
501501
}
502502

503-
func (q*fakeQuerier)GetLatestWorkspaceBuildByWorkspaceID(_ context.Context,workspaceID uuid.UUID) (database.WorkspaceBuild,error) {
503+
func (q*fakeQuerier)GetLatestWorkspaceBuildByWorkspaceID(_ context.Context,workspaceID uuid.UUID) (database.WorkspaceBuildsWithInitiator,error) {
504504
q.mutex.RLock()
505505
deferq.mutex.RUnlock()
506506

507-
varrow database.WorkspaceBuild
507+
varrow database.WorkspaceBuildsWithInitiator
508508
varbuildNumint32
509509
for_,workspaceBuild:=rangeq.workspaceBuilds {
510510
ifworkspaceBuild.WorkspaceID.String()==workspaceID.String()&&workspaceBuild.BuildNumber>buildNum {
511-
row=workspaceBuild
511+
row=q.workspaceBuildWithInitiator(workspaceBuild)
512512
buildNum=workspaceBuild.BuildNumber
513513
}
514514
}
515515
ifbuildNum==0 {
516-
return database.WorkspaceBuild{},sql.ErrNoRows
516+
return database.WorkspaceBuildsWithInitiator{},sql.ErrNoRows
517517
}
518518
returnrow,nil
519519
}
520520

521-
func (q*fakeQuerier)GetLatestWorkspaceBuildsByWorkspaceIDs(_ context.Context,ids []uuid.UUID) ([]database.WorkspaceBuild,error) {
521+
func (q*fakeQuerier)GetLatestWorkspaceBuildsByWorkspaceIDs(_ context.Context,ids []uuid.UUID) ([]database.WorkspaceBuildsWithInitiator,error) {
522522
q.mutex.RLock()
523523
deferq.mutex.RUnlock()
524524

525-
builds:=make(map[uuid.UUID]database.WorkspaceBuild)
525+
builds:=make(map[uuid.UUID]database.WorkspaceBuildsWithInitiator)
526526
buildNumbers:=make(map[uuid.UUID]int32)
527527
for_,workspaceBuild:=rangeq.workspaceBuilds {
528528
for_,id:=rangeids {
529529
ifid.String()==workspaceBuild.WorkspaceID.String()&&workspaceBuild.BuildNumber>buildNumbers[id] {
530-
builds[id]=workspaceBuild
530+
builds[id]=q.workspaceBuildWithInitiator(workspaceBuild)
531531
buildNumbers[id]=workspaceBuild.BuildNumber
532532
}
533533
}
534534
}
535-
varreturnBuilds []database.WorkspaceBuild
535+
varreturnBuilds []database.WorkspaceBuildsWithInitiator
536536
fori,n:=rangebuildNumbers {
537537
ifn>0 {
538538
b:=builds[i]
@@ -546,19 +546,19 @@ func (q *fakeQuerier) GetLatestWorkspaceBuildsByWorkspaceIDs(_ context.Context,
546546
}
547547

548548
func (q*fakeQuerier)GetWorkspaceBuildByWorkspaceID(_ context.Context,
549-
params database.GetWorkspaceBuildByWorkspaceIDParams) ([]database.WorkspaceBuild,error) {
549+
params database.GetWorkspaceBuildByWorkspaceIDParams) ([]database.WorkspaceBuildsWithInitiator,error) {
550550
q.mutex.RLock()
551551
deferq.mutex.RUnlock()
552552

553-
history:=make([]database.WorkspaceBuild,0)
553+
history:=make([]database.WorkspaceBuildsWithInitiator,0)
554554
for_,workspaceBuild:=rangeq.workspaceBuilds {
555555
ifworkspaceBuild.WorkspaceID.String()==params.WorkspaceID.String() {
556-
history=append(history,workspaceBuild)
556+
history=append(history,q.workspaceBuildWithInitiator(workspaceBuild))
557557
}
558558
}
559559

560560
// Order by build_number
561-
slices.SortFunc(history,func(a,b database.WorkspaceBuild)bool {
561+
slices.SortFunc(history,func(a,b database.WorkspaceBuildsWithInitiator)bool {
562562
// use greater than since we want descending order
563563
returna.BuildNumber>b.BuildNumber
564564
})
@@ -600,7 +600,7 @@ func (q *fakeQuerier) GetWorkspaceBuildByWorkspaceID(_ context.Context,
600600
returnhistory,nil
601601
}
602602

603-
func (q*fakeQuerier)GetWorkspaceBuildByWorkspaceIDAndName(_ context.Context,arg database.GetWorkspaceBuildByWorkspaceIDAndNameParams) (database.WorkspaceBuild,error) {
603+
func (q*fakeQuerier)GetWorkspaceBuildByWorkspaceIDAndName(_ context.Context,arg database.GetWorkspaceBuildByWorkspaceIDAndNameParams) (database.WorkspaceBuildsWithInitiator,error) {
604604
q.mutex.RLock()
605605
deferq.mutex.RUnlock()
606606

@@ -611,9 +611,33 @@ func (q *fakeQuerier) GetWorkspaceBuildByWorkspaceIDAndName(_ context.Context, a
611611
if!strings.EqualFold(workspaceBuild.Name,arg.Name) {
612612
continue
613613
}
614-
returnworkspaceBuild,nil
614+
615+
returnq.workspaceBuildWithInitiator(workspaceBuild),nil
616+
}
617+
return database.WorkspaceBuildsWithInitiator{},sql.ErrNoRows
618+
}
619+
620+
func (q*fakeQuerier)workspaceBuildWithInitiator(build database.WorkspaceBuild) database.WorkspaceBuildsWithInitiator {
621+
username:="unknown"
622+
usr,err:=q.GetUserByID(context.Background(),build.InitiatorID)
623+
iferr==nil {
624+
username=usr.Username
625+
}
626+
return database.WorkspaceBuildsWithInitiator{
627+
ID:build.ID,
628+
CreatedAt:build.CreatedAt,
629+
UpdatedAt:build.UpdatedAt,
630+
WorkspaceID:build.WorkspaceID,
631+
TemplateVersionID:build.TemplateVersionID,
632+
Name:build.Name,
633+
BuildNumber:build.BuildNumber,
634+
Transition:build.Transition,
635+
InitiatorID:build.InitiatorID,
636+
ProvisionerState:build.ProvisionerState,
637+
JobID:build.JobID,
638+
Deadline:build.Deadline,
639+
InitiatorUsername:username,
615640
}
616-
return database.WorkspaceBuild{},sql.ErrNoRows
617641
}
618642

619643
func (q*fakeQuerier)GetWorkspacesByOrganizationIDs(_ context.Context,req database.GetWorkspacesByOrganizationIDsParams) ([]database.Workspace,error) {

‎coderd/database/dump.sql‎

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DROPVIEW IF EXISTS workspace_builds_with_initiator;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- This view adds the initiator name to the query for UI purposes.
2+
-- Showing the initiator user ID is not very friendly.
3+
CREATEVIEWworkspace_builds_with_initiatorAS
4+
-- If the user is nil, just use 'unknown' for now.
5+
SELECT workspace_builds.*, coalesce(users.username,'unknown')AS initiator_username
6+
FROM workspace_builds
7+
LEFT JOIN usersONworkspace_builds.initiator_id=users.id;

‎coderd/database/models.go‎

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/querier.go‎

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp