@@ -64,40 +64,33 @@ func (u *GitIdentityUsecase) Get(ctx context.Context, uid uuid.UUID, id uuid.UUI
6464 }
6565 gi := cvt .From (identity , & domain.GitIdentity {})
6666
67- // PAT 模式:获取 GitHub 授权仓库列表
68- if identity .Platform == consts .GitPlatformGithub && identity .AccessToken != "" && u .gh != nil {
69- repos , err := u .gh .GetAuthorizedRepositories (ctx , identity .AccessToken )
70- if err != nil {
71- u .logger .WarnContext (ctx , "failed to get github authorized repositories" , "error" , err , "identity_id" , id )
72- } else {
73- gi .AuthorizedRepositories = make ([]domain.AuthRepository , 0 , len (repos ))
74- for _ , r := range repos {
75- gi .AuthorizedRepositories = append (gi .AuthorizedRepositories , domain.AuthRepository {
76- FullName : r .FullName ,
77- URL : r .URL ,
78- Description : r .Description ,
79- })
80- }
81- }
67+ // PAT 模式:获取授权仓库列表
68+ if identity .AccessToken == "" {
69+ return gi , nil
8270 }
83-
84- // GitLab PAT 模式:获取授权仓库列表
85- if identity .Platform == consts .GitPlatformGitLab && identity .AccessToken != "" {
86- glClient := gitlab .NewGitlab (identity .BaseURL , identity .AccessToken , u .logger )
87- if glClient != nil {
88- glRepos , err := glClient .GetAuthorizedRepositories (ctx , identity .AccessToken , false )
89- if err != nil {
90- u .logger .WarnContext (ctx , "failed to get gitlab repositories" , "error" , err , "identity_id" , id )
91- } else {
92- gi .AuthorizedRepositories = make ([]domain.AuthRepository , 0 , len (glRepos ))
93- for _ , r := range glRepos {
94- gi .AuthorizedRepositories = append (gi .AuthorizedRepositories , domain.AuthRepository {
95- FullName : r .FullName ,
96- URL : r .URL ,
97- Description : r .Description ,
98- })
99- }
100- }
71+ var client domain.GitPlatformClient [domain.AuthRepository ]
72+ switch identity .Platform {
73+ case consts .GitPlatformGithub :
74+ client = u .gh
75+ case consts .GitPlatformGitLab :
76+ client = gitlab .NewGitlab (identity .BaseURL , identity .AccessToken , u .logger )
77+ case consts .GitPlatformGitea :
78+ client = gitea .NewGitea (u .logger , identity .BaseURL )
79+ default :
80+ // 该平台不支持获取授权仓库列表
81+ return gi , nil
82+ }
83+ repos , err := client .GetAuthorizedRepositories (ctx , identity .AccessToken )
84+ if err != nil {
85+ u .logger .WarnContext (ctx , "failed to get authorized repositories" , "error" , err , "platform" , identity .Platform , "identity_id" , id )
86+ } else {
87+ gi .AuthorizedRepositories = make ([]domain.AuthRepository , 0 , len (repos ))
88+ for _ , r := range repos {
89+ gi .AuthorizedRepositories = append (gi .AuthorizedRepositories , domain.AuthRepository {
90+ FullName : r .FullName ,
91+ URL : r .URL ,
92+ Description : r .Description ,
93+ })
10194 }
10295 }
10396
0 commit comments