@@ -16,6 +16,7 @@ import (
1616 "golang.org/x/time/rate"
1717
1818 "github.com/ilijamt/vault-plugin-secrets-gitlab/internal/errs"
19+ "github.com/ilijamt/vault-plugin-secrets-gitlab/internal/models"
1920 t "github.com/ilijamt/vault-plugin-secrets-gitlab/internal/token"
2021 "github.com/ilijamt/vault-plugin-secrets-gitlab/internal/utils"
2122)
@@ -29,26 +30,26 @@ type Client interface {
2930 GitlabClient (ctx context.Context ) * g.Client
3031 Valid (ctx context.Context ) bool
3132 Metadata (ctx context.Context ) (* g.Metadata , error )
32- CurrentTokenInfo (ctx context.Context ) (* TokenConfig , error )
33- RotateCurrentToken (ctx context.Context ) (newToken * TokenConfig , oldToken * TokenConfig , err error )
34- CreatePersonalAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (* TokenPersonal , error )
35- CreateGroupAccessToken (ctx context.Context , groupId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (* TokenGroup , error )
36- CreateProjectAccessToken (ctx context.Context , projectId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (* TokenProject , error )
33+ CurrentTokenInfo (ctx context.Context ) (* models. TokenConfig , error )
34+ RotateCurrentToken (ctx context.Context ) (newToken * models. TokenConfig , oldToken * models. TokenConfig , err error )
35+ CreatePersonalAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (* models. TokenPersonal , error )
36+ CreateGroupAccessToken (ctx context.Context , groupId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (* models. TokenGroup , error )
37+ CreateProjectAccessToken (ctx context.Context , projectId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (* models. TokenProject , error )
3738 RevokePersonalAccessToken (ctx context.Context , tokenId int ) error
3839 RevokeProjectAccessToken (ctx context.Context , tokenId int , projectId string ) error
3940 RevokeGroupAccessToken (ctx context.Context , tokenId int , groupId string ) error
4041 GetUserIdByUsername (ctx context.Context , username string ) (int , error )
4142 GetGroupIdByPath (ctx context.Context , path string ) (int , error )
4243 GetProjectIdByPath (ctx context.Context , path string ) (int , error )
43- CreateGroupServiceAccountAccessToken (ctx context.Context , group string , groupId string , userId int , name string , expiresAt time.Time , scopes []string ) (* TokenGroupServiceAccount , error )
44- CreateUserServiceAccountAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (* TokenUserServiceAccount , error )
44+ CreateGroupServiceAccountAccessToken (ctx context.Context , group string , groupId string , userId int , name string , expiresAt time.Time , scopes []string ) (* models. TokenGroupServiceAccount , error )
45+ CreateUserServiceAccountAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (* models. TokenUserServiceAccount , error )
4546 RevokeUserServiceAccountAccessToken (ctx context.Context , token string ) error
4647 RevokeGroupServiceAccountAccessToken (ctx context.Context , token string ) error
47- CreatePipelineProjectTriggerAccessToken (ctx context.Context , path , name string , projectId int , description string , expiresAt * time.Time ) (* TokenPipelineProjectTrigger , error )
48+ CreatePipelineProjectTriggerAccessToken (ctx context.Context , path , name string , projectId int , description string , expiresAt * time.Time ) (* models. TokenPipelineProjectTrigger , error )
4849 RevokePipelineProjectTriggerAccessToken (ctx context.Context , projectId int , tokenId int ) error
49- CreateProjectDeployToken (ctx context.Context , path string , projectId int , name string , expiresAt * time.Time , scopes []string ) (et * TokenProjectDeploy , err error )
50+ CreateProjectDeployToken (ctx context.Context , path string , projectId int , name string , expiresAt * time.Time , scopes []string ) (et * models. TokenProjectDeploy , err error )
5051 RevokeProjectDeployToken (ctx context.Context , projectId , deployTokenId int ) (err error )
51- CreateGroupDeployToken (ctx context.Context , path string , groupId int , name string , expiresAt * time.Time , scopes []string ) (et * TokenGroupDeploy , err error )
52+ CreateGroupDeployToken (ctx context.Context , path string , groupId int , name string , expiresAt * time.Time , scopes []string ) (et * models. TokenGroupDeploy , err error )
5253 RevokeGroupDeployToken (ctx context.Context , groupId , deployTokenId int ) (err error )
5354}
5455
@@ -73,7 +74,7 @@ func (gc *gitlabClient) GetProjectIdByPath(ctx context.Context, path string) (pr
7374 return projectId , err
7475}
7576
76- func (gc * gitlabClient ) CreateGroupDeployToken (ctx context.Context , path string , groupId int , name string , expiresAt * time.Time , scopes []string ) (et * TokenGroupDeploy , err error ) {
77+ func (gc * gitlabClient ) CreateGroupDeployToken (ctx context.Context , path string , groupId int , name string , expiresAt * time.Time , scopes []string ) (et * models. TokenGroupDeploy , err error ) {
7778 var dt * g.DeployToken
7879 defer func () {
7980 gc .logger .Debug ("Create group deploy token" , "groupId" , groupId , "name" , name , "path" , path , "expiresAt" , expiresAt , "scopes" , scopes , "error" , err )
@@ -88,9 +89,9 @@ func (gc *gitlabClient) CreateGroupDeployToken(ctx context.Context, path string,
8889 },
8990 g .WithContext (ctx ),
9091 ); err == nil {
91- et = & TokenGroupDeploy {
92- TokenWithScopes : TokenWithScopes {
93- Token : Token {
92+ et = & models. TokenGroupDeploy {
93+ TokenWithScopes : models. TokenWithScopes {
94+ Token : models. Token {
9495 TokenID : dt .ID ,
9596 ParentID : strconv .Itoa (groupId ),
9697 Path : path ,
@@ -107,7 +108,7 @@ func (gc *gitlabClient) CreateGroupDeployToken(ctx context.Context, path string,
107108 return et , err
108109}
109110
110- func (gc * gitlabClient ) CreateProjectDeployToken (ctx context.Context , path string , projectId int , name string , expiresAt * time.Time , scopes []string ) (et * TokenProjectDeploy , err error ) {
111+ func (gc * gitlabClient ) CreateProjectDeployToken (ctx context.Context , path string , projectId int , name string , expiresAt * time.Time , scopes []string ) (et * models. TokenProjectDeploy , err error ) {
111112 var dt * g.DeployToken
112113 defer func () {
113114 gc .logger .Debug ("Create project deploy token" , "projectId" , projectId , "name" , name , "path" , path , "expiresAt" , expiresAt , "scopes" , scopes , "error" , err )
@@ -121,9 +122,9 @@ func (gc *gitlabClient) CreateProjectDeployToken(ctx context.Context, path strin
121122 },
122123 g .WithContext (ctx ),
123124 ); err == nil {
124- et = & TokenProjectDeploy {
125- TokenWithScopes : TokenWithScopes {
126- Token : Token {
125+ et = & models. TokenProjectDeploy {
126+ TokenWithScopes : models. TokenWithScopes {
127+ Token : models. Token {
127128 TokenID : dt .ID ,
128129 ParentID : strconv .Itoa (projectId ),
129130 Path : path ,
@@ -167,7 +168,7 @@ func (gc *gitlabClient) Metadata(ctx context.Context) (metadata *g.Metadata, err
167168 return metadata , err
168169}
169170
170- func (gc * gitlabClient ) CreatePipelineProjectTriggerAccessToken (ctx context.Context , path , name string , projectId int , description string , expiresAt * time.Time ) (et * TokenPipelineProjectTrigger , err error ) {
171+ func (gc * gitlabClient ) CreatePipelineProjectTriggerAccessToken (ctx context.Context , path , name string , projectId int , description string , expiresAt * time.Time ) (et * models. TokenPipelineProjectTrigger , err error ) {
171172 var pt * g.PipelineTrigger
172173 defer func () {
173174 gc .logger .Debug ("Create a pipeline project trigger access token" , "path" , path , "name" , name , "projectId" , description , "description" , "error" , err )
@@ -178,8 +179,8 @@ func (gc *gitlabClient) CreatePipelineProjectTriggerAccessToken(ctx context.Cont
178179 & g.AddPipelineTriggerOptions {Description : & description },
179180 g .WithContext (ctx ),
180181 ); err == nil {
181- et = & TokenPipelineProjectTrigger {
182- Token : Token {
182+ et = & models. TokenPipelineProjectTrigger {
183+ Token : models. Token {
183184 TokenID : pt .ID ,
184185 ParentID : strconv .Itoa (projectId ),
185186 Path : path ,
@@ -229,7 +230,7 @@ func (gc *gitlabClient) GitlabClient(ctx context.Context) *g.Client {
229230 return gc .client
230231}
231232
232- func (gc * gitlabClient ) CreateGroupServiceAccountAccessToken (ctx context.Context , path string , groupId string , userId int , name string , expiresAt time.Time , scopes []string ) (et * TokenGroupServiceAccount , err error ) {
233+ func (gc * gitlabClient ) CreateGroupServiceAccountAccessToken (ctx context.Context , path string , groupId string , userId int , name string , expiresAt time.Time , scopes []string ) (et * models. TokenGroupServiceAccount , err error ) {
233234 var at * g.PersonalAccessToken
234235 defer func () {
235236 gc .logger .Debug ("Create group service access token" , "pat" , at , "et" , et , "path" , path , "groupId" , groupId , "userId" , userId , "name" , name , "expiresAt" , expiresAt , "scopes" , scopes , "error" , err )
@@ -240,9 +241,9 @@ func (gc *gitlabClient) CreateGroupServiceAccountAccessToken(ctx context.Context
240241 Scopes : & scopes ,
241242 }, g .WithContext (ctx ))
242243 if err == nil {
243- et = & TokenGroupServiceAccount {
244- TokenWithScopes : TokenWithScopes {
245- Token : Token {
244+ et = & models. TokenGroupServiceAccount {
245+ TokenWithScopes : models. TokenWithScopes {
246+ Token : models. Token {
246247 TokenID : at .ID ,
247248 ParentID : groupId ,
248249 Path : path ,
@@ -260,16 +261,16 @@ func (gc *gitlabClient) CreateGroupServiceAccountAccessToken(ctx context.Context
260261 return et , err
261262}
262263
263- func (gc * gitlabClient ) CreateUserServiceAccountAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (et * TokenUserServiceAccount , err error ) {
264+ func (gc * gitlabClient ) CreateUserServiceAccountAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (et * models. TokenUserServiceAccount , err error ) {
264265 defer func () {
265266 gc .logger .Debug ("Create user service access token" , "et" , et , "username" , username , "userId" , userId , "name" , name , "expiresAt" , expiresAt , "scopes" , scopes , "error" , err )
266267 }()
267- var etp * TokenPersonal
268+ var etp * models. TokenPersonal
268269 etp , err = gc .CreatePersonalAccessToken (ctx , username , userId , name , expiresAt , scopes )
269270 if err == nil && etp != nil {
270- et = & TokenUserServiceAccount {
271- TokenWithScopes : TokenWithScopes {
272- Token : Token {
271+ et = & models. TokenUserServiceAccount {
272+ TokenWithScopes : models. TokenWithScopes {
273+ Token : models. Token {
273274 TokenID : etp .TokenID ,
274275 ParentID : etp .ParentID ,
275276 Path : etp .Path ,
@@ -322,13 +323,13 @@ func (gc *gitlabClient) RevokeGroupServiceAccountAccessToken(ctx context.Context
322323 return err
323324}
324325
325- func (gc * gitlabClient ) CurrentTokenInfo (ctx context.Context ) (et * TokenConfig , err error ) {
326+ func (gc * gitlabClient ) CurrentTokenInfo (ctx context.Context ) (et * models. TokenConfig , err error ) {
326327 var pat * g.PersonalAccessToken
327328 defer func () { gc .logger .Debug ("Current token info" , "token" , et , "error" , err ) }()
328329 if pat , _ , err = gc .client .PersonalAccessTokens .GetSinglePersonalAccessToken (g .WithContext (ctx )); err == nil {
329- et = & TokenConfig {
330- TokenWithScopes : TokenWithScopes {
331- Token : Token {
330+ et = & models. TokenConfig {
331+ TokenWithScopes : models. TokenWithScopes {
332+ Token : models. Token {
332333 TokenID : pat .ID ,
333334 Name : pat .Name ,
334335 Token : pat .Token ,
@@ -351,7 +352,7 @@ func (gc *gitlabClient) CurrentTokenInfo(ctx context.Context) (et *TokenConfig,
351352 return et , err
352353}
353354
354- func (gc * gitlabClient ) RotateCurrentToken (ctx context.Context ) (token * TokenConfig , currentEntryToken * TokenConfig , err error ) {
355+ func (gc * gitlabClient ) RotateCurrentToken (ctx context.Context ) (token * models. TokenConfig , currentEntryToken * models. TokenConfig , err error ) {
355356 var expiresAt time.Time
356357 defer func () {
357358 gc .logger .Debug ("Rotate current token" , "token" , token , "currentEntryToken" , currentEntryToken , "expiresAt" , expiresAt , "error" , err )
@@ -380,9 +381,9 @@ func (gc *gitlabClient) RotateCurrentToken(ctx context.Context) (token *TokenCon
380381 return nil , nil , err
381382 }
382383
383- token = & TokenConfig {
384- TokenWithScopes : TokenWithScopes {
385- Token : Token {
384+ token = & models. TokenConfig {
385+ TokenWithScopes : models. TokenWithScopes {
386+ Token : models. Token {
386387 TokenID : pat .ID ,
387388 ParentID : "" ,
388389 Path : usr .Username ,
@@ -431,7 +432,7 @@ func (gc *gitlabClient) GetUserIdByUsername(ctx context.Context, username string
431432 return userId , nil
432433}
433434
434- func (gc * gitlabClient ) CreatePersonalAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (et * TokenPersonal , err error ) {
435+ func (gc * gitlabClient ) CreatePersonalAccessToken (ctx context.Context , username string , userId int , name string , expiresAt time.Time , scopes []string ) (et * models. TokenPersonal , err error ) {
435436 var at * g.PersonalAccessToken
436437 defer func () {
437438 gc .logger .Debug ("Create personal access token" , "pat" , at , "et" , et , "username" , username , "userId" , userId , "name" , name , "expiresAt" , expiresAt , "scopes" , scopes , "error" , err )
@@ -441,9 +442,9 @@ func (gc *gitlabClient) CreatePersonalAccessToken(ctx context.Context, username
441442 ExpiresAt : (* g .ISOTime )(& expiresAt ),
442443 Scopes : & scopes ,
443444 }, g .WithContext (ctx )); err == nil {
444- et = & TokenPersonal {
445- TokenWithScopes : TokenWithScopes {
446- Token : Token {
445+ et = & models. TokenPersonal {
446+ TokenWithScopes : models. TokenWithScopes {
447+ Token : models. Token {
447448 TokenID : at .ID ,
448449 Path : username ,
449450 Name : name ,
@@ -460,7 +461,7 @@ func (gc *gitlabClient) CreatePersonalAccessToken(ctx context.Context, username
460461 return et , err
461462}
462463
463- func (gc * gitlabClient ) CreateGroupAccessToken (ctx context.Context , groupId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (et * TokenGroup , err error ) {
464+ func (gc * gitlabClient ) CreateGroupAccessToken (ctx context.Context , groupId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (et * models. TokenGroup , err error ) {
464465 var at * g.GroupAccessToken
465466 defer func () {
466467 gc .logger .Debug ("Create group access token" , "gat" , at , "et" , et , "groupId" , groupId , "name" , name , "expiresAt" , expiresAt , "scopes" , scopes , "accessLevel" , accessLevel , "error" , err )
@@ -473,9 +474,9 @@ func (gc *gitlabClient) CreateGroupAccessToken(ctx context.Context, groupId stri
473474 ExpiresAt : (* g .ISOTime )(& expiresAt ),
474475 AccessLevel : al ,
475476 }, g .WithContext (ctx )); err == nil {
476- et = & TokenGroup {
477- TokenWithScopesAndAccessLevel : TokenWithScopesAndAccessLevel {
478- Token : Token {
477+ et = & models. TokenGroup {
478+ TokenWithScopesAndAccessLevel : models. TokenWithScopesAndAccessLevel {
479+ Token : models. Token {
479480 TokenID : at .ID ,
480481 ParentID : groupId ,
481482 Path : groupId ,
@@ -493,7 +494,7 @@ func (gc *gitlabClient) CreateGroupAccessToken(ctx context.Context, groupId stri
493494 return et , err
494495}
495496
496- func (gc * gitlabClient ) CreateProjectAccessToken (ctx context.Context , projectId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (et * TokenProject , err error ) {
497+ func (gc * gitlabClient ) CreateProjectAccessToken (ctx context.Context , projectId string , name string , expiresAt time.Time , scopes []string , accessLevel t.AccessLevel ) (et * models. TokenProject , err error ) {
497498 var at * g.ProjectAccessToken
498499 defer func () {
499500 gc .logger .Debug ("Create project access token" , "gat" , at , "et" , et , "projectId" , projectId , "name" , name , "expiresAt" , expiresAt , "scopes" , scopes , "accessLevel" , accessLevel , "error" , err )
@@ -506,9 +507,9 @@ func (gc *gitlabClient) CreateProjectAccessToken(ctx context.Context, projectId
506507 ExpiresAt : (* g .ISOTime )(& expiresAt ),
507508 AccessLevel : al ,
508509 }, g .WithContext (ctx )); err == nil {
509- et = & TokenProject {
510- TokenWithScopesAndAccessLevel : TokenWithScopesAndAccessLevel {
511- Token : Token {
510+ et = & models. TokenProject {
511+ TokenWithScopesAndAccessLevel : models. TokenWithScopesAndAccessLevel {
512+ Token : models. Token {
512513 TokenID : at .ID ,
513514 ParentID : projectId ,
514515 Path : projectId ,
0 commit comments