labclient 0.1.2 → 0.2.1

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/lib/labclient.rb +16 -6
  3. data/lib/labclient/access_levels.rb +24 -30
  4. data/lib/labclient/branches/branch.rb +25 -0
  5. data/lib/labclient/branches/create.rb +33 -0
  6. data/lib/labclient/client.rb +47 -7
  7. data/lib/labclient/commits/project_helpers.rb +4 -0
  8. data/lib/labclient/commits/show.rb +11 -2
  9. data/lib/labclient/docs.rb +9 -5
  10. data/lib/labclient/epics/epic.rb +13 -0
  11. data/lib/labclient/error.rb +1 -0
  12. data/lib/labclient/files/create.rb +14 -8
  13. data/lib/labclient/files/update.rb +1 -1
  14. data/lib/labclient/generator/generator.rb +9 -21
  15. data/lib/labclient/generator/names.rb +17 -3
  16. data/lib/labclient/generator/template_helper.rb +81 -0
  17. data/lib/labclient/generator/templates/environments.rb +98 -0
  18. data/lib/labclient/generator/templates/pages.rb +24 -30
  19. data/lib/labclient/generator/templates/pipeline_trigger.rb +82 -0
  20. data/lib/labclient/generator/wizard.rb +29 -9
  21. data/lib/labclient/groups/group.rb +1 -1
  22. data/lib/labclient/http.rb +3 -2
  23. data/lib/labclient/issues/issue.rb +23 -1
  24. data/lib/labclient/issues/update.rb +20 -2
  25. data/lib/labclient/jobs/delete.rb +1 -1
  26. data/lib/labclient/jobs/keep.rb +1 -1
  27. data/lib/labclient/jobs/play.rb +1 -1
  28. data/lib/labclient/jobs/trace.rb +2 -2
  29. data/lib/labclient/klass.rb +6 -3
  30. data/lib/labclient/lab_struct.rb +21 -0
  31. data/lib/labclient/license/list.rb +2 -2
  32. data/lib/labclient/members/member.rb +1 -0
  33. data/lib/labclient/merge_requests/accept.rb +15 -6
  34. data/lib/labclient/merge_requests/create.rb +12 -0
  35. data/lib/labclient/merge_requests/merge_request.rb +49 -4
  36. data/lib/labclient/notes/epics/create.rb +12 -4
  37. data/lib/labclient/notes/epics/delete.rb +3 -3
  38. data/lib/labclient/notes/epics/list.rb +21 -4
  39. data/lib/labclient/notes/epics/show.rb +4 -4
  40. data/lib/labclient/notes/epics/update.rb +4 -4
  41. data/lib/labclient/notes/issues/create.rb +11 -1
  42. data/lib/labclient/notes/issues/list.rb +18 -3
  43. data/lib/labclient/notes/issues/show.rb +1 -1
  44. data/lib/labclient/notes/merge_requests/create.rb +8 -0
  45. data/lib/labclient/notes/merge_requests/list.rb +20 -2
  46. data/lib/labclient/notes/snippets/create.rb +1 -1
  47. data/lib/labclient/notes/snippets/list.rb +20 -3
  48. data/lib/labclient/notes/snippets/show.rb +1 -1
  49. data/lib/labclient/notifications/update.rb +1 -1
  50. data/lib/labclient/overview.rb +79 -11
  51. data/lib/labclient/paginated_response.rb +3 -1
  52. data/lib/labclient/pipelines/pipeline.rb +41 -0
  53. data/lib/labclient/projects/environments/project_environment.rb +10 -0
  54. data/lib/labclient/projects/methods.rb +49 -2
  55. data/lib/labclient/projects/reference.rb +12 -0
  56. data/lib/labclient/projects/snippets/project_snippet.rb +12 -0
  57. data/lib/labclient/protected_branches/protect.rb +6 -5
  58. data/lib/labclient/protected_environments/list.rb +29 -0
  59. data/lib/labclient/protected_environments/protect.rb +53 -0
  60. data/lib/labclient/protected_environments/protected_environment.rb +22 -0
  61. data/lib/labclient/protected_environments/show.rb +24 -0
  62. data/lib/labclient/protected_environments/unprotect.rb +31 -0
  63. data/lib/labclient/snippets/snippet.rb +2 -2
  64. data/lib/labclient/users/membership.rb +62 -0
  65. data/lib/labclient/users/memberships.rb +8 -3
  66. data/lib/labclient/users/user.rb +7 -1
  67. data/lib/labclient/version.rb +1 -1
  68. metadata +16 -7
  69. data/lib/labclient/generator/templates/template.rb +0 -23
  70. data/lib/labclient/open_struct.rb +0 -14
@@ -32,8 +32,8 @@ module LabClient
32
32
  subtitle 'Snippet'
33
33
  option 'raw', 'Retrieves the raw snippet content.'
34
34
  option 'agent_detail', 'Hash of user agent details.'
35
- option 'delete', 'Delete this deploy key.'
36
- option 'update', 'Update this this deploy key.'
35
+ option 'delete', 'Delete this snippet.'
36
+ option 'update', 'Update this this snippet.'
37
37
  end
38
38
  end
39
39
  end
@@ -0,0 +1,62 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class Membership < Klass
5
+ include ClassHelpers
6
+ include AccessLevel
7
+
8
+ def inspect
9
+ "#<Membership name: #{source_name}, access: #{level}>"
10
+ end
11
+
12
+ def parent
13
+ case source_type
14
+ when 'Project'
15
+ client.projects.show(source_id)
16
+ when 'Namespace'
17
+ client.groups.show(source_id)
18
+ end
19
+ end
20
+
21
+ def level
22
+ human_access_level(access_level)
23
+ end
24
+
25
+ def guest?
26
+ level == :guest
27
+ end
28
+
29
+ def reporter?
30
+ level == :reporter
31
+ end
32
+
33
+ def developer?
34
+ level == :developer
35
+ end
36
+
37
+ def maintainer?
38
+ level == :maintainer
39
+ end
40
+
41
+ def owner?
42
+ level == :owner
43
+ end
44
+
45
+ def greater_than(leveler)
46
+ case leveler
47
+ when Symbol
48
+ access_level > machine_access_level(leveler)
49
+ when Integer
50
+ access_level > leveler
51
+ end
52
+ end
53
+
54
+ help do
55
+ subtitle 'Membership'
56
+ option 'level', 'Humanized symbol of access level. e.g. :developer'
57
+ option 'parent', 'Collect project/namespace for this membership'
58
+ option '<permission>?', 'True/False evaluation each guest?, developer? etc'
59
+ option 'greater_than', 'True/False if user has greater than [Permission Name]'
60
+ end
61
+ end
62
+ end
@@ -7,7 +7,9 @@ module LabClient
7
7
  desc 'Lists all projects and groups a user is a member of. [User ID, Type]'
8
8
 
9
9
  markdown <<~DOC
10
- Filter memberships by type. Can be either Project or Namespace
10
+ | Attribute | Type | Required | Description |
11
+ | --------- | ------ | -------- | -------------------------------------------------------------- |
12
+ | type | string | no | Filter memberships by type. Can be either Project or Namespace |
11
13
  DOC
12
14
 
13
15
  example 'client.users.memberships(1)'
@@ -26,9 +28,12 @@ module LabClient
26
28
  DOC
27
29
  end
28
30
 
29
- def memberships(user_id, type = 'Project')
31
+ def memberships(user_id, type = nil)
30
32
  user_id = format_id(user_id)
31
- client.request(:get, "users/#{user_id}/memberships", nil, { from: type })
33
+
34
+ query = nil
35
+ query = { type: type } if type
36
+ client.request(:get, "users/#{user_id}/memberships", Membership, query)
32
37
  end
33
38
  end
34
39
  end
@@ -101,10 +101,15 @@ module LabClient
101
101
  client.impersonation_tokens.show(id, token_id)
102
102
  end
103
103
 
104
- def memberships(type = 'Project')
104
+ def memberships(type = nil)
105
105
  client.users.memberships(id, type)
106
106
  end
107
107
 
108
+ # Events
109
+ def events(query = {})
110
+ client.events.user(id, query)
111
+ end
112
+
108
113
  # Reload Helper
109
114
  def reload
110
115
  update_self client.users.show(id)
@@ -133,6 +138,7 @@ module LabClient
133
138
  option 'emails', 'List user emails'
134
139
  option 'email_create', 'Create email for user [Email Address]'
135
140
  option 'email_delete', 'Delete email for user [Email ID]'
141
+ option 'events', 'List user events [Hash]'
136
142
  option 'impersonation_tokens', 'List impersonation tokesn for user [Filter(Optional)]'
137
143
  option 'impersonation_token_create', 'Create impersonation tokesn [Hash]'
138
144
  option 'impersonation_token_revoke', 'Revoke impersonation tokesn [Token ID]'
@@ -1,3 +1,3 @@
1
1
  module LabClient
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.2.1'.freeze
3
3
  end
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.1.2
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davin Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-19 00:00:00.000000000 Z
11
+ date: 2020-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: awesome_print
28
+ name: amazing_print
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.8'
33
+ version: '1.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.8'
40
+ version: '1.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: gitlab_chronic_duration
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -309,6 +309,7 @@ files:
309
309
  - lib/labclient/awards/snippets/list.rb
310
310
  - lib/labclient/awards/snippets/show.rb
311
311
  - lib/labclient/branches/branch.rb
312
+ - lib/labclient/branches/create.rb
312
313
  - lib/labclient/branches/delete.rb
313
314
  - lib/labclient/branches/delete_merged.rb
314
315
  - lib/labclient/branches/list.rb
@@ -403,8 +404,10 @@ files:
403
404
  - lib/labclient/files/update.rb
404
405
  - lib/labclient/generator/generator.rb
405
406
  - lib/labclient/generator/names.rb
407
+ - lib/labclient/generator/template_helper.rb
408
+ - lib/labclient/generator/templates/environments.rb
406
409
  - lib/labclient/generator/templates/pages.rb
407
- - lib/labclient/generator/templates/template.rb
410
+ - lib/labclient/generator/templates/pipeline_trigger.rb
408
411
  - lib/labclient/generator/wizard.rb
409
412
  - lib/labclient/groups/access_requests/access_request.rb
410
413
  - lib/labclient/groups/access_requests/approve.rb
@@ -509,6 +512,7 @@ files:
509
512
  - lib/labclient/keys/show.rb
510
513
  - lib/labclient/keys/user.rb
511
514
  - lib/labclient/klass.rb
515
+ - lib/labclient/lab_struct.rb
512
516
  - lib/labclient/license/add.rb
513
517
  - lib/labclient/license/delete.rb
514
518
  - lib/labclient/license/license.rb
@@ -579,7 +583,6 @@ files:
579
583
  - lib/labclient/notes/snippets/update.rb
580
584
  - lib/labclient/notifications/list.rb
581
585
  - lib/labclient/notifications/update.rb
582
- - lib/labclient/open_struct.rb
583
586
  - lib/labclient/overview.rb
584
587
  - lib/labclient/paginated_response.rb
585
588
  - lib/labclient/pipelines/cancel.rb
@@ -763,6 +766,11 @@ files:
763
766
  - lib/labclient/protected_branches/protect.rb
764
767
  - lib/labclient/protected_branches/show.rb
765
768
  - lib/labclient/protected_branches/unprotect.rb
769
+ - lib/labclient/protected_environments/list.rb
770
+ - lib/labclient/protected_environments/protect.rb
771
+ - lib/labclient/protected_environments/protected_environment.rb
772
+ - lib/labclient/protected_environments/show.rb
773
+ - lib/labclient/protected_environments/unprotect.rb
766
774
  - lib/labclient/protected_tags/list.rb
767
775
  - lib/labclient/protected_tags/protect.rb
768
776
  - lib/labclient/protected_tags/show.rb
@@ -857,6 +865,7 @@ files:
857
865
  - lib/labclient/users/keys/list.rb
858
866
  - lib/labclient/users/keys/show.rb
859
867
  - lib/labclient/users/list.rb
868
+ - lib/labclient/users/membership.rb
860
869
  - lib/labclient/users/memberships.rb
861
870
  - lib/labclient/users/search.rb
862
871
  - lib/labclient/users/show.rb
@@ -1,23 +0,0 @@
1
- module LabClient
2
- module Generator
3
- # Common Helper Class
4
- class TemplateHelper
5
- attr_reader :client
6
- attr_accessor :opts
7
-
8
- def inspect
9
- "#<LabClient::Template #{self.class.to_s.demodulize}>"
10
- end
11
-
12
- def initialize(client, opts = {})
13
- @client = client
14
- self.opts = opts
15
- setup
16
- end
17
-
18
- def setup
19
- # Blank Place Holder
20
- end
21
- end
22
- end
23
- end
@@ -1,14 +0,0 @@
1
- # Extend OpenStruct
2
- class OpenStruct
3
- def keys
4
- to_h.keys.sort
5
- end
6
-
7
- def inspect
8
- to_h.inspect
9
- end
10
-
11
- def as_json(*args)
12
- super.as_json['table']
13
- end
14
- end