Skip to content

Commit a6e2407

Browse files
authored
Add groups support (#31)
1 parent dacc5d1 commit a6e2407

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1916
-302
lines changed

Cargo.lock

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ edition = "2021"
88
clap = { version = "3.0", features = ["derive", "env"] }
99
serde = { version = "1.0", features = ["derive"] }
1010
serde_yaml = "0.8"
11-
gitlab = "0.1408.0"
11+
# gitlab = "0.1408.0"
1212
log = "0.4.14"
1313
tempfile = "3.3.0"
1414
uuid = { version = "0.8", features = ["serde", "v4"]}
@@ -18,4 +18,5 @@ termion = "1.5.6"
1818
rand = "0.8.5"
1919
tabled = "0.5.0"
2020
serde_json = "1.0.79"
21-
self_update = "0.28.0"
21+
self_update = "0.28.0"
22+
gitlab = { git = "https://gitlab.kitware.com/allanger/rust-gitlab.git", tag = "temp-version-fix"}

example/gum-config-v1.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ config:
55
name: default
66
projects: []
77
users: []
8+
groups: []
89
state:

example/state.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[
22
{
3-
"user_id": {
3+
"entity": "user",
4+
"id": "user_id",
45
"projects": [
56
{
67
"project_id": "access_level"
@@ -17,6 +18,5 @@
1718
"group_id": "access_level"
1819
}
1920
]
20-
}
2121
}
2222
]

gum-config-new.yaml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
meta:
3+
version: v1
4+
config:
5+
teams:
6+
- name: default
7+
projects: []
8+
groups: []
9+
users:
10+
- id: 3644679
11+
name: N R
12+
teams: []
13+
projects: []
14+
namespaces:
15+
- name: gitlab-user-manager
16+
access_level: Owner
17+
id: 16198577
18+
url: "https://gitlab.com/groups/gitlab-user-manager"
19+
- id: 6012633
20+
name: Nikolay Rodionov
21+
teams: []
22+
projects:
23+
- name: affectionate_sammet
24+
id: 33873252
25+
access_level: Maintainer
26+
- name: pedantic_mahavira
27+
id: 33873240
28+
access_level: Developer
29+
- name: relaxed_hertz
30+
id: 33873238
31+
access_level: Guest
32+
- name: peaceful_shannon
33+
id: 33873231
34+
access_level: Owner
35+
- name: flamboyant_ride
36+
id: 33873225
37+
access_level: Developer
38+
namespaces: []
39+
groups:
40+
- name: group_1
41+
id: 16198579
42+
projects:
43+
- name: flamboyant_ride
44+
id: 33873225
45+
access_level: Guest
46+
namespaces:
47+
- name: group_2
48+
access_level: Guest
49+
id: 16198581
50+
url: "https://gitlab.com/groups/gitlab-user-manager/group_2"
51+
- name: group_3
52+
access_level: Developer
53+
id: 16198584
54+
url: "https://gitlab.com/groups/gitlab-user-manager/group_211"
55+
- name: group_3
56+
id: 16198584
57+
projects:
58+
- name: pedantic_mahavira
59+
id: 33873240
60+
access_level: Guest
61+
namespaces: []
62+
state: ""

gum-config-test.yaml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
meta:
3+
version: v1
4+
config:
5+
teams:
6+
- name: default
7+
projects: []
8+
groups: []
9+
users:
10+
- id: 3644679
11+
name: N R
12+
teams: []
13+
projects: []
14+
namespaces:
15+
- name: gitlab-user-manager
16+
access_level: Owner
17+
id: 16198577
18+
url: "https://gitlab.com/groups/gitlab-user-manager"
19+
- id: 6012633
20+
name: Nikolay Rodionov
21+
teams: []
22+
projects:
23+
- name: affectionate_sammet
24+
id: 33873252
25+
access_level: Maintainer
26+
- name: pedantic_mahavira
27+
id: 33873240
28+
access_level: Developer
29+
- name: relaxed_hertz
30+
id: 33873238
31+
access_level: Guest
32+
- name: peaceful_shannon
33+
id: 33873231
34+
access_level: Owner
35+
- name: flamboyant_ride
36+
id: 33873225
37+
access_level: Developer
38+
namespaces: []
39+
groups:
40+
- name: group_1
41+
id: 16198579
42+
projects:
43+
- name: flamboyant_ride
44+
id: 33873225
45+
access_level: Guest
46+
namespaces:
47+
- name: group_2
48+
access_level: Guest
49+
id: 16198581
50+
url: "https://gitlab.com/groups/gitlab-user-manager/group_2"
51+
- name: group_3
52+
access_level: Developer
53+
id: 16198584
54+
url: "https://gitlab.com/groups/gitlab-user-manager/group_211"
55+
- name: group_3
56+
id: 16198584
57+
projects:
58+
- name: pedantic_mahavira
59+
id: 33873240
60+
access_level: Guest
61+
namespaces: []
62+
state: ""

gum-config.yaml.bak

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
meta:
3+
version: v1
4+
config:
5+
teams:
6+
- name: default
7+
projects: []
8+
groups: []
9+
users:
10+
- id: 3644679
11+
name: N R
12+
teams: []
13+
projects: []
14+
namespaces:
15+
- name: gitlab-user-manager
16+
access_level: Owner
17+
id: 16198577
18+
url: "https://gitlab.com/groups/gitlab-user-manager"
19+
- id: 6012633
20+
name: Nikolay Rodionov
21+
teams: []
22+
projects:
23+
- name: affectionate_sammet
24+
id: 33873252
25+
access_level: Maintainer
26+
- name: pedantic_mahavira
27+
id: 33873240
28+
access_level: Developer
29+
- name: relaxed_hertz
30+
id: 33873238
31+
access_level: Guest
32+
- name: peaceful_shannon
33+
id: 33873231
34+
access_level: Owner
35+
- name: flamboyant_ride
36+
id: 33873225
37+
access_level: Developer
38+
namespaces: []
39+
groups:
40+
- name: group_1
41+
id: 16198579
42+
projects:
43+
- name: flamboyant_ride
44+
id: 33873225
45+
access_level: Guest
46+
namespaces:
47+
- name: group_2
48+
access_level: Guest
49+
id: 16198581
50+
url: "https://gitlab.com/groups/gitlab-user-manager/group_2"
51+
- name: group_3
52+
access_level: Developer
53+
id: 16198584
54+
url: "https://gitlab.com/groups/gitlab-user-manager/group_211"
55+
- name: group_3
56+
id: 16198584
57+
projects:
58+
- name: pedantic_mahavira
59+
id: 33873240
60+
access_level: Guest
61+
namespaces: []
62+
state: "{\"16198579\":{\"entity\":\"Group\",\"projects\":{\"33873225\":\"Guest\"},\"namespaces\":{\"16198581\":\"Guest\",\"16198584\":\"Developer\"}},\"6012633\":{\"entity\":\"User\",\"projects\":{\"33873231\":\"Owner\",\"33873225\":\"Developer\",\"33873240\":\"Developer\",\"33873252\":\"Maintainer\",\"33873238\":\"Guest\"},\"namespaces\":{}},\"16198584\":{\"entity\":\"Group\",\"projects\":{\"33873240\":\"Guest\"},\"namespaces\":{}},\"3644679\":{\"entity\":\"User\",\"projects\":{},\"namespaces\":{\"16198577\":\"Owner\"}}}"

src/args.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ pub(crate) mod gitlab_url;
66
pub(crate) mod group_id;
77
pub(crate) mod group_list;
88
pub(crate) mod large_out;
9+
pub(crate) mod namespace_id;
910
pub(crate) mod no_confirm;
1011
pub(crate) mod project_id;
1112
pub(crate) mod state_destination;

src/args/group_id.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ impl Args for ArgGroupId {
1919

2020
fn add() -> Arg<'static> {
2121
Arg::new(ARG)
22-
.short('i')
22+
.short('g')
2323
.long(ARG)
2424
.takes_value(true)
2525
.value_name("GROUP_ID")

src/args/group_list.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,7 @@ impl Args for ArgGroupList {
3434
fn parse<'a>(sub_matches: &'_ ArgMatches) -> Result<Self> {
3535
let value = match sub_matches.values_of(ARG) {
3636
Some(v) => v.map(|f| f.parse::<u64>().unwrap()).collect(),
37-
None => {
38-
return Err(Error::new(
39-
ErrorKind::InvalidInput,
40-
"You have to provide values for using group-list args",
41-
))
42-
}
37+
None => Vec::new(),
4338
};
4439

4540
Ok(ArgGroupList { value })

0 commit comments

Comments
 (0)