diff --git a/gitlab_client.go b/gitlab_client.go index 7857b70..55f098a 100644 --- a/gitlab_client.go +++ b/gitlab_client.go @@ -336,6 +336,13 @@ func (gc *gitlabClient) CurrentTokenInfo(ctx context.Context) (et *TokenConfig, }, UserID: pat.UserID, } + // Set an artificial expiry date one year after creation if none is set. + // This addresses issue #178 where a token could be issued without an expiry. + // Note: As of GitLab 16.x, all tokens should have an expiry set. + if et.ExpiresAt == nil { + newDate := pat.CreatedAt.AddDate(1, 0, -2) + et.ExpiresAt = &newDate + } } return et, err } @@ -567,11 +574,11 @@ func (gc *gitlabClient) Valid(ctx context.Context) bool { var _ Client = new(gitlabClient) func newGitlabClient(config *EntryConfig, httpClient *http.Client) (gc *g.Client, err error) { - if "" == strings.TrimSpace(config.BaseURL) { + if strings.TrimSpace(config.BaseURL) == "" { err = errors.Join(err, fmt.Errorf("gitlab base url: %w", ErrInvalidValue)) } - if "" == strings.TrimSpace(config.Token) { + if strings.TrimSpace(config.Token) == "" { err = errors.Join(err, fmt.Errorf("gitlab token: %w", ErrInvalidValue)) }