Module: Gitlab::Client::Projects
- Included in:
- Gitlab::Client
- Defined in:
- lib/gitlab/client/projects.rb
Overview
Defines methods related to projects.
Instance Method Summary collapse
-
#add_project_custom_attribute(key, value, project_id) ⇒ Gitlab::ObjectifiedHash
Creates a new custom_attribute.
-
#add_project_hook(project, url, options = {}) ⇒ Gitlab::ObjectifiedHash
Adds a new hook to the project.
-
#add_push_rule(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Adds a project push rule.
-
#add_team_member(project, id, access_level, options = {}) ⇒ Gitlab::ObjectifiedHash
Adds a user to project team.
-
#all_members(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of all project team members including inherited members.
-
#archive_project(id) ⇒ Gitlab::ObjectifiedHash
Archives a project.
-
#create_deploy_key(project, title, key, options = {}) ⇒ Gitlab::ObjectifiedHash
Creates a new deploy key.
-
#create_fork(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Forks a project into the user namespace.
-
#create_project(name, options = {}) ⇒ Gitlab::ObjectifiedHash
Creates a new project.
-
#delete_deploy_key(project, id) ⇒ Gitlab::ObjectifiedHash
Deletes a deploy key from project.
-
#delete_project(id) ⇒ Gitlab::ObjectifiedHash
Deletes a project.
-
#delete_project_custom_attribute(key, project_id = nil) ⇒ Boolean
Delete custom_attribute Will delete a custom_attribute.
-
#delete_project_hook(project, id) ⇒ Gitlab::ObjectifiedHash
Deletes a hook from project.
-
#delete_push_rule(id) ⇒ Gitlab::ObjectifiedHash
Deletes a push rule from a project.
-
#deploy_key(project, id) ⇒ Gitlab::ObjectifiedHash
Gets a single project deploy key.
-
#deploy_keys(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a project deploy keys.
-
#disable_deploy_key(project, key) ⇒ Gitlab::ObjectifiedHash
Disables a deploy key at the project.
-
#edit_deploy_key(project, id, title, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates an existing deploy key.
-
#edit_project(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates an existing project.
-
#edit_project_hook(project, id, url, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates a project hook URL.
-
#edit_push_rule(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates a project push rule.
-
#edit_team_member(project, id, access_level, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Updates a team member’s project access level.
-
#enable_deploy_key(project, key) ⇒ Gitlab::ObjectifiedHash
Enables a deploy key at the project.
-
#make_forked_from(project, id) ⇒ Gitlab::ObjectifiedHash
Mark this project as forked from the other.
-
#project(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Gets information about a project.
-
#project_custom_attribute(key, project_id) ⇒ Gitlab::ObjectifiedHash
Gets single project custom_attribute.
-
#project_custom_attributes(project_id) ⇒ Gitlab::ObjectifiedHash
Gets project custom_attributes.
-
#project_deploy_tokens(project, options = {}) ⇒ Object
List project deploy tokens.
-
#project_forks(id, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Get a list of all visible projects across GitLab for the authenticated user.
-
#project_hook(project, id) ⇒ Gitlab::ObjectifiedHash
Gets a project hook.
-
#project_hooks(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of project hooks.
-
#project_search(query, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
(also: #search_projects)
Search for projects by name.
-
#project_template(project, type, key, options = {}) ⇒ Gitlab::ObjectifiedHash
Get one project template of a particular type.
-
#project_templates(project, type) ⇒ Array<Gitlab::ObjectifiedHash>
Get all project templates of a particular type.
-
#projects(options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of projects owned by the authenticated user.
-
#push_rule(id) ⇒ Gitlab::ObjectifiedHash
Gets a project push rule.
-
#remove_forked(project) ⇒ Gitlab::ObjectifiedHash
Remove a forked_from relationship for a project.
-
#remove_team_member(project, id) ⇒ Gitlab::ObjectifiedHash
Removes a user from project team.
-
#share_project_with_group(project, id, group_access) ⇒ Object
Share project with group.
-
#star_project(id) ⇒ Gitlab::ObjectifiedHash
Stars a project.
-
#team_member(project, id) ⇒ Gitlab::ObjectifiedHash
Gets a project team member.
-
#team_members(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of project team members.
-
#transfer_project(project, namespace) ⇒ Gitlab::ObjectifiedHash
Transfer a project to a new namespace.
-
#unarchive_project(id) ⇒ Gitlab::ObjectifiedHash
Unarchives a project.
-
#unshare_project_with_group(project, id) ⇒ void
Unshare project with group.
-
#unstar_project(id) ⇒ Gitlab::ObjectifiedHash
Unstars a project.
-
#upload_file(id, file_fullpath) ⇒ Gitlab::ObjectifiedHash
Uploads a file to the specified project to be used in an issue or merge request description, or a comment.
-
#user_projects(user_id, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Get a list of visible projects for the given user.
-
#user_starred_projects(user_id, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Get a list of visible projects that the given user has starred.
Instance Method Details
#add_project_custom_attribute(key, value, project_id) ⇒ Gitlab::ObjectifiedHash
Creates a new custom_attribute
679 680 681 682 |
# File 'lib/gitlab/client/projects.rb', line 679 def add_project_custom_attribute(key, value, project_id) url = "/projects/#{project_id}/custom_attributes/#{key}" put(url, body: { value: value }) end |
#add_project_hook(project, url, options = {}) ⇒ Gitlab::ObjectifiedHash
Adds a new hook to the project.
224 225 226 227 |
# File 'lib/gitlab/client/projects.rb', line 224 def add_project_hook(project, url, = {}) body = { url: url }.merge() post("/projects/#{url_encode project}/hooks", body: body) end |
#add_push_rule(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Adds a project push rule.
283 284 285 |
# File 'lib/gitlab/client/projects.rb', line 283 def add_push_rule(id, = {}) post("/projects/#{url_encode id}/push_rule", body: ) end |
#add_team_member(project, id, access_level, options = {}) ⇒ Gitlab::ObjectifiedHash
Adds a user to project team.
148 149 150 151 |
# File 'lib/gitlab/client/projects.rb', line 148 def add_team_member(project, id, access_level, = {}) body = { user_id: id, access_level: access_level }.merge() post("/projects/#{url_encode project}/members", body: body) end |
#all_members(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of all project team members including inherited members.
120 121 122 |
# File 'lib/gitlab/client/projects.rb', line 120 def all_members(project, = {}) get("/projects/#{url_encode project}/members/all", query: ) end |
#archive_project(id) ⇒ Gitlab::ObjectifiedHash
Archives a project.
632 633 634 |
# File 'lib/gitlab/client/projects.rb', line 632 def archive_project(id) post("/projects/#{url_encode id}/archive") end |
#create_deploy_key(project, title, key, options = {}) ⇒ Gitlab::ObjectifiedHash
Creates a new deploy key.
374 375 376 |
# File 'lib/gitlab/client/projects.rb', line 374 def create_deploy_key(project, title, key, = {}) post("/projects/#{url_encode project}/deploy_keys", body: { title: title, key: key }.merge()) end |
#create_fork(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Forks a project into the user namespace.
438 439 440 |
# File 'lib/gitlab/client/projects.rb', line 438 def create_fork(id, = {}) post("/projects/#{url_encode id}/fork", body: ) end |
#create_project(name, options = {}) ⇒ Gitlab::ObjectifiedHash
Creates a new project.
76 77 78 79 |
# File 'lib/gitlab/client/projects.rb', line 76 def create_project(name, = {}) url = [:user_id] ? "/projects/user/#{[:user_id]}" : '/projects' post(url, body: { name: name }.merge()) end |
#delete_deploy_key(project, id) ⇒ Gitlab::ObjectifiedHash
Deletes a deploy key from project.
424 425 426 |
# File 'lib/gitlab/client/projects.rb', line 424 def delete_deploy_key(project, id) delete("/projects/#{url_encode project}/deploy_keys/#{id}") end |
#delete_project(id) ⇒ Gitlab::ObjectifiedHash
Deletes a project.
88 89 90 |
# File 'lib/gitlab/client/projects.rb', line 88 def delete_project(id) delete("/projects/#{url_encode id}") end |
#delete_project_custom_attribute(key, project_id = nil) ⇒ Boolean
Delete custom_attribute Will delete a custom_attribute
693 694 695 |
# File 'lib/gitlab/client/projects.rb', line 693 def delete_project_custom_attribute(key, project_id = nil) delete("/projects/#{project_id}/custom_attributes/#{key}") end |
#delete_project_hook(project, id) ⇒ Gitlab::ObjectifiedHash
Deletes a hook from project.
256 257 258 |
# File 'lib/gitlab/client/projects.rb', line 256 def delete_project_hook(project, id) delete("/projects/#{url_encode project}/hooks/#{id}") end |
#delete_push_rule(id) ⇒ Gitlab::ObjectifiedHash
Deletes a push rule from a project.
310 311 312 |
# File 'lib/gitlab/client/projects.rb', line 310 def delete_push_rule(id) delete("/projects/#{url_encode id}/push_rule") end |
#deploy_key(project, id) ⇒ Gitlab::ObjectifiedHash
Gets a single project deploy key.
360 361 362 |
# File 'lib/gitlab/client/projects.rb', line 360 def deploy_key(project, id) get("/projects/#{url_encode project}/deploy_keys/#{id}") end |
#deploy_keys(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a project deploy keys.
348 349 350 |
# File 'lib/gitlab/client/projects.rb', line 348 def deploy_keys(project, = {}) get("/projects/#{url_encode project}/deploy_keys", query: ) end |
#disable_deploy_key(project, key) ⇒ Gitlab::ObjectifiedHash
Disables a deploy key at the project.
398 399 400 |
# File 'lib/gitlab/client/projects.rb', line 398 def disable_deploy_key(project, key) post("/projects/#{url_encode project}/deploy_keys/#{key}/disable", body: { id: project, key_id: key }) end |
#edit_deploy_key(project, id, title, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates an existing deploy key.
412 413 414 |
# File 'lib/gitlab/client/projects.rb', line 412 def edit_deploy_key(project, id, title, = {}) put("/projects/#{url_encode project}/deploy_keys/#{id}", body: { title: title }.merge()) end |
#edit_project(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates an existing project.
(Any provided options will be passed to Gitlab. See Gitlab docs for all valid options)
475 476 477 |
# File 'lib/gitlab/client/projects.rb', line 475 def edit_project(id, = {}) put("/projects/#{url_encode id}", body: ) end |
#edit_project_hook(project, id, url, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates a project hook URL.
243 244 245 246 |
# File 'lib/gitlab/client/projects.rb', line 243 def edit_project_hook(project, id, url, = {}) body = { url: url }.merge() put("/projects/#{url_encode project}/hooks/#{id}", body: body) end |
#edit_push_rule(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Updates a project push rule.
298 299 300 |
# File 'lib/gitlab/client/projects.rb', line 298 def edit_push_rule(id, = {}) put("/projects/#{url_encode id}/push_rule", body: ) end |
#edit_team_member(project, id, access_level, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Updates a team member’s project access level.
165 166 167 168 |
# File 'lib/gitlab/client/projects.rb', line 165 def edit_team_member(project, id, access_level, = {}) body = { access_level: access_level }.merge() put("/projects/#{url_encode project}/members/#{id}", body: body) end |
#enable_deploy_key(project, key) ⇒ Gitlab::ObjectifiedHash
Enables a deploy key at the project.
386 387 388 |
# File 'lib/gitlab/client/projects.rb', line 386 def enable_deploy_key(project, key) post("/projects/#{url_encode project}/deploy_keys/#{key}/enable", body: { id: project, key_id: key }) end |
#make_forked_from(project, id) ⇒ Gitlab::ObjectifiedHash
Mark this project as forked from the other
322 323 324 |
# File 'lib/gitlab/client/projects.rb', line 322 def make_forked_from(project, id) post("/projects/#{url_encode project}/fork/#{id}") end |
#project(id, options = {}) ⇒ Gitlab::ObjectifiedHash
Gets information about a project.
51 52 53 |
# File 'lib/gitlab/client/projects.rb', line 51 def project(id, = {}) get("/projects/#{url_encode id}", query: ) end |
#project_custom_attribute(key, project_id) ⇒ Gitlab::ObjectifiedHash
Gets single project custom_attribute.
666 667 668 |
# File 'lib/gitlab/client/projects.rb', line 666 def project_custom_attribute(key, project_id) get("/projects/#{project_id}/custom_attributes/#{key}") end |
#project_custom_attributes(project_id) ⇒ Gitlab::ObjectifiedHash
Gets project custom_attributes.
654 655 656 |
# File 'lib/gitlab/client/projects.rb', line 654 def project_custom_attributes(project_id) get("/projects/#{project_id}/custom_attributes") end |
#project_deploy_tokens(project, options = {}) ⇒ Object
List project deploy tokens
704 705 706 |
# File 'lib/gitlab/client/projects.rb', line 704 def project_deploy_tokens(project, = {}) get("/projects/#{url_encode project}/deploy_tokens", query: ) end |
#project_forks(id, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Get a list of all visible projects across GitLab for the authenticated user. When accessed without authentication, only public projects are returned.
Note: This feature was introduced in GitLab 10.1
456 457 458 |
# File 'lib/gitlab/client/projects.rb', line 456 def project_forks(id, = {}) get("/projects/#{url_encode id}/forks", query: ) end |
#project_hook(project, id) ⇒ Gitlab::ObjectifiedHash
Gets a project hook.
207 208 209 |
# File 'lib/gitlab/client/projects.rb', line 207 def project_hook(project, id) get("/projects/#{url_encode project}/hooks/#{id}") end |
#project_hooks(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of project hooks.
194 195 196 |
# File 'lib/gitlab/client/projects.rb', line 194 def project_hooks(project, = {}) get("/projects/#{url_encode project}/hooks", query: ) end |
#project_search(query, options = {}) ⇒ Array<Gitlab::ObjectifiedHash> Also known as: search_projects
Search for projects by name.
35 36 37 |
# File 'lib/gitlab/client/projects.rb', line 35 def project_search(query, = {}) get('/projects', query: .merge(search: query)) end |
#project_template(project, type, key, options = {}) ⇒ Gitlab::ObjectifiedHash
Get one project template of a particular type
621 622 623 |
# File 'lib/gitlab/client/projects.rb', line 621 def project_template(project, type, key, = {}) get("/projects/#{url_encode project}/templates/#{type}/#{key}", query: ) end |
#project_templates(project, type) ⇒ Array<Gitlab::ObjectifiedHash>
Get all project templates of a particular type
603 604 605 |
# File 'lib/gitlab/client/projects.rb', line 603 def project_templates(project, type) get("/projects/#{url_encode project}/templates/#{type}") end |
#projects(options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of projects owned by the authenticated user.
(Any provided options will be passed to Gitlab. See Gitlab docs for all valid options)
18 19 20 |
# File 'lib/gitlab/client/projects.rb', line 18 def projects( = {}) get('/projects', query: ) end |
#push_rule(id) ⇒ Gitlab::ObjectifiedHash
Gets a project push rule.
268 269 270 |
# File 'lib/gitlab/client/projects.rb', line 268 def push_rule(id) get("/projects/#{url_encode id}/push_rule") end |
#remove_forked(project) ⇒ Gitlab::ObjectifiedHash
Remove a forked_from relationship for a project.
334 335 336 |
# File 'lib/gitlab/client/projects.rb', line 334 def remove_forked(project) delete("/projects/#{url_encode project}/fork") end |
#remove_team_member(project, id) ⇒ Gitlab::ObjectifiedHash
Removes a user from project team.
179 180 181 |
# File 'lib/gitlab/client/projects.rb', line 179 def remove_team_member(project, id) delete("/projects/#{url_encode project}/members/#{id}") end |
#share_project_with_group(project, id, group_access) ⇒ Object
Share project with group.
487 488 489 |
# File 'lib/gitlab/client/projects.rb', line 487 def share_project_with_group(project, id, group_access) post("/projects/#{url_encode project}/share", body: { group_id: id, group_access: group_access }) end |
#star_project(id) ⇒ Gitlab::ObjectifiedHash
Stars a project.
524 525 526 |
# File 'lib/gitlab/client/projects.rb', line 524 def star_project(id) post("/projects/#{url_encode id}/star") end |
#team_member(project, id) ⇒ Gitlab::ObjectifiedHash
Gets a project team member.
132 133 134 |
# File 'lib/gitlab/client/projects.rb', line 132 def team_member(project, id) get("/projects/#{url_encode project}/members/#{id}") end |
#team_members(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Gets a list of project team members.
104 105 106 |
# File 'lib/gitlab/client/projects.rb', line 104 def team_members(project, = {}) get("/projects/#{url_encode project}/members", query: ) end |
#transfer_project(project, namespace) ⇒ Gitlab::ObjectifiedHash
Transfer a project to a new namespace.
511 512 513 |
# File 'lib/gitlab/client/projects.rb', line 511 def transfer_project(project, namespace) put("/projects/#{url_encode project}/transfer", body: { namespace: namespace }) end |
#unarchive_project(id) ⇒ Gitlab::ObjectifiedHash
Unarchives a project.
643 644 645 |
# File 'lib/gitlab/client/projects.rb', line 643 def unarchive_project(id) post("/projects/#{url_encode id}/unarchive") end |
#unshare_project_with_group(project, id) ⇒ void
This method returns an undefined value.
Unshare project with group.
499 500 501 |
# File 'lib/gitlab/client/projects.rb', line 499 def unshare_project_with_group(project, id) delete("/projects/#{url_encode project}/share/#{id}") end |
#unstar_project(id) ⇒ Gitlab::ObjectifiedHash
Unstars a project.
537 538 539 |
# File 'lib/gitlab/client/projects.rb', line 537 def unstar_project(id) delete("/projects/#{url_encode id}/star") end |
#upload_file(id, file_fullpath) ⇒ Gitlab::ObjectifiedHash
Uploads a file to the specified project to be used in an issue or merge request description, or a comment.
589 590 591 |
# File 'lib/gitlab/client/projects.rb', line 589 def upload_file(id, file_fullpath) post("/projects/#{url_encode id}/uploads", body: { file: File.open(file_fullpath, 'r') }) end |
#user_projects(user_id, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Get a list of visible projects for the given user.
575 576 577 |
# File 'lib/gitlab/client/projects.rb', line 575 def user_projects(user_id, = {}) get("/users/#{url_encode user_id}/projects", query: ) end |
#user_starred_projects(user_id, options = {}) ⇒ Array<Gitlab::ObjectifiedHash>
Get a list of visible projects that the given user has starred.
556 557 558 |
# File 'lib/gitlab/client/projects.rb', line 556 def user_starred_projects(user_id, = {}) get("/users/#{url_encode user_id}/starred_projects", query: ) end |