diff --git a/projects.go b/projects.go index e8c8f776f..094ec5794 100644 --- a/projects.go +++ b/projects.go @@ -1985,3 +1985,54 @@ func (s *ProjectsService) TransferProject(pid interface{}, opt *TransferProjectO return p, resp, err } + +// StartHousekeepingProject start the Housekeeping task for a project. +// +// GitLab API docs: +// https://docs.gitlab.com/ee/api/projects.html#start-the-housekeeping-task-for-a-project +func (s *ProjectsService) StartHousekeepingProject(pid interface{}, options ...RequestOptionFunc) (*Response, error) { + project, err := parseID(pid) + if err != nil { + return nil, err + } + u := fmt.Sprintf("projects/%s/housekeeping", PathEscape(project)) + + req, err := s.client.NewRequest(http.MethodPost, u, nil, options) + if err != nil { + return nil, err + } + + return s.client.Do(req, nil) +} + +// GetRepositoryStorage Get the path to repository storage. +// +// GitLab API docs: +// https://docs.gitlab.com/ee/api/projects.html#get-the-path-to-repository-storage +type ProjectReposityStorage struct { + ProjectID int `json:"project_id"` + DiskPath string `json:"disk_path"` + CreatedAt *time.Time `json:"created_at"` + RepositoryStorage string `json:"repository_storage"` +} + +func (s *ProjectsService) GetRepositoryStorage(pid interface{}, options ...RequestOptionFunc) (*ProjectReposityStorage, *Response, error) { + project, err := parseID(pid) + if err != nil { + return nil, nil, err + } + u := fmt.Sprintf("projects/%s/storage", PathEscape(project)) + + req, err := s.client.NewRequest(http.MethodGet, u, nil, options) + if err != nil { + return nil, nil, err + } + + prs := new(ProjectReposityStorage) + resp, err := s.client.Do(req, prs) + if err != nil { + return nil, resp, err + } + + return prs, resp, err +} diff --git a/users.go b/users.go index 61973a974..3fe977c2c 100644 --- a/users.go +++ b/users.go @@ -258,6 +258,7 @@ type ModifyUserOptions struct { Note *string `url:"note,omitempty" json:"note,omitempty"` ThemeID *int `url:"theme_id,omitempty" json:"theme_id,omitempty"` PublicEmail *string `url:"public_email,omitempty" json:"public_email,omitempty"` + CommitEmail *string `url:"commit_email,omitempty" json:"commit_email,omitempty"` } // ModifyUser modifies an existing user. Only administrators can change attributes