labclient 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/labclient/client.rb +1 -1
- data/lib/labclient/common.rb +1 -1
- data/lib/labclient/files/create.rb +1 -1
- data/lib/labclient/files/delete.rb +1 -1
- data/lib/labclient/files/show.rb +6 -4
- data/lib/labclient/files/update.rb +1 -1
- data/lib/labclient/projects/methods.rb +9 -0
- data/lib/labclient/projects/reference.rb +4 -0
- data/lib/labclient/projects/templates/client.rb +17 -0
- data/lib/labclient/projects/templates/list.rb +30 -0
- data/lib/labclient/projects/templates/show.rb +36 -0
- data/lib/labclient/version.rb +1 -1
- data/lib/labclient.rb +8 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d74d5b878f7c98298959ec6c47bb4b81a6dcb336391eb4fae8df4f38a180d920
|
4
|
+
data.tar.gz: b31895a60a9f209d39f30b33b6975e173e0ce0bc557b3cab30afb6aceb65642e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5548da86087095cf0093be6635ef81da29a2cec523a13834a793056898da03561039cccce12fa757b726945752362498c5673b15f5f33590c6edaf7ff14aff2c
|
7
|
+
data.tar.gz: 0d145b1acb0dee2c10ef8ced865a1e073791fcb1616123db9e39ffaabeb1279cff646d1ab0afd6e4a83d87771e4980c7e0ee2bea1a0162c4cc9c42cb584b1f56
|
data/lib/labclient/client.rb
CHANGED
data/lib/labclient/common.rb
CHANGED
@@ -47,7 +47,7 @@ module LabClient
|
|
47
47
|
project_id = format_id(project_id)
|
48
48
|
|
49
49
|
# Path Name Encoding
|
50
|
-
file_path =
|
50
|
+
file_path = ERB::Util.url_encode(file_path)
|
51
51
|
|
52
52
|
client.request(:post, "projects/#{project_id}/repository/files/#{file_path}", nil, query)
|
53
53
|
end
|
@@ -38,7 +38,7 @@ module LabClient
|
|
38
38
|
project_id = format_id(project_id)
|
39
39
|
|
40
40
|
# Path Name Encoding
|
41
|
-
file_path =
|
41
|
+
file_path = ERB::Util.url_encode(file_path)
|
42
42
|
|
43
43
|
client.request(:delete, "projects/#{project_id}/repository/files/#{file_path}", nil, query)
|
44
44
|
end
|
data/lib/labclient/files/show.rb
CHANGED
@@ -27,25 +27,27 @@ module LabClient
|
|
27
27
|
desc 'via Project'
|
28
28
|
example <<~DOC
|
29
29
|
project = client.projects.show(264)
|
30
|
-
project.file('
|
30
|
+
project.file('README.md')
|
31
31
|
DOC
|
32
32
|
end
|
33
33
|
|
34
34
|
def show(project_id, file_path, ref = :main, kind = nil)
|
35
|
+
# LabStruct vs LabFile
|
36
|
+
return_kind = kind == :raw ? LabFile : nil
|
37
|
+
|
35
38
|
kind = case kind
|
36
39
|
when :raw
|
37
40
|
'/raw'
|
38
41
|
when :blame
|
39
42
|
'/blame'
|
40
43
|
end
|
41
|
-
# GET /projects/:id/repository/files/:file_path
|
42
44
|
|
43
45
|
project_id = format_id(project_id)
|
44
46
|
|
45
47
|
# Path Name Encoding
|
46
|
-
file_path =
|
48
|
+
file_path = ERB::Util.url_encode(file_path)
|
47
49
|
|
48
|
-
client.request(:get, "projects/#{project_id}/repository/files/#{file_path}#{kind}",
|
50
|
+
client.request(:get, "projects/#{project_id}/repository/files/#{file_path}#{kind}", return_kind, ref: ref)
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
@@ -44,7 +44,7 @@ module LabClient
|
|
44
44
|
project_id = format_id(project_id)
|
45
45
|
|
46
46
|
# Path Name Encoding
|
47
|
-
file_path =
|
47
|
+
file_path = ERB::Util.url_encode(file_path)
|
48
48
|
|
49
49
|
client.request(:put, "projects/#{project_id}/repository/files/#{file_path}", nil, query)
|
50
50
|
end
|
@@ -721,6 +721,15 @@ module LabClient
|
|
721
721
|
client.projects.clusters.show(id, cluster_id)
|
722
722
|
end
|
723
723
|
|
724
|
+
# Templates
|
725
|
+
def templates(template_type)
|
726
|
+
client.projects.templates.list(id, template_type)
|
727
|
+
end
|
728
|
+
|
729
|
+
def template_show(template_type, template_name, query = {})
|
730
|
+
client.projects.templates.show(id, template_type, template_name, query)
|
731
|
+
end
|
732
|
+
|
724
733
|
# Reload
|
725
734
|
def reload
|
726
735
|
update_self client.projects.show(id)
|
@@ -264,6 +264,10 @@ module LabClient
|
|
264
264
|
# Clusters
|
265
265
|
option 'clusters', 'Returns a list of project clusters.'
|
266
266
|
|
267
|
+
# Clusters
|
268
|
+
option 'templates', 'List Templates of Type [String/Symbol]'
|
269
|
+
option 'template_show', 'Get one template of a particular type [Type: String/Symbol, Name: String/Symbol, Params: Hash]'
|
270
|
+
|
267
271
|
option 'events', 'List project events [Hash]'
|
268
272
|
option 'parent', 'Show (API Call) Project Parent, returns either Group or User'
|
269
273
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Top namespace
|
2
|
+
module LabClient
|
3
|
+
# Inspect Helper
|
4
|
+
class ProjectTemplates < Common
|
5
|
+
include ClassHelpers
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
# Top namespace
|
10
|
+
module LabClient
|
11
|
+
# Specifics
|
12
|
+
class Projects < Common
|
13
|
+
def templates
|
14
|
+
ProjectTemplates.new(client)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Top namespace
|
2
|
+
module LabClient
|
3
|
+
# Specifics
|
4
|
+
class ProjectTemplates < Common
|
5
|
+
doc 'List' do
|
6
|
+
desc 'Get all templates of a particular type. [Project ID, String/Symbol]'
|
7
|
+
example 'client.projects.templates.list(15, :issues)'
|
8
|
+
result '[{:key=>"Code Contributions", :name=>"Code Contributions"}, ...]'
|
9
|
+
|
10
|
+
markdown <<~DOC
|
11
|
+
| Attribute | Type | Required | Description |
|
12
|
+
| --------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
13
|
+
| type | string | yes | The type of the template. Accepted values are: `dockerfiles`, `gitignores`, `gitlab_ci_ymls`, `licenses`, `issues`, `merge_requests` |
|
14
|
+
DOC
|
15
|
+
end
|
16
|
+
|
17
|
+
doc 'List' do
|
18
|
+
desc 'Via Project [String/Symbol]'
|
19
|
+
example <<~DOC
|
20
|
+
project = client.projects.show(16)
|
21
|
+
project.templates(:issues)
|
22
|
+
DOC
|
23
|
+
end
|
24
|
+
|
25
|
+
def list(project_id, template_type)
|
26
|
+
project_id = format_id(project_id)
|
27
|
+
client.request(:get, "projects/#{project_id}/templates/#{template_type}")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Top namespace
|
2
|
+
module LabClient
|
3
|
+
# Specifics
|
4
|
+
class ProjectTemplates < Common
|
5
|
+
doc 'Show' do
|
6
|
+
desc 'Get one template of a particular type. [Project ID, Type: String/Symbol, Name: String/Symbol, Hash]'
|
7
|
+
example 'client.projects.templates.show(15,:issues,:elasticsearch)'
|
8
|
+
result '[#<Runner id: 1, status: online>, ... ]'
|
9
|
+
|
10
|
+
markdown <<~DOC
|
11
|
+
|
12
|
+
| Attribute | Type | Required | Description |
|
13
|
+
| ---------------------------- | ----------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
|
14
|
+
| type | string | yes | The type of the template. One of: `dockerfiles`, `gitignores`, `gitlab_ci_ymls`, `licenses`, `issues`, or `merge_requests`. |
|
15
|
+
| name | string | yes | The key of the template, as obtained from the collection endpoint |
|
16
|
+
| source_template_project_id | integer | no | The project ID where a given template is being stored. This is useful when multiple templates from different projects have the same name. If multiple templates have the same name, the match from `closest ancestor` is returned if `source_template_project_id` is not specified |
|
17
|
+
| project | string | no | The project name to use when expanding placeholders in the template. Only affects licenses |
|
18
|
+
| fullname | string | no | The full name of the copyright holder to use when expanding placeholders in the template. Only affects licenses |
|
19
|
+
DOC
|
20
|
+
end
|
21
|
+
|
22
|
+
doc 'List' do
|
23
|
+
desc 'Via Project [String/Symbol]'
|
24
|
+
example <<~DOC
|
25
|
+
project = client.projects.show(16)
|
26
|
+
project.template_show(:issues, 'Elasticsearch')
|
27
|
+
DOC
|
28
|
+
end
|
29
|
+
|
30
|
+
def show(project_id, template_type, template_name, query = {})
|
31
|
+
project_id = format_id(project_id)
|
32
|
+
|
33
|
+
client.request(:get, "projects/#{project_id}/templates/#{template_type}/#{template_name}", nil, query)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/labclient/version.rb
CHANGED
data/lib/labclient.rb
CHANGED
@@ -7,6 +7,9 @@ require 'gitlab_chronic_duration'
|
|
7
7
|
require 'ostruct'
|
8
8
|
require 'ougai'
|
9
9
|
|
10
|
+
# Escaping Paths - https://stackoverflow.com/questions/2824126/whats-the-difference-between-uri-escape-and-cgi-escape/13059657#13059657
|
11
|
+
require 'erb'
|
12
|
+
|
10
13
|
require 'labclient/version'
|
11
14
|
require 'labclient/logger'
|
12
15
|
require 'labclient/docs'
|
@@ -266,6 +269,11 @@ require 'labclient/projects/access_requests/approve'
|
|
266
269
|
require 'labclient/projects/access_requests/deny'
|
267
270
|
require 'labclient/projects/access_requests/access_request'
|
268
271
|
|
272
|
+
# Project Templates
|
273
|
+
require 'labclient/projects/templates/client'
|
274
|
+
require 'labclient/projects/templates/show'
|
275
|
+
require 'labclient/projects/templates/list'
|
276
|
+
|
269
277
|
# ===========================================================
|
270
278
|
# Final Projects
|
271
279
|
# ===========================================================
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: labclient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Davin Walker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -799,6 +799,9 @@ files:
|
|
799
799
|
- lib/labclient/projects/stars/starred_projects.rb
|
800
800
|
- lib/labclient/projects/stars/starrers.rb
|
801
801
|
- lib/labclient/projects/submodule.rb
|
802
|
+
- lib/labclient/projects/templates/client.rb
|
803
|
+
- lib/labclient/projects/templates/list.rb
|
804
|
+
- lib/labclient/projects/templates/show.rb
|
802
805
|
- lib/labclient/projects/transfer.rb
|
803
806
|
- lib/labclient/projects/triggers/client.rb
|
804
807
|
- lib/labclient/projects/triggers/create.rb
|