gitlab 3.7.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +2 -2
  4. data/CHANGELOG.md +24 -0
  5. data/README.md +7 -6
  6. data/gitlab.gemspec +4 -6
  7. data/lib/gitlab/client.rb +24 -0
  8. data/lib/gitlab/client/branches.rb +13 -13
  9. data/lib/gitlab/client/build_triggers.rb +9 -9
  10. data/lib/gitlab/client/build_variables.rb +11 -11
  11. data/lib/gitlab/client/builds.rb +16 -16
  12. data/lib/gitlab/client/commits.rb +39 -14
  13. data/lib/gitlab/client/groups.rb +1 -1
  14. data/lib/gitlab/client/issues.rb +40 -16
  15. data/lib/gitlab/client/labels.rb +9 -9
  16. data/lib/gitlab/client/merge_requests.rb +61 -24
  17. data/lib/gitlab/client/milestones.rb +25 -11
  18. data/lib/gitlab/client/namespaces.rb +2 -1
  19. data/lib/gitlab/client/notes.rb +16 -16
  20. data/lib/gitlab/client/pipelines.rb +68 -0
  21. data/lib/gitlab/client/projects.rb +111 -49
  22. data/lib/gitlab/client/repositories.rb +27 -23
  23. data/lib/gitlab/client/repository_files.rb +29 -10
  24. data/lib/gitlab/client/runners.rb +15 -15
  25. data/lib/gitlab/client/services.rb +8 -6
  26. data/lib/gitlab/client/snippets.rb +13 -13
  27. data/lib/gitlab/client/system_hooks.rb +1 -1
  28. data/lib/gitlab/client/tags.rb +13 -13
  29. data/lib/gitlab/client/users.rb +12 -5
  30. data/lib/gitlab/file_response.rb +1 -0
  31. data/lib/gitlab/version.rb +1 -1
  32. data/spec/fixtures/merge_request_closes_issues.json +1 -0
  33. data/spec/fixtures/milestone_merge_requests.json +1 -0
  34. data/spec/fixtures/pipeline.json +23 -0
  35. data/spec/fixtures/pipeline_cancel.json +23 -0
  36. data/spec/fixtures/pipeline_create.json +23 -0
  37. data/spec/fixtures/pipeline_retry.json +23 -0
  38. data/spec/fixtures/pipelines.json +48 -0
  39. data/spec/fixtures/project_commit_create.json +22 -0
  40. data/spec/fixtures/project_star.json +44 -0
  41. data/spec/fixtures/project_unstar.json +44 -0
  42. data/spec/fixtures/{git_hook.json → push_rule.json} +0 -0
  43. data/spec/gitlab/cli_spec.rb +9 -0
  44. data/spec/gitlab/client/client_spec.rb +11 -0
  45. data/spec/gitlab/client/commits_spec.rb +31 -0
  46. data/spec/gitlab/client/issues_spec.rb +48 -0
  47. data/spec/gitlab/client/merge_requests_spec.rb +57 -10
  48. data/spec/gitlab/client/milestones_spec.rb +16 -0
  49. data/spec/gitlab/client/pipelines_spec.rb +95 -0
  50. data/spec/gitlab/client/projects_spec.rb +116 -38
  51. data/spec/gitlab/client/repositories_spec.rb +0 -15
  52. data/spec/gitlab/client/repository_files_spec.rb +17 -2
  53. data/spec/gitlab/client/users_spec.rb +31 -13
  54. data/spec/gitlab/file_response_spec.rb +6 -1
  55. metadata +53 -43
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b76c82ead8e87ca095bc2ad47515701b11c9735f
4
+ data.tar.gz: 758f96760c958422f9642878247aad32cc5962be
5
+ SHA512:
6
+ metadata.gz: 14dcda9a02593219e14e7dd67f4480790022c755a7e2261da430784464a2cfc6c0c0f68f8eb3a599f08a39f27bf69e8c9b271bfc54ad4ae71393b56493e88283
7
+ data.tar.gz: 2b0c3d034013eaffaf176de7a334c95efc15d4f979dfa9e83e4e70de881571925a6d7ec03571ba55076506580673e5bf9b2584e0e99e285f1b763ba7506008c2
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  *.gem
2
2
  *.rbc
3
+ *.swp
3
4
  .bundle
4
5
  .config
5
6
  .yardoc
@@ -15,6 +16,7 @@ spec/reports
15
16
  test/tmp
16
17
  test/version_tmp
17
18
  tmp
19
+ vendor/bundle
18
20
  .idea
19
21
  .ruby-version
20
22
  .ruby-gemset
@@ -1,8 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
3
  - 2.0
5
4
  - 2.1
6
5
  - 2.2
7
- - 2.3.0
6
+ - 2.3
7
+ - 2.4.0
8
8
  before_install: gem update bundler
@@ -1,5 +1,29 @@
1
1
  ## Change Log
2
2
 
3
+ ### Unreleased
4
+
5
+ ### 4.0.0 (10/04/2017)
6
+ - Adds ability to create commits in a repository - (@logicminds)
7
+ - Remove Ruby 1.x support from the project - (@orta)
8
+ - Add `star_project` and `unstar_project` methods. (@connorshea)
9
+ - Lock terminal-table to prevent build failures on Ruby 1.9/2.0. (@connorshea)
10
+ - Update documentation to link to docs.gitlab.com instead of the GitHub mirror for GitLab CE. (@connorshea)
11
+ - Add method `share_project_with_group` (@danhalligan)
12
+ - Allow to retrieve `ssh_keys` for a specific user(@dirker)
13
+ - Allow issues to use NAMESPACE/REPO identifier (@brodock)
14
+ - Add issues subscribe/unsubscribe (@newellista)
15
+ - Add merge_requests subscribe/unsubscribe (@newellista)
16
+ - Updated `deploy_key` endpoints (@epintozzi)
17
+ - Add milestone/merge_requests (API V4 only) (@joren)
18
+ - Rename "git hook" to "push rule". (@asedge)
19
+ - Change project fork endpoint for v4 API. (@asedge)
20
+ - Block/unblock user now uses POST instead of PUT. (@asedge)
21
+ - Project ID can also be a string (namespace/project_name). (@bergholdt)
22
+ - Support pipeline. (@bergholdt)
23
+ - Add methods to disable and enable deploy keys on projects. (@buzzdeee)
24
+ - Add method to fetch issues a merge request will close. (@joren)
25
+ - Fix `get_file` and `file_contents` methods to work with APIv4. (@asedge)
26
+
3
27
  ### 3.7.0 (16/08/2016)
4
28
 
5
29
  - Add in GitlabCI Runner support (@davidcollum)
data/README.md CHANGED
@@ -10,7 +10,8 @@
10
10
  [documentation](http://rubydoc.info/gems/gitlab/frames) |
11
11
  [gitlab-live](https://github.com/NARKOZ/gitlab-live)
12
12
 
13
- Gitlab is a Ruby wrapper and CLI for the [GitLab API](https://github.com/gitlabhq/gitlabhq/tree/master/doc/api#gitlab-api).
13
+ Gitlab is a Ruby wrapper and CLI for the [GitLab API](https://docs.gitlab.com/ce/api/README.html).
14
+ As of version `4.0.0` this gem will only support Ruby 2.0+ and Gitlab API v4.
14
15
 
15
16
  ## Installation
16
17
 
@@ -33,7 +34,7 @@ Configuration example:
33
34
 
34
35
  ```ruby
35
36
  Gitlab.configure do |config|
36
- config.endpoint = 'https://example.net/api/v3' # API endpoint URL, default: ENV['GITLAB_API_ENDPOINT']
37
+ config.endpoint = 'https://example.net/api/v4' # API endpoint URL, default: ENV['GITLAB_API_ENDPOINT']
37
38
  config.private_token = 'qEsq1pt6HJPaNciie3MG' # user's private token or OAuth2 access token, default: ENV['GITLAB_API_PRIVATE_TOKEN']
38
39
  # Optional
39
40
  # config.user_agent = 'Custom User Agent' # user agent, default: 'Gitlab Ruby Gem [version]'
@@ -41,14 +42,14 @@ Gitlab.configure do |config|
41
42
  end
42
43
  ```
43
44
 
44
- (Note: If you are using Gitlab.com's hosted service, your endpoint will be `https://gitlab.com/api/v3`)
45
+ (Note: If you are using GitLab.com's hosted service, your endpoint will be `https://gitlab.com/api/v4`)
45
46
 
46
47
  Usage examples:
47
48
 
48
49
  ```ruby
49
50
  # set an API endpoint
50
- Gitlab.endpoint = 'http://example.net/api/v3'
51
- # => "http://example.net/api/v3"
51
+ Gitlab.endpoint = 'http://example.net/api/v4'
52
+ # => "http://example.net/api/v4"
52
53
 
53
54
  # set a user private token
54
55
  Gitlab.private_token = 'qEsq1pt6HJPaNciie3MG'
@@ -107,7 +108,7 @@ For more information, refer to [documentation](http://rubydoc.info/gems/gitlab/f
107
108
 
108
109
  It is possible to use this gem as a command line interface to gitlab. In order to make that work you need to set a few environment variables:
109
110
  ```sh
110
- export GITLAB_API_ENDPOINT=https://gitlab.yourcompany.com/api/v3
111
+ export GITLAB_API_ENDPOINT=https://gitlab.yourcompany.com/api/v4
111
112
  export GITLAB_API_PRIVATE_TOKEN=<your private token from /profile/account>
112
113
  # This one is optional and can be used to set any HTTParty option you may need
113
114
  # using YAML hash syntax. For example, this is how you would disable SSL
@@ -19,12 +19,10 @@ Gem::Specification.new do |gem|
19
19
  gem.require_paths = ["lib"]
20
20
  gem.license = "BSD"
21
21
 
22
- if RUBY_VERSION < '2.0'
23
- gem.add_runtime_dependency 'httparty', '~> 0.13.0'
24
- else
25
- gem.add_runtime_dependency 'httparty'
26
- end
27
- gem.add_runtime_dependency 'terminal-table'
22
+ gem.required_ruby_version = ">= 2.0.0"
23
+
24
+ gem.add_runtime_dependency 'httparty'
25
+ gem.add_runtime_dependency 'terminal-table', '1.7.1'
28
26
 
29
27
  gem.add_development_dependency 'pry'
30
28
  gem.add_development_dependency 'rake'
@@ -15,6 +15,7 @@ module Gitlab
15
15
  include Milestones
16
16
  include Namespaces
17
17
  include Notes
18
+ include Pipelines
18
19
  include Projects
19
20
  include Repositories
20
21
  include RepositoryFiles
@@ -24,5 +25,28 @@ module Gitlab
24
25
  include SystemHooks
25
26
  include Tags
26
27
  include Users
28
+
29
+ # Text representation of the client, masking private token.
30
+ #
31
+ # @return [String]
32
+ def inspect
33
+ inspected = super
34
+
35
+ if @private_token
36
+ inspected = inspected.sub! @private_token, only_show_last_four_chars(@private_token)
37
+ end
38
+
39
+ inspected
40
+ end
41
+
42
+ def url_encode(s)
43
+ ERB::Util.url_encode(s)
44
+ end
45
+
46
+ private
47
+
48
+ def only_show_last_four_chars(token)
49
+ "#{'*'*(token.size - 4)}#{token[-4..-1]}"
50
+ end
27
51
  end
28
52
  end
@@ -1,19 +1,19 @@
1
1
  class Gitlab::Client
2
2
  # Defines methods related to repositories.
3
- # @see https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/branches.md
3
+ # @see https://docs.gitlab.com/ce/api/branches.html
4
4
  module Branches
5
5
  # Gets a list of project repositiory branches.
6
6
  #
7
7
  # @example
8
8
  # Gitlab.branches(42)
9
9
  #
10
- # @param [Integer] project The ID of a project.
10
+ # @param [Integer, String] project The ID or name of a project.
11
11
  # @param [Hash] options A customizable set of options.
12
12
  # @option options [Integer] :page The page number.
13
13
  # @option options [Integer] :per_page The number of results per page.
14
14
  # @return [Array<Gitlab::ObjectifiedHash>]
15
15
  def branches(project, options={})
16
- get("/projects/#{project}/repository/branches", query: options)
16
+ get("/projects/#{url_encode project}/repository/branches", query: options)
17
17
  end
18
18
  alias_method :repo_branches, :branches
19
19
 
@@ -23,11 +23,11 @@ class Gitlab::Client
23
23
  # Gitlab.branch(3, 'api')
24
24
  # Gitlab.repo_branch(5, 'master')
25
25
  #
26
- # @param [Integer] project The ID of a project.
26
+ # @param [Integer, String] project The ID or name of a project.
27
27
  # @param [String] branch The name of the branch.
28
28
  # @return [Gitlab::ObjectifiedHash]
29
29
  def branch(project, branch)
30
- get("/projects/#{project}/repository/branches/#{branch}")
30
+ get("/projects/#{url_encode project}/repository/branches/#{branch}")
31
31
  end
32
32
  alias_method :repo_branch, :branch
33
33
 
@@ -37,11 +37,11 @@ class Gitlab::Client
37
37
  # Gitlab.protect_branch(3, 'api')
38
38
  # Gitlab.repo_protect_branch(5, 'master')
39
39
  #
40
- # @param [Integer] project The ID of a project.
40
+ # @param [Integer, String] project The ID or name of a project.
41
41
  # @param [String] branch The name of the branch.
42
42
  # @return [Gitlab::ObjectifiedHash]
43
43
  def protect_branch(project, branch)
44
- put("/projects/#{project}/repository/branches/#{branch}/protect")
44
+ put("/projects/#{url_encode project}/repository/branches/#{branch}/protect")
45
45
  end
46
46
  alias_method :repo_protect_branch, :protect_branch
47
47
 
@@ -51,11 +51,11 @@ class Gitlab::Client
51
51
  # Gitlab.unprotect_branch(3, 'api')
52
52
  # Gitlab.repo_unprotect_branch(5, 'master')
53
53
  #
54
- # @param [Integer] project The ID of a project.
54
+ # @param [Integer, String] project The ID or name of a project.
55
55
  # @param [String] branch The name of the branch.
56
56
  # @return [Gitlab::ObjectifiedHash]
57
57
  def unprotect_branch(project, branch)
58
- put("/projects/#{project}/repository/branches/#{branch}/unprotect")
58
+ put("/projects/#{url_encode project}/repository/branches/#{branch}/unprotect")
59
59
  end
60
60
  alias_method :repo_unprotect_branch, :unprotect_branch
61
61
 
@@ -65,12 +65,12 @@ class Gitlab::Client
65
65
  # Gitlab.create_branch(3, 'api')
66
66
  # Gitlab.repo_create_branch(5, 'master')
67
67
  #
68
- # @param [Integer] project The ID of a project.
68
+ # @param [Integer, String] project The ID or name of a project.
69
69
  # @param [String] branch The name of the new branch.
70
70
  # @param [String] ref Create branch from commit sha or existing branch
71
71
  # @return [Gitlab::ObjectifiedHash]
72
72
  def create_branch(project, branch, ref)
73
- post("/projects/#{project}/repository/branches", body: { branch_name: branch, ref: ref })
73
+ post("/projects/#{url_encode project}/repository/branches", body: { branch_name: branch, ref: ref })
74
74
  end
75
75
  alias_method :repo_create_branch, :create_branch
76
76
 
@@ -80,11 +80,11 @@ class Gitlab::Client
80
80
  # Gitlab.delete_branch(3, 'api')
81
81
  # Gitlab.repo_delete_branch(5, 'master')
82
82
  #
83
- # @param [Integer] project The ID of a project.
83
+ # @param [Integer, String] project The ID or name of a project.
84
84
  # @param [String] branch The name of the branch to delete
85
85
  # @return [Gitlab::ObjectifiedHash]
86
86
  def delete_branch(project, branch)
87
- delete("/projects/#{project}/repository/branches/#{branch}")
87
+ delete("/projects/#{url_encode project}/repository/branches/#{branch}")
88
88
  end
89
89
  alias_method :repo_delete_branch, :delete_branch
90
90
  end
@@ -1,16 +1,16 @@
1
1
  class Gitlab::Client
2
2
  # Defines methods related to builds.
3
- # @see https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/build_triggers.md
3
+ # @see https://docs.gitlab.com/ce/api/build_triggers.html
4
4
  module BuildTriggers
5
5
  # Gets a list of the project's build triggers
6
6
  #
7
7
  # @example
8
8
  # Gitlab.triggers(5)
9
9
  #
10
- # @param [Integer] project The ID of a project.
10
+ # @param [Integer, String] project The ID or name of a project.
11
11
  # @return [Array<Gitlab::ObjectifiedHash>] The list of triggers.
12
12
  def triggers(project)
13
- get("/projects/#{project}/triggers")
13
+ get("/projects/#{url_encode project}/triggers")
14
14
  end
15
15
 
16
16
  # Gets details of project's build trigger.
@@ -18,11 +18,11 @@ class Gitlab::Client
18
18
  # @example
19
19
  # Gitlab.trigger(5, '7b9148c158980bbd9bcea92c17522d')
20
20
  #
21
- # @param [Integer] project The ID of a project.
21
+ # @param [Integer, String] project The ID or name of a project.
22
22
  # @param [String] token The token of a trigger.
23
23
  # @return [Gitlab::ObjectifiedHash] The trigger.
24
24
  def trigger(project, token)
25
- get("/projects/#{project}/triggers/#{token}")
25
+ get("/projects/#{url_encode project}/triggers/#{token}")
26
26
  end
27
27
 
28
28
  # Create a build trigger for a project.
@@ -30,10 +30,10 @@ class Gitlab::Client
30
30
  # @example
31
31
  # Gitlab.create_trigger(5)
32
32
  #
33
- # @param [Integer] project The ID of a project.
33
+ # @param [Integer, String] project The ID or name of a project.
34
34
  # @return [Gitlab::ObjectifiedHash] The trigger.
35
35
  def create_trigger(project)
36
- post("/projects/#{project}/triggers")
36
+ post("/projects/#{url_encode project}/triggers")
37
37
  end
38
38
 
39
39
  # Remove a project's build trigger.
@@ -41,11 +41,11 @@ class Gitlab::Client
41
41
  # @example
42
42
  # Gitlab.remove_trigger(5, '7b9148c158980bbd9bcea92c17522d')
43
43
  #
44
- # @param [Integer] project The ID of a project.
44
+ # @param [Integer, String] project The ID or name of a project.
45
45
  # @param [String] token The token of a trigger.
46
46
  # @return [Gitlab::ObjectifiedHash] The trigger.
47
47
  def remove_trigger(project, token)
48
- delete("/projects/#{project}/triggers/#{token}")
48
+ delete("/projects/#{url_encode project}/triggers/#{token}")
49
49
  end
50
50
  end
51
51
  end
@@ -1,16 +1,16 @@
1
1
  class Gitlab::Client
2
2
  # Defines methods related to builds.
3
- # @see https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/build_variables.md
3
+ # @see https://docs.gitlab.com/ce/api/build_variables.html
4
4
  module BuildVariables
5
5
  # Gets a list of the project's build variables
6
6
  #
7
7
  # @example
8
8
  # Gitlab.variables(5)
9
9
  #
10
- # @param [Integer] project The ID of a project.
10
+ # @param [Integer, String] project The ID or name of a project.
11
11
  # @return [Array<Gitlab::ObjectifiedHash>] The list of variables.
12
12
  def variables(project)
13
- get("/projects/#{project}/variables")
13
+ get("/projects/#{url_encode project}/variables")
14
14
  end
15
15
 
16
16
  # Gets details of a project's specific build variable.
@@ -18,11 +18,11 @@ class Gitlab::Client
18
18
  # @example
19
19
  # Gitlab.build(5, "TEST_VARIABLE_1")
20
20
  #
21
- # @param [Integer] project The ID of a project.
21
+ # @param [Integer, String] project The ID or name of a project.
22
22
  # @param [String] key The key of a variable.
23
23
  # @return [Gitlab::ObjectifiedHash] The variable.
24
24
  def variable(project, key)
25
- get("/projects/#{project}/variables/#{key}")
25
+ get("/projects/#{url_encode project}/variables/#{key}")
26
26
  end
27
27
 
28
28
  # Create a build variable for a project.
@@ -30,12 +30,12 @@ class Gitlab::Client
30
30
  # @example
31
31
  # Gitlab.create_variable(5, "NEW_VARIABLE", "new value")
32
32
  #
33
- # @param [Integer] project The ID of a project.
33
+ # @param [Integer, String] project The ID or name of a project.
34
34
  # @param [String] key The key of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9` and `_` are allowed
35
35
  # @param [String] value The value of a variable
36
36
  # @return [Gitlab::ObjectifiedHash] The variable.
37
37
  def create_variable(project, key, value)
38
- post("/projects/#{project}/variables", body: { key: key, value: value })
38
+ post("/projects/#{url_encode project}/variables", body: { key: key, value: value })
39
39
  end
40
40
 
41
41
  # Update a project's build variable.
@@ -43,12 +43,12 @@ class Gitlab::Client
43
43
  # @example
44
44
  # Gitlab.create_variable(5, "NEW_VARIABLE", "updated value")
45
45
  #
46
- # @param [Integer] project The ID of a project.
46
+ # @param [Integer, String] project The ID or name of a project.
47
47
  # @param [String] key The key of a variable
48
48
  # @param [String] value The value of a variable
49
49
  # @return [Gitlab::ObjectifiedHash] The variable.
50
50
  def update_variable(project, key, value)
51
- put("/projects/#{project}/variables/#{key}", body: { value: value })
51
+ put("/projects/#{url_encode project}/variables/#{key}", body: { value: value })
52
52
  end
53
53
 
54
54
  # Remove a project's build variable.
@@ -56,11 +56,11 @@ class Gitlab::Client
56
56
  # @example
57
57
  # Gitlab.remove_variable(5, "VARIABLE_1")
58
58
  #
59
- # @param [Integer] project The ID of a project.
59
+ # @param [Integer, String] project The ID or name of a project.
60
60
  # @param [String] key The key of a variable.
61
61
  # @return [Gitlab::ObjectifiedHash] The variable.
62
62
  def remove_variable(project, key)
63
- delete("/projects/#{project}/variables/#{key}")
63
+ delete("/projects/#{url_encode project}/variables/#{key}")
64
64
  end
65
65
  end
66
66
  end
@@ -1,6 +1,6 @@
1
1
  class Gitlab::Client
2
2
  # Defines methods related to builds.
3
- # @see https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/builds.md
3
+ # @see https://docs.gitlab.com/ce/api/builds.html
4
4
  module Builds
5
5
  # Gets a list of project builds.
6
6
  #
@@ -8,14 +8,14 @@ class Gitlab::Client
8
8
  # Gitlab.builds(5)
9
9
  # Gitlab.builds(5, { per_page: 10, page: 2 })
10
10
  #
11
- # @param [Integer] project The ID of a project.
11
+ # @param [Integer, String] project The ID or name of a project.
12
12
  # @param [Hash] options A customizable set of options.
13
13
  # @option options [Integer] :page The page number.
14
14
  # @option options [Integer] :per_page The number of results per page.
15
- # @param [Integer] project The ID of a project.
15
+ # @param [Integer, String] project The ID or name of a project.
16
16
  # @return [Array<Gitlab::ObjectifiedHash>]
17
17
  def builds(project, options={})
18
- get("/projects/#{project}/builds", query: options)
18
+ get("/projects/#{url_encode project}/builds", query: options)
19
19
  end
20
20
 
21
21
  # Gets a single build.
@@ -23,11 +23,11 @@ class Gitlab::Client
23
23
  # @example
24
24
  # Gitlab.build(5, 36)
25
25
  #
26
- # @param [Integer] project The ID of a project.
26
+ # @param [Integer, String] project The ID or name of a project.
27
27
  # @param [Integer] id The ID of a build.
28
28
  # @return [Gitlab::ObjectifiedHash]
29
29
  def build(project, id)
30
- get("/projects/#{project}/builds/#{id}")
30
+ get("/projects/#{url_encode project}/builds/#{id}")
31
31
  end
32
32
 
33
33
  # Gets build artifacts.
@@ -35,11 +35,11 @@ class Gitlab::Client
35
35
  # @example
36
36
  # Gitlab.build_artifacts(1, 8)
37
37
  #
38
- # @param [Integer] project The ID of a project.
38
+ # @param [Integer, String] project The ID or name of a project.
39
39
  # @param [Integer] id The ID of a build.
40
40
  # @return [Gitlab::FileResponse]
41
41
  def build_artifacts(project, id)
42
- get("/projects/#{project}/builds/#{id}/artifacts",
42
+ get("/projects/#{url_encode project}/builds/#{id}/artifacts",
43
43
  format: nil,
44
44
  headers: { Accept: 'application/octet-stream' },
45
45
  parser: proc { |body, _|
@@ -57,14 +57,14 @@ class Gitlab::Client
57
57
  # Gitlab.commit_builds(5, 'asdf')
58
58
  # Gitlab.commit_builds(5, 'asdf', { per_page: 10, page: 2 })
59
59
  #
60
- # @param [Integer] project The ID of a project.
60
+ # @param [Integer, String] project The ID or name of a project.
61
61
  # @param [String] sha The SHA checksum of a commit.
62
62
  # @param [Hash] options A customizable set of options.
63
63
  # @option options [Integer] :page The page number.
64
64
  # @option options [Integer] :per_page The number of results per page.
65
65
  # @return [Array<Gitlab::ObjectifiedHash>] The list of builds.
66
66
  def commit_builds(project, sha, options={})
67
- get("/projects/#{project}/repository/commits/#{sha}/builds", query: options)
67
+ get("/projects/#{url_encode project}/repository/commits/#{sha}/builds", query: options)
68
68
  end
69
69
 
70
70
  # Cancels a build.
@@ -72,11 +72,11 @@ class Gitlab::Client
72
72
  # @example
73
73
  # Gitlab.build_cancel(5, 1)
74
74
  #
75
- # @param [Integer] project The ID of a project.
75
+ # @param [Integer, String] project The ID or name of a project.
76
76
  # @param [Integer] id The ID of a build.
77
77
  # @return [Gitlab::ObjectifiedHash] The builds changes.
78
78
  def build_cancel(project, id)
79
- post("/projects/#{project}/builds/#{id}/cancel")
79
+ post("/projects/#{url_encode project}/builds/#{id}/cancel")
80
80
  end
81
81
 
82
82
  # Retry a build.
@@ -84,11 +84,11 @@ class Gitlab::Client
84
84
  # @example
85
85
  # Gitlab.build_retry(5, 1)
86
86
  #
87
- # @param [Integer] project The ID of a project.
87
+ # @param [Integer, String] project The ID or name of a project.
88
88
  # @param [Integer] id The ID of a build.
89
89
  # @return [Array<Gitlab::ObjectifiedHash>] The builds changes.
90
90
  def build_retry(project, id)
91
- post("/projects/#{project}/builds/#{id}/retry")
91
+ post("/projects/#{url_encode project}/builds/#{id}/retry")
92
92
  end
93
93
 
94
94
  # Erase a single build of a project (remove build artifacts and a build trace)
@@ -96,11 +96,11 @@ class Gitlab::Client
96
96
  # @example
97
97
  # Gitlab.build_erase(5, 1)
98
98
  #
99
- # @param [Integer] project The ID of a project.
99
+ # @param [Integer, String] project The ID or name of a project.
100
100
  # @param [Integer] id The ID of a build.
101
101
  # @return [Gitlab::ObjectifiedHash] The build's changes.
102
102
  def build_erase(project, id)
103
- post("/projects/#{project}/builds/#{id}/erase")
103
+ post("/projects/#{url_encode project}/builds/#{id}/erase")
104
104
  end
105
105
  end
106
106
  end