@@ -18,6 +18,7 @@ import (
1818 "github.com/redis/go-redis/v9"
1919 "github.com/samber/do"
2020
21+ gituc "github.com/chaitin/MonkeyCode/backend/biz/git/usecase"
2122 "github.com/chaitin/MonkeyCode/backend/config"
2223 "github.com/chaitin/MonkeyCode/backend/consts"
2324 "github.com/chaitin/MonkeyCode/backend/db"
@@ -46,6 +47,7 @@ type HostUsecase struct {
4647 vmRecycleQueue * delayqueue.VMRecycleQueue
4748 vmexpireQueue * delayqueue.VMExpireQueue
4849 privilegeChecker domain.PrivilegeChecker // 可选,由内部项目通过 WithPrivilegeChecker 注入
50+ tokenProvider * gituc.TokenProvider
4951}
5052
5153func NewHostUsecase (i * do.Injector ) (domain.HostUsecase , error ) {
@@ -62,6 +64,7 @@ func NewHostUsecase(i *do.Injector) (domain.HostUsecase, error) {
6264 vmNotifyQueue : do.MustInvoke [* delayqueue.VMNotifyQueue ](i ),
6365 vmRecycleQueue : do.MustInvoke [* delayqueue.VMRecycleQueue ](i ),
6466 vmexpireQueue : do.MustInvoke [* delayqueue.VMExpireQueue ](i ),
67+ tokenProvider : do.MustInvoke [* gituc.TokenProvider ](i ),
6568 }
6669
6770 // 可选注入 PrivilegeChecker
@@ -549,6 +552,13 @@ func (h *HostUsecase) CreateVM(ctx context.Context, user *domain.User, req *doma
549552 URL : repoURL ,
550553 Branch : branch ,
551554 }
555+ if req .GitIdentityID != uuid .Nil {
556+ t , err := h .tokenProvider .GetToken (ctx , req .GitIdentityID )
557+ if err != nil {
558+ return nil , fmt .Errorf ("get git token: %w" , err )
559+ }
560+ git .Token = t
561+ }
552562
553563 tfvm , err := h .taskflow .VirtualMachiner ().Create (
554564 ctx ,
0 commit comments