avm-gitlab 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: db42605094ad5c83d8d884f54920e68aca4ec7b269e66b24d32ac0af54991e25
4
- data.tar.gz: ad8ad8fa0243c049472e9a559a6975c7319c313976239ef2f6ee0318f251e067
3
+ metadata.gz: f90e5a9bbaabf5d7f0891a15656004820061f35ae9531c0a4bf4e8ff5aa4dad7
4
+ data.tar.gz: deab5906bfff0b215757337cbef0ecf5317f43b7a1506186d4a883e9b586d7fc
5
5
  SHA512:
6
- metadata.gz: f1a726bcddd62285aac514555456e94434bb9c9753a4c7adc1885fc39f8fcac5f86f56b8c9b014d925322be500f30d0939e9ce494df8967c395ed44da6591fdc
7
- data.tar.gz: 7dd45d3dc052bf5d32001b01537aa866f23dd3d42c4b9250c898b752ae2c8123f1054a06d7bb5338740c7822886bc103d6c34155c4d67dc7cfe14cb7a091ebf9
6
+ metadata.gz: 5bf36c5d3e24e29fb211beb11b57f9b239be50e0ce92f2bd420ea72466b5a92ddb85e6d2c6f3e674f5c39af87645736b5c6562f01c89fee74499959dbfd1b4dd
7
+ data.tar.gz: db7271ec1343ecfdd399c9b36f7107435210fcfef5b99c183c2935759f8a7cb568d5b813007cf9d1bd3a7830b98d3a2d8c98fd119a0f357ae14fb5667e01521a
@@ -10,6 +10,10 @@ module Avm
10
10
  class BaseEntity < ::EacRest::Entity
11
11
  enable_simple_cache
12
12
 
13
+ def delete(url_suffix)
14
+ api.request(url_suffix).verb(:delete).response.body_data
15
+ end
16
+
13
17
  def encode_id(id)
14
18
  return id if id.is_a?(::Integer)
15
19
 
@@ -20,6 +20,10 @@ module Avm
20
20
  end
21
21
  end
22
22
 
23
+ def api_prefix
24
+ "/groups/#{encode_id(id)}"
25
+ end
26
+
23
27
  def to_s
24
28
  full_path
25
29
  end
@@ -28,14 +32,14 @@ module Avm
28
32
 
29
33
  def members_uncached
30
34
  fetch_entities(
31
- "/groups/#{id}/members",
35
+ "#{api_prefix}/members",
32
36
  ::Avm::Gitlab::RestApi::Member
33
37
  )
34
38
  end
35
39
 
36
40
  def projects_uncached
37
41
  fetch_entities(
38
- "/groups/#{id}/projects?order_by=path&sort=asc&per_page=9999",
42
+ "#{api_prefix}/projects?order_by=path&sort=asc&per_page=9999",
39
43
  ::Avm::Gitlab::RestApi::Project
40
44
  )
41
45
  end
@@ -10,6 +10,10 @@ module Avm
10
10
  class RestApi < ::EacRest::Api
11
11
  class Node < ::Avm::Gitlab::RestApi::BaseEntity
12
12
  compare_by :id
13
+
14
+ def remove_member(user_id)
15
+ delete("#{api_prefix}/members/#{encode_id(user_id)}")
16
+ end
13
17
  end
14
18
  end
15
19
  end
@@ -29,6 +29,7 @@ module Avm
29
29
  end
30
30
 
31
31
  attr_reader :rest_api
32
+ attr_writer :no_groups
32
33
 
33
34
  def initialize(rest_api, *ids)
34
35
  self.rest_api = rest_api
@@ -53,7 +54,13 @@ module Avm
53
54
 
54
55
  # @return [Array<Avm::Gitlab::RestApi::Node>]
55
56
  def nodes
56
- nodes_set.sort_by { |p| [p.full_path] }
57
+ r = nodes_set
58
+ r = r.reject { |g| g.is_a?(::Avm::Gitlab::RestApi::Group) } if no_groups?
59
+ r.sort_by { |p| [p.full_path] }
60
+ end
61
+
62
+ def no_groups?
63
+ @no_groups ? true : false
57
64
  end
58
65
 
59
66
  private
@@ -31,13 +31,17 @@ module Avm
31
31
  end
32
32
  end
33
33
 
34
+ def api_prefix
35
+ "/projects/#{encode_id(id)}"
36
+ end
37
+
34
38
  def full_path
35
39
  path_with_namespace
36
40
  end
37
41
 
38
42
  def file(path)
39
43
  fetch_entity(
40
- "/projects/#{encode_id(id)}/repository/files/#{encode_id(path)}?ref=#{default_branch}",
44
+ "#{api_prefix}/repository/files/#{encode_id(path)}?ref=#{default_branch}",
41
45
  ::Avm::Gitlab::RestApi::File,
42
46
  '404 File Not Found'
43
47
  )
@@ -51,7 +55,7 @@ module Avm
51
55
 
52
56
  def members_uncached
53
57
  fetch_entities(
54
- "/projects/#{id}/members",
58
+ "#{api_prefix}/members",
55
59
  ::Avm::Gitlab::RestApi::Member
56
60
  )
57
61
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Gitlab
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-gitlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-24 00:00:00.000000000 Z
11
+ date: 2022-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_ruby_utils