module Gitlab::Client::Projects

def add_git_hook(id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about added git hook.

Parameters:
  • option (String) -- :commit_message_regex Commit message regex
  • option (Boolean) -- :deny_delete_tag Do not allow users to remove git tags with git push (0 = false, 1 = true)
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a project.
def add_git_hook(id, options={})
  post("/projects/#{id}/git_hook", body: options)
end

def add_project_hook(project, url, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about added hook.

Parameters:
  • option (Boolean) -- :tag_push_events Trigger hook on push_tag events (0 = false, 1 = true)
  • option (Boolean) -- :merge_requests_events Trigger hook on merge_requests events (0 = false, 1 = true)
  • option (Boolean) -- :issues_events Trigger hook on issues events (0 = false, 1 = true)
  • option (Boolean) -- :push_events Trigger hook on push events (0 = false, 1 = true)
  • options (Hash) -- A customizable set of options.
  • url (String) -- The hook URL.
  • project (Integer, String) -- The ID or name of a project.
def add_project_hook(project, url, options={})
  body = { url: url }.merge(options)
  post("/projects/#{project}/hooks", body: body)
end

def add_team_member(project, id, access_level)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about added team member.

Parameters:
  • options (Hash) -- A customizable set of options.
  • access_level (Integer) -- The access level to project.
  • id (Integer) -- The ID of a user.
  • project (Integer, String) -- The ID or name of a project.
def add_team_member(project, id, access_level)
  post("/projects/#{project}/members", body: { user_id: id, access_level: access_level })
end

def create_deploy_key(project, title, key)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about created deploy key.

Parameters:
  • key (String) -- The content of a deploy key.
  • title (String) -- The title of a deploy key.
  • project (Integer) -- The ID of a project.
def create_deploy_key(project, title, key)
  post("/projects/#{project}/keys", body: { title: title, key: key })
end

def create_fork(id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about the forked project.

Options Hash: (**options)
  • :sudo (String) -- The username the project will be forked for

Parameters:
  • options (Hash) -- A customizable set of options.
  • project (Integer) -- The ID of a project.
def create_fork(id, options={})
  post("/projects/fork/#{id}", body: options)
end

def create_project(name, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about created project.

Options Hash: (**options)
  • :user_id (Integer) -- The user/owner id of a project.
  • :public (Boolean) -- The setting for making a project public (0 = false, 1 = true).
  • :merge_requests_enabled (Boolean) -- The merge requests functionality for a project (0 = false, 1 = true).
  • :snippets_enabled (Boolean) -- The snippets integration for a project (0 = false, 1 = true).
  • :issues_enabled (Boolean) -- The issues integration for a project (0 = false, 1 = true).
  • :wall_enabled (Boolean) -- The wall functionality for a project (0 = false, 1 = true).
  • :wiki_enabled (Boolean) -- The wiki integration for a project (0 = false, 1 = true).
  • :namespace_id (String) -- The namespace in which to create a project.
  • :default_branch (String) -- The default branch of a project.
  • :description (String) -- The description of a project.

Parameters:
  • options (Hash) -- A customizable set of options.
  • name (String) -- The name of a project.
def create_project(name, options={})
  url = options[:user_id] ? "/projects/user/#{options[:user_id]}" : "/projects"
  post(url, body: { name: name }.merge(options))
end

def delete_deploy_key(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about deleted deploy key.

Parameters:
  • id (Integer) -- The ID of a deploy key.
  • project (Integer) -- The ID of a project.
def delete_deploy_key(project, id)
  delete("/projects/#{project}/keys/#{id}")
end

def delete_git_hook(id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about deleted git hook.

Parameters:
  • id (Integer) -- The ID of a project.
def delete_git_hook(id, options={})
  delete("/projects/#{id}/git_hook")
end

def delete_project(id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about deleted project.

Parameters:
  • id (Integer, String) -- The ID or name of a project.
def delete_project(id)
  delete("/projects/#{id}")
end

def delete_project_hook(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about deleted hook.

Parameters:
  • id (String) -- The ID of the hook.
  • project (Integer, String) -- The ID or name of a project.
def delete_project_hook(project, id)
  delete("/projects/#{project}/hooks/#{id}")
end

def deploy_key(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a deploy key.
  • project (Integer, String) -- The ID of a project.
def deploy_key(project, id)
  get("/projects/#{project}/keys/#{id}")
end

def deploy_keys(project, options={})

Returns:
  • (Array) -

Options Hash: (**options)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
  • project (Integer) -- The ID of a project.
def deploy_keys(project, options={})
  get("/projects/#{project}/keys", query: options)
end

def edit_git_hook(id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about updated git hook.

Parameters:
  • option (String) -- :commit_message_regex Commit message regex
  • option (Boolean) -- :deny_delete_tag Do not allow users to remove git tags with git push (0 = false, 1 = true)
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a project.
def edit_git_hook(id, options={})
  put("/projects/#{id}/git_hook", body: options)
end

def edit_project(id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about the edited project.

Options Hash: (**options)
  • :description (String) -- The name of a project
  • :path (String) -- The name of a project
  • :name (String) -- The name of a project

Parameters:
  • options (Hash) -- A customizable set of options.
  • project (Integer) -- The ID of a project.
def edit_project(id, options={})
  put("/projects/#{id}", query: options)
end

def edit_project_hook(project, id, url, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about updated hook.

Parameters:
  • option (Boolean) -- :tag_push_events Trigger hook on push_tag events (0 = false, 1 = true)
  • option (Boolean) -- :merge_requests_events Trigger hook on merge_requests events (0 = false, 1 = true)
  • option (Boolean) -- :issues_events Trigger hook on issues events (0 = false, 1 = true)
  • option (Boolean) -- :push_events Trigger hook on push events (0 = false, 1 = true)
  • options (Hash) -- A customizable set of options.
  • url (String) -- The hook URL.
  • id (Integer) -- The ID of the hook.
  • project (Integer, String) -- The ID or name of a project.
def edit_project_hook(project, id, url, options={})
  body = { url: url }.merge(options)
  put("/projects/#{project}/hooks/#{id}", body: body)
end

def edit_team_member(project, id, access_level)

Returns:
  • (Array) - Information about updated team member.

Parameters:
  • options (Hash) -- A customizable set of options.
  • access_level (Integer) -- The access level to project.
  • id (Integer) -- The ID of a user.
  • project (Integer, String) -- The ID or name of a project.
def edit_team_member(project, id, access_level)
  put("/projects/#{project}/members/#{id}", body: { access_level: access_level })
end

def git_hook(id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a project.
def git_hook(id)
  get("/projects/#{id}/git_hook")
end

def make_forked_from(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about the forked project.

Parameters:
  • id (Integer) -- The ID of the project it is forked from.
  • project (Integer, String) -- The ID or name of a project.
def make_forked_from(project, id)
  post("/projects/#{project}/fork/#{id}")
end

def project(id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer, String) -- The ID or name of a project.
def project(id)
  get("/projects/#{id}")
end

def project_events(project, options={})

Returns:
  • (Array) -

Options Hash: (**options)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
  • project (Integer, String) -- The ID or name of a project.
def project_events(project, options={})
  get("/projects/#{project}/events", query: options)
end

def project_hook(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a hook.
  • project (Integer, String) -- The ID or name of a project.
def project_hook(project, id)
  get("/projects/#{project}/hooks/#{id}")
end

def project_hooks(project, options={})

Returns:
  • (Array) -

Options Hash: (**options)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
  • project (Integer, String) -- The ID or name of a project.
def project_hooks(project, options={})
  get("/projects/#{project}/hooks", query: options)
end

def project_search(query, options={})

Returns:
  • (Array) -

Options Hash: (**options)
  • :sort (String) -- Return requests sorted in asc or desc order
  • :order_by (String) -- Return requests ordered by id, name, created_at or last_activity_at fields
  • :page (String) -- The page to retrieve
  • :per_page (String) -- Number of projects to return per page

Parameters:
  • options (Hash) -- A customizable set of options.
def project_search(query, options={})
  get("/projects/search/#{query}", query: options)
end

def projects(options={})

Returns:
  • (Array) -

Options Hash: (**options)
  • :scope (String) -- Scope of projects. 'owned' for list of projects owned by the authenticated user, 'all' to get all projects (admin only)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
def projects(options={})
  if options[:scope]
    get("/projects/#{options[:scope]}", query: options)
  else
    get("/projects", query: options)
  end
end

def remove_forked(project)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about the forked project.

Parameters:
  • project (Integer) -- The ID of the project it is forked from
  • project (Integer, String) -- The ID or name of a project.
def remove_forked(project)
  delete("/projects/#{project}/fork")
end

def remove_team_member(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about removed team member.

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a user.
  • project (Integer, String) -- The ID or name of a project.
def remove_team_member(project, id)
  delete("/projects/#{project}/members/#{id}")
end

def team_member(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a project team member.
  • project (Integer, String) -- The ID or name of a project.
def team_member(project, id)
  get("/projects/#{project}/members/#{id}")
end

def team_members(project, options={})

Returns:
  • (Array) -

Options Hash: (**options)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.
  • :query (String) -- The search query.

Parameters:
  • options (Hash) -- A customizable set of options.
  • project (Integer, String) -- The ID or name of a project.
def team_members(project, options={})
  get("/projects/#{project}/members", query: options)
end