diff --git a/gitlab/client.go b/gitlab/client.go index e35b756..3c73f44 100644 --- a/gitlab/client.go +++ b/gitlab/client.go @@ -21,7 +21,8 @@ type Refresher interface { } type GitlabClientParam struct { - PullMethod string + PullMethod string + IncludeCurrentUser bool } type gitlabClient struct { diff --git a/gitlab/user.go b/gitlab/user.go index 397341b..a54af3a 100644 --- a/gitlab/user.go +++ b/gitlab/user.go @@ -1,6 +1,7 @@ package gitlab import ( + "errors" "fmt" "sync" @@ -50,12 +51,16 @@ func (c *gitlabClient) FetchUser(uid int) (*User, error) { } func (c *gitlabClient) FetchCurrentUser() (*User, error) { - gitlabUser, _, err := c.client.Users.CurrentUser() - if err != nil { - return nil, fmt.Errorf("failed to fetch current user: %v", err) + if c.IncludeCurrentUser { + gitlabUser, _, err := c.client.Users.CurrentUser() + if err != nil { + return nil, fmt.Errorf("failed to fetch current user: %v", err) + } + user := NewUserFromGitlabUser(gitlabUser) + return &user, nil } - user := NewUserFromGitlabUser(gitlabUser) - return &user, nil + // no current user to fetch, return nil + return nil, errors.New("current user fetch is disabled") } func (c *gitlabClient) FetchUserContent(user *User) (*UserContent, error) { diff --git a/main.go b/main.go index ef6dc6a..509d978 100644 --- a/main.go +++ b/main.go @@ -99,7 +99,8 @@ func makeGitlabConfig(config *Config) (*gitlab.GitlabClientParam, error) { } return &gitlab.GitlabClientParam{ - PullMethod: config.Git.PullMethod, + PullMethod: config.Git.PullMethod, + IncludeCurrentUser: config.Gitlab.IncludeCurrentUser && config.Gitlab.Token != "", }, nil }