gitlab 4.7.0 → 4.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 421115b0e89dbdc41a5b604763a4d2f8c159117ea7a750112cd4ae4384716f46
4
- data.tar.gz: f29e4c90ebf303275d2cdb40814019d537b7cd79d9ca620b234eab78f990c7ef
3
+ metadata.gz: fef48a733afd37fc66b1b532365e9ec319f9c851be914a9f98396d02f185a90e
4
+ data.tar.gz: 6c11890061b7f83d161b9d3e18432192e01900c2edde6ce9124db5e9e0d2671f
5
5
  SHA512:
6
- metadata.gz: 0fa2447b6dff0b4335d542f199b3dac0b5171850417b01f8f0d2238eca7015707548308ccfa235b60443b2bf4fa436bb4981f6d21a36126d37c4432359c7a2b5
7
- data.tar.gz: 15acf72e2442ea9aca44941545db106560ac07090c32012cc70a734dea36abb74ca57b1852350a29b825cf8080725a6989948e4faa92b09eaf75a209a7f6ddc2
6
+ metadata.gz: 8feed2cfadd99b265276e07b3aa16a0b32b2cf51fb79f00fa290b044c993c812148cdd563bea0524edc32c42e3693bb293129a8b1589e429880e7e46825f67d7
7
+ data.tar.gz: 7b2219621584d7ecb2ad3c6359adaab056c7d63b1c9a8cd805cd79eb3e39c2a353ddf762c5e55907e958b76b90fc5515463ae77275a7e87e181dd39d2ce688c8
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2015 Nihad Abbasov <mail@narkoz.me>
1
+ Copyright (c) 2012-2019 Nihad Abbasov <nihad@42na.in>
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -65,6 +65,8 @@ Gitlab.private_token = 'qEsq1pt6HJPaNciie3MG'
65
65
  Gitlab.http_proxy('proxyhost', 8888)
66
66
  # proxy server with basic auth
67
67
  Gitlab.http_proxy('proxyhost', 8888, 'proxyuser', 'strongpasswordhere')
68
+ # set timeout for responses
69
+ ENV['GITLAB_API_HTTPARTY_OPTIONS'] = '{read_timeout: 60}'
68
70
 
69
71
  # list projects
70
72
  Gitlab.projects(per_page: 5)
@@ -10,6 +10,7 @@ module Gitlab
10
10
  include AwardEmojis
11
11
  include Boards
12
12
  include Branches
13
+ include BroadcastMessages
13
14
  include BuildVariables
14
15
  include Builds
15
16
  include Commits
@@ -30,18 +31,23 @@ module Gitlab
30
31
  include PipelineSchedules
31
32
  include PipelineTriggers
32
33
  include Pipelines
34
+ include ProjectBadges
33
35
  include Projects
36
+ include ProtectedTags
34
37
  include Repositories
35
38
  include RepositoryFiles
39
+ include RepositorySubmodules
36
40
  include Runners
37
41
  include Services
38
42
  include Sidekiq
39
43
  include Snippets
40
44
  include SystemHooks
41
45
  include Tags
46
+ include Templates
42
47
  include Todos
43
48
  include Users
44
49
  include Versions
50
+ include Wikis
45
51
 
46
52
  # Text representation of the client, masking private token.
47
53
  #
@@ -94,5 +94,42 @@ class Gitlab::Client
94
94
  delete("/projects/#{url_encode project}/repository/branches/#{url_encode branch}")
95
95
  end
96
96
  alias repo_delete_branch delete_branch
97
+
98
+ # Delete all branches that are merged into the project default branch. Protected branches will not be deleted as part of this operation.
99
+ #
100
+ # @example
101
+ # Gitlab.delete_merged_branches(3)
102
+ #
103
+ # @param [Integer, String] project The ID or name of a project.
104
+ # @return [nil] This API call returns an empty response body.
105
+ def delete_merged_branches(project)
106
+ delete("/projects/#{url_encode project}/repository/merged_branches")
107
+ end
108
+ alias repo_delete_merged_branches delete_merged_branches
109
+
110
+ # Gets a list of protected branches from a project.
111
+ #
112
+ # @example
113
+ # Gitlab.protected_branches(42)
114
+ #
115
+ # @param [Integer, String] project The ID or name of a project.
116
+ # @return [Array<Gitlab::ObjectifiedHash>]
117
+ def protected_branches(project)
118
+ get("/projects/#{url_encode project}/protected_branches")
119
+ end
120
+ alias repo_protected_branches protected_branches
121
+
122
+ # Gets a single protected branch or wildcard protected branch
123
+ #
124
+ # @example
125
+ # Gitlab.protected_branch(3, 'api')
126
+ #
127
+ # @param [Integer, String] project The ID or name of a project.
128
+ # @param [String] name The name of the branch or wildcard
129
+ # @return [Gitlab::ObjectifiedHash]
130
+ def protected_branch(project, branch)
131
+ get("/projects/#{url_encode project}/protected_branches/#{url_encode branch}")
132
+ end
133
+ alias repo_protected_branch protected_branch
97
134
  end
98
135
  end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to broadcast messages (only accessible to administrators).
5
+ # @see https://docs.gitlab.com/ce/api/broadcast_messages.html
6
+ module BroadcastMessages
7
+ # Get all broadcast messages
8
+ #
9
+ # @example
10
+ # Gitlab.broadcast_messages
11
+ #
12
+ # @return [Array<Gitlab::ObjectifiedHash>]
13
+ def broadcast_messages
14
+ get('/broadcast_messages')
15
+ end
16
+
17
+ # Get a specific broadcast message
18
+ #
19
+ # @example
20
+ # Gitlab.broadcast_message(3)
21
+ #
22
+ # @param [Integer] id The ID of broadcast message
23
+ # @return [Gitlab::ObjectifiedHash]
24
+ def broadcast_message(id)
25
+ get("/broadcast_messages/#{id}")
26
+ end
27
+
28
+ # Create a broadcast message.
29
+ #
30
+ # @example
31
+ # Gitlab.create_broadcast_message('Mayday')
32
+ # Gitlab.create_broadcast_message('Mayday', {starts_at: Time.zone.now, ends_at: Time.zone.now + 30.minutes, color: '#cecece', font: '#FFFFFF'})
33
+ #
34
+ # @param [String] message Message to display
35
+ # @param [Hash] options A customizable set of options.
36
+ # @option options [DateTime] :starts_at(optional) Starting time (defaults to current time)
37
+ # @option options [DateTime] :ends_at(optional) Ending time (defaults to one hour from current time)
38
+ # @option options [String] :color(optional) Background color hex code
39
+ # @option options [String] :font(optional) Foreground color hex code
40
+ # @return [Gitlab::ObjectifiedHash] Information about created broadcast message.
41
+ def create_broadcast_message(message, options = {})
42
+ body = { message: message }.merge(options)
43
+ post('/broadcast_messages', body: body)
44
+ end
45
+
46
+ # Update a broadcast message
47
+ #
48
+ # @example
49
+ # Gitlab.edit_broadcast_message(6, { message: 'No Mayday' })
50
+ # Gitlab.edit_broadcast_message(6, { font: '#FEFEFE' })
51
+ #
52
+ # @param [Integer] id The ID of a broadcast message
53
+ # @param [Hash] options A customizable set of options.
54
+ # @option options [String] :message(optional) Message to display
55
+ # @option options [DateTime] :starts_at(optional) Starting time (defaults to current time)
56
+ # @option options [DateTime] :ends_at(optional) Ending time (defaults to one hour from current time)
57
+ # @option options [String] :color(optional) Background color hex code
58
+ # @option options [String] :font(optional) Foreground color hex code
59
+ # @return [Gitlab::ObjectifiedHash] Information about updated broadcast message.
60
+ def edit_broadcast_message(id, options = {})
61
+ put("/broadcast_messages/#{id}", body: options)
62
+ end
63
+
64
+ # Delete a broadcast message.
65
+ #
66
+ # @example
67
+ # Gitlab.delete_broadcast_message(3)
68
+ #
69
+ # @param [Integer] id The ID of a broadcast message.
70
+ # @return [nil] This API call returns an empty response body.
71
+ def delete_broadcast_message(id)
72
+ delete("/broadcast_messages/#{id}")
73
+ end
74
+ end
75
+ end
@@ -9,10 +9,13 @@ class Gitlab::Client
9
9
  # @example
10
10
  # Gitlab.jobs(1)
11
11
  # Gitlab.jobs("project")
12
+ # Gitlab.jobs("project", {scope: ["manual", "success"], per_page: 100 })
12
13
  #
13
14
  # @param [Integer, String] id The ID or name of a project.
14
15
  # @param [Hash] options A customizable set of options.
15
16
  # @option options [Array] :scope The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided.
17
+ # @option options [Integer] :page The page number.
18
+ # @option options [Integer] :per_page The number of results per page.
16
19
  # @return [Array<Gitlab::ObjectifiedHash>]
17
20
  def jobs(project_id, options = {})
18
21
  get("/projects/#{url_encode project_id}/jobs", query: options)
@@ -90,5 +90,17 @@ class Gitlab::Client
90
90
  def edit_milestone(project, id, options = {})
91
91
  put("/projects/#{url_encode project}/milestones/#{id}", body: options)
92
92
  end
93
+
94
+ # Delete a project milestone.
95
+ #
96
+ # @example
97
+ # Gitlab.delete_milestone(5, 2)
98
+ #
99
+ # @param [Integer, String] project The ID or name of a project.
100
+ # @param [Integer] id The ID of a milestone.
101
+ # @return [nil] This API call returns an empty response body.
102
+ def delete_milestone(project, id)
103
+ delete("/projects/#{url_encode project}/milestones/#{id}")
104
+ end
93
105
  end
94
106
  end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to project badges.
5
+ # @see https://docs.gitlab.com/ee/api/project_badges.html
6
+ module ProjectBadges
7
+ # Gets a list of a projects badges and its group badges.
8
+ #
9
+ # @example
10
+ # Gitlab.project_badges(5)
11
+ #
12
+ # @param [Integer, String] project The ID or name of a project.
13
+ # @return [Array<Gitlab::ObjectifiedHash>] List of all badges of a project
14
+ def project_badges(project)
15
+ get("/projects/#{url_encode project}/badges")
16
+ end
17
+
18
+ # Gets a badge of a project.
19
+ #
20
+ # @example
21
+ # Gitlab.project_badge(5, 42)
22
+ #
23
+ # @param [Integer, String] project The ID or name of a project.
24
+ # @param [Integer] badge_id The badge ID.
25
+ # @return [Gitlab::ObjectifiedHash] Information about the requested badge
26
+ def project_badge(project, badge_id)
27
+ get("/projects/#{url_encode project}/badges/#{badge_id}")
28
+ end
29
+
30
+ # Adds a badge to a project.
31
+ #
32
+ # @example
33
+ # Gitlab.add_project_badge(5, { link_url: 'https://abc.com/gitlab/gitlab-ce/commits/master', image_url: 'https://shields.io/my/badge1' })
34
+ #
35
+ # @param [Integer, String] project The ID or name of a project.
36
+ # @param [Hash] options A customizable set of options.
37
+ # @option options [String] :link_url(required) URL of the badge link
38
+ # @option options [String] :image_url(required) URL of the badge image
39
+ # @return [Gitlab::ObjectifiedHash] Information about the added project badge.
40
+ def add_project_badge(project, options = {})
41
+ post("/projects/#{url_encode project}/badges", body: options)
42
+ end
43
+
44
+ # Updates a badge of a project..
45
+ #
46
+ # @example
47
+ # Gitlab.edit_project_badge(5, 1, { link_url: 'https://abc.com/gitlab/gitlab-ce/commits/master', image_url: 'https://shields.io/my/badge1' })
48
+ #
49
+ # @param [Integer, String] project The ID or name of a project.
50
+ # @param [Integer] badge_id The badge ID.
51
+ # @param [Hash] options A customizable set of options.
52
+ # @option options [String] :link_url(optional) URL of the badge link
53
+ # @option options [String] :image_url(optional) URL of the badge image
54
+ # @return [Gitlab::ObjectifiedHash] Information about the updated project badge.
55
+ def edit_project_badge(project, badge_id, options = {})
56
+ put("/projects/#{url_encode project}/badges/#{badge_id}", body: options)
57
+ end
58
+
59
+ # Removes a badge from a project. Only projects badges will be removed by using this endpoint.
60
+ #
61
+ # @example
62
+ # Gitlab.remove_project_badge(5, 42)
63
+ #
64
+ # @param [Integer, String] project The ID or name of a project.
65
+ # @param [Integer] badge_id The badge ID.
66
+ # @return [nil] This API call returns an empty response body.
67
+ def remove_project_badge(project, badge_id)
68
+ delete("/projects/#{url_encode project}/badges/#{badge_id}")
69
+ end
70
+
71
+ # Preview a badge from a project.
72
+ #
73
+ # @example
74
+ # Gitlab.preview_project_badge(3, 'https://abc.com/gitlab/gitlab-ce/commits/master', 'https://shields.io/my/badge1')
75
+ #
76
+ # @param [Integer, String] project The ID or name of a project.
77
+ # @param [String] :link_url URL of the badge link
78
+ # @param [String] :image_url URL of the badge image
79
+ # @return [Gitlab::ObjectifiedHash] Returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation.
80
+ def preview_project_badge(project, link_url, image_url)
81
+ query = { link_url: link_url, image_url: image_url }
82
+ get("/projects/#{url_encode project}/badges/render", query: query)
83
+ end
84
+ end
85
+ end
@@ -538,5 +538,37 @@ class Gitlab::Client
538
538
  def upload_file(id, file)
539
539
  post("/projects/#{url_encode id}/uploads", body: { file: file })
540
540
  end
541
+
542
+ # Get all project templates of a particular type
543
+ # @see https://docs.gitlab.com/ce/api/project_templates.html
544
+ #
545
+ # @example
546
+ # Gitlab.project_templates(1, 'dockerfiles')
547
+ # Gitlab.project_templates(1, 'licenses')
548
+ #
549
+ # @param [Integer, String] id The ID or URL-encoded path of the project.
550
+ # @param [String] type The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses) of the template
551
+ # @return [Array<Gitlab::ObjectifiedHash>]
552
+ def project_templates(project, type)
553
+ get("/projects/#{url_encode project}/templates/#{type}")
554
+ end
555
+
556
+ # Get one project template of a particular type
557
+ # @see https://docs.gitlab.com/ce/api/project_templates.html
558
+ #
559
+ # @example
560
+ # Gitlab.project_template(1, 'dockerfiles', 'dockey')
561
+ # Gitlab.project_template(1, 'licenses', 'gpl', { project: 'some project', fullname: 'Holder Holding' })
562
+ #
563
+ # @param [Integer, String] project The ID or URL-encoded path of the project.
564
+ # @param [String] type The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses) of the template
565
+ # @param [String] key The key of the template, as obtained from the collection endpoint
566
+ # @param [Hash] options A customizable set of options.
567
+ # @option options [String] project(optional) The project name to use when expanding placeholders in the template. Only affects licenses
568
+ # @option options [String] fullname(optional) The full name of the copyright holder to use when expanding placeholders in the template. Only affects licenses
569
+ # @return [Gitlab::ObjectifiedHash]
570
+ def project_template(project, type, key, options = {})
571
+ get("/projects/#{url_encode project}/templates/#{type}/#{key}", query: options)
572
+ end
541
573
  end
542
574
  end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to Protected Tags.
5
+ # @see https://docs.gitlab.com/ce/api/protected_tags.html
6
+ module ProtectedTags
7
+ # Gets a list of protected tags from a project
8
+ #
9
+ # @example
10
+ # Gitlab.protected_tags(1)
11
+ #
12
+ # @param [Integer, String] project(required) The ID or name of a project.
13
+ # @option options [Integer] :page The page number.
14
+ # @option options [Integer] :per_page The number of results per page.
15
+ # @return [Array<Gitlab::ObjectifiedHash>] List of all protected tags requested
16
+ def protected_tags(project, options = {})
17
+ get("/projects/#{url_encode project}/protected_tags", query: options)
18
+ end
19
+
20
+ # Gets a single protected tag or wildcard protected tag.
21
+ #
22
+ # @example
23
+ # Gitlab.protected_tag(1, 'release-1-0')
24
+ #
25
+ # @param [Integer, String] project(required) The ID or name of a project.
26
+ # @param [String] name(required) The name of the tag or wildcard
27
+ # @return <Gitlab::ObjectifiedHash] Information about the requested protected tag
28
+ def protected_tag(project, name)
29
+ get("/projects/#{url_encode project}/protected_tags/#{name}")
30
+ end
31
+
32
+ # Protects a single repository tag or several project repository tags using a wildcard protected tag.
33
+ #
34
+ # @example
35
+ # Gitlab.protect_repository_tag(1, 'release-1-0')
36
+ # Gitlab.protect_repository_tag(1, 'release-1-0', create_access_level: 30)
37
+ #
38
+ # @param [Integer, String] project(required) The ID or name of a project.
39
+ # @param [String] name(required) The name of the tag or wildcard
40
+ # @option options [Integer] :create_access_level Access levels allowed to create (defaults: 40, maintainer access level)
41
+ # @return <Gitlab::ObjectifiedHash] Information about the protected repository tag
42
+ def protect_repository_tag(project, name, options = {})
43
+ body = { name: name }.merge(options)
44
+ post("/projects/#{url_encode project}/protected_tags", body: body)
45
+ end
46
+
47
+ # Unprotects the given protected tag or wildcard protected tag.
48
+ #
49
+ # @example
50
+ # Gitlab.unprotect_repository_tag(1, 'release-1-0')
51
+ #
52
+ # @param [Integer, String] project(required) The ID or name of a project.
53
+ # @param [String] name(required) The name of the tag or wildcard
54
+ # @return [nil] This API call returns an empty response body.
55
+ def unprotect_repository_tag(project, name)
56
+ delete("/projects/#{url_encode project}/protected_tags/#{name}")
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to repository submodules.
5
+ # @see https://docs.gitlab.com/ce/api/repository_submodules.html
6
+ module RepositorySubmodules
7
+ # Edits an existing repository submodule.
8
+ #
9
+ # @example
10
+ # Gitlab.edit_file(42, "submodule", {
11
+ # branch: "branch",
12
+ # commit_sha: "3ddec28ea23acc5caa5d8331a6ecb2a65fc03e88",
13
+ # commit_message: "commit message"
14
+ # })
15
+ #
16
+ # @param [Integer, String] project The ID or name of a project.
17
+ # @param [String] submodule full path of submodule to update.
18
+ # @param [Hash] options A customizable set of options.
19
+ # @param options [String] :branch the name of the branch to commit changes to.
20
+ # @param options [String] :commit_sha commit SHA to update the submodule to.
21
+ # @param options [String] :commit_message commit message text.
22
+ # @return [Gitlab::ObjectifiedHash]
23
+ def edit_submodule(project, submodule, options = {})
24
+ put("/projects/#{url_encode project}/repository/submodules/#{url_encode submodule}", body: options)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,100 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to templates.
5
+ # @see https://docs.gitlab.com/ce/api/templates/dockerfiles.html
6
+ # @see https://docs.gitlab.com/ce/api/templates/gitignores.html
7
+ # @see https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html
8
+ # @see https://docs.gitlab.com/ce/api/templates/licenses.html
9
+ module Templates
10
+ # Get all Dockerfile templates.
11
+ #
12
+ # @example
13
+ # Gitlab.dockerfile_templates
14
+ #
15
+ # @return [Array<Gitlab::ObjectifiedHash>]
16
+ def dockerfile_templates
17
+ get('/templates/dockerfiles')
18
+ end
19
+
20
+ # Get a single Dockerfile template.
21
+ #
22
+ # @example
23
+ # Gitlab.dockerfile_template('Binary')
24
+ #
25
+ # @param [String] key The key of the Dockerfile template
26
+ # @return [Gitlab::ObjectifiedHash]
27
+ def dockerfile_template(key)
28
+ get("/templates/dockerfiles/#{key}")
29
+ end
30
+
31
+ # Get all gitignore templates.
32
+ #
33
+ # @example
34
+ # Gitlab.gitignore_templates
35
+ #
36
+ # @return [Array<Gitlab::ObjectifiedHash>]
37
+ def gitignore_templates
38
+ get('/templates/gitignores')
39
+ end
40
+
41
+ # Get a single gitignore template.
42
+ #
43
+ # @example
44
+ # Gitlab.gitignore_template('Ruby')
45
+ #
46
+ # @param [String] key The key of the gitignore template
47
+ # @return [Gitlab::ObjectifiedHash]
48
+ def gitignore_template(key)
49
+ get("/templates/gitignores/#{key}")
50
+ end
51
+
52
+ # Get all `gitlab_ci.yml` templates.
53
+ #
54
+ # @example
55
+ # Gitlab.gitlab_ci_yml_templates
56
+ #
57
+ # @return [Array<Gitlab::ObjectifiedHash>]
58
+ def gitlab_ci_yml_templates
59
+ get('/templates/gitlab_ci_ymls')
60
+ end
61
+
62
+ # Get a single `gitlab_ci.yml` template.
63
+ #
64
+ # @example
65
+ # Gitlab.gitlab_ci_yml_template('Ruby')
66
+ #
67
+ # @param [String] key The key of the gitlab_ci_yml template
68
+ # @return [Gitlab::ObjectifiedHash]
69
+ def gitlab_ci_yml_template(key)
70
+ get("/templates/gitlab_ci_ymls/#{key}")
71
+ end
72
+
73
+ # Get all license templates.
74
+ #
75
+ # @example
76
+ # Gitlab.license_templates
77
+ # Gitlab.license_templates(popular: true)
78
+ #
79
+ # @param [Hash] options A customizable set of options.
80
+ # @option options [Boolean] popular(optional) If passed, returns only popular licenses.
81
+ # @return [Array<Gitlab::ObjectifiedHash>]
82
+ def license_templates(options = {})
83
+ get('/templates/licenses', query: options)
84
+ end
85
+
86
+ # Get a single license template. You can pass parameters to replace the license placeholder.
87
+ #
88
+ # @example
89
+ # Gitlab.license_template('Ruby')
90
+ #
91
+ # @param [String] key The key of the license template
92
+ # @param [Hash] options A customizable set of options.
93
+ # @option options [String] project(optional) The copyrighted project name.
94
+ # @option options [String] fullname(optional) The full-name of the copyright holder
95
+ # @return [Gitlab::ObjectifiedHash]
96
+ def license_template(key, options = {})
97
+ get("/templates/licenses/#{key}", query: options)
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to wikis.
5
+ # @see https://docs.gitlab.com/ce/api/wikis.html
6
+ module Wikis
7
+ # Get all wiki pages for a given project.
8
+ #
9
+ # @example
10
+ # Gitlab.wikis(3)
11
+ # Gitlab.wikis(3, {with_content: 'Some wiki content'})
12
+ #
13
+ # @param [Integer, String] project The ID or name of a project.
14
+ # @param [Hash] options A customizable set of options.
15
+ # @option options [String] with_content(optional) Include pages content
16
+ # @return [Array<Gitlab::ObjectifiedHash>]
17
+ def wikis(project, options = {})
18
+ get("/projects/#{url_encode project}/wikis", query: options)
19
+ end
20
+
21
+ # Get a wiki page for a given project.
22
+ #
23
+ # @example
24
+ # Gitlab.wiki(3, 'home')
25
+ #
26
+ # @param [Integer, String] project The ID or name of a project.
27
+ # @param [String] slug The slug (a unique string) of the wiki page
28
+ # @return [Gitlab::ObjectifiedHash]
29
+ def wiki(project, slug)
30
+ get("/projects/#{url_encode project}/wikis/#{slug}")
31
+ end
32
+
33
+ # Creates a new wiki page for the given repository with the given title, slug, and content.
34
+ #
35
+ # @example
36
+ # Gitlab.create_wiki(3, 'Some Title', 'Some Content')
37
+ # Gitlab.create_wiki(3, 'Some Title', 'Some Content', { format: 'rdoc' })
38
+ #
39
+ # @param [Integer, String] project The ID or name of a project.
40
+ # @param [String] content The content of the wiki page.
41
+ # @param [String] title The title of the wiki page.
42
+ # @param [Hash] options A customizable set of options.
43
+ # @option options [String] format (optional) The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc.
44
+ # @return [Gitlab::ObjectifiedHash] Information about created wiki page.
45
+ def create_wiki(project, title, content, options = {})
46
+ body = { content: content, title: title }.merge(options)
47
+ post("/projects/#{url_encode project}/wikis", body: body)
48
+ end
49
+
50
+ # Updates an existing wiki page. At least one parameter is required to update the wiki page.
51
+ #
52
+ # @example
53
+ # Gitlab.update_wiki(6, 'home', { title: 'New title' })
54
+ # Gitlab.update_wiki(6, 'home', { title: 'New title', content: 'New Message', format: 'rdoc' })
55
+ #
56
+ # @param [Integer, String] project The ID or name of a project.
57
+ # @param [String] slug The slug (a unique string) of the wiki page.
58
+ # @param [Hash] options A customizable set of options.
59
+ # @option options [String] content The content of the wiki page.
60
+ # @option options [String] title The title of the wiki page.
61
+ # @option options [String] format (optional) The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc.
62
+ # @return [Gitlab::ObjectifiedHash] Information about updated wiki page.
63
+ def update_wiki(project, slug, options = {})
64
+ put("/projects/#{url_encode project}/wikis/#{slug}", body: options)
65
+ end
66
+
67
+ # Deletes a wiki page with a given slug.
68
+ #
69
+ # @example
70
+ # Gitlab.delete_wiki(42, 'foo')
71
+ #
72
+ # @param [Integer, String] project The ID or name of a project.
73
+ # @param [String] slug The slug (a unique string) of the wiki page.
74
+ # @return [Gitlab::ObjectifiedHash] An empty objectified hash
75
+ def delete_wiki(project, slug)
76
+ delete("/projects/#{url_encode project}/wikis/#{slug}")
77
+ end
78
+ end
79
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gitlab
4
- VERSION = '4.7.0'
4
+ VERSION = '4.8.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.0
4
+ version: 4.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nihad Abbasov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-11-07 00:00:00.000000000 Z
12
+ date: 2018-12-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -140,6 +140,7 @@ files:
140
140
  - lib/gitlab/client/award_emojis.rb
141
141
  - lib/gitlab/client/boards.rb
142
142
  - lib/gitlab/client/branches.rb
143
+ - lib/gitlab/client/broadcast_messages.rb
143
144
  - lib/gitlab/client/build_variables.rb
144
145
  - lib/gitlab/client/builds.rb
145
146
  - lib/gitlab/client/commits.rb
@@ -160,18 +161,23 @@ files:
160
161
  - lib/gitlab/client/pipeline_schedules.rb
161
162
  - lib/gitlab/client/pipeline_triggers.rb
162
163
  - lib/gitlab/client/pipelines.rb
164
+ - lib/gitlab/client/project_badges.rb
163
165
  - lib/gitlab/client/projects.rb
166
+ - lib/gitlab/client/protected_tags.rb
164
167
  - lib/gitlab/client/repositories.rb
165
168
  - lib/gitlab/client/repository_files.rb
169
+ - lib/gitlab/client/repository_submodules.rb
166
170
  - lib/gitlab/client/runners.rb
167
171
  - lib/gitlab/client/services.rb
168
172
  - lib/gitlab/client/sidekiq.rb
169
173
  - lib/gitlab/client/snippets.rb
170
174
  - lib/gitlab/client/system_hooks.rb
171
175
  - lib/gitlab/client/tags.rb
176
+ - lib/gitlab/client/templates.rb
172
177
  - lib/gitlab/client/todos.rb
173
178
  - lib/gitlab/client/users.rb
174
179
  - lib/gitlab/client/versions.rb
180
+ - lib/gitlab/client/wikis.rb
175
181
  - lib/gitlab/configuration.rb
176
182
  - lib/gitlab/error.rb
177
183
  - lib/gitlab/file_response.rb
@@ -202,8 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
208
  - !ruby/object:Gem::Version
203
209
  version: '0'
204
210
  requirements: []
205
- rubyforge_project:
206
- rubygems_version: 2.7.8
211
+ rubygems_version: 3.0.1
207
212
  signing_key:
208
213
  specification_version: 4
209
214
  summary: A Ruby wrapper and CLI for the GitLab API