gitlabber 1.2.1__tar.gz → 1.2.2__tar.gz

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 (51) hide show
  1. {gitlabber-1.2.1/gitlabber.egg-info → gitlabber-1.2.2}/PKG-INFO +44 -37
  2. {gitlabber-1.2.1 → gitlabber-1.2.2}/README.rst +36 -36
  3. gitlabber-1.2.2/gitlabber/__init__.py +1 -0
  4. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/gitlab_tree.py +5 -8
  5. {gitlabber-1.2.1 → gitlabber-1.2.2/gitlabber.egg-info}/PKG-INFO +44 -37
  6. gitlabber-1.2.1/gitlabber/__init__.py +0 -1
  7. {gitlabber-1.2.1 → gitlabber-1.2.2}/LICENSE.txt +0 -0
  8. {gitlabber-1.2.1 → gitlabber-1.2.2}/MANIFEST.in +0 -0
  9. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/__main__.py +0 -0
  10. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/archive.py +0 -0
  11. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/cli.py +0 -0
  12. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/format.py +0 -0
  13. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/git.py +0 -0
  14. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/method.py +0 -0
  15. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/naming.py +0 -0
  16. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber/progress.py +0 -0
  17. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber.egg-info/SOURCES.txt +0 -0
  18. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber.egg-info/dependency_links.txt +0 -0
  19. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber.egg-info/entry_points.txt +0 -0
  20. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber.egg-info/requires.txt +0 -0
  21. {gitlabber-1.2.1 → gitlabber-1.2.2}/gitlabber.egg-info/top_level.txt +0 -0
  22. {gitlabber-1.2.1 → gitlabber-1.2.2}/setup.cfg +0 -0
  23. {gitlabber-1.2.1 → gitlabber-1.2.2}/setup.py +0 -0
  24. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__init__.py +0 -0
  25. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/__init__.cpython-311.pyc +0 -0
  26. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/gitlab_test_utils.cpython-311.pyc +0 -0
  27. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/io_test_util.cpython-311.pyc +0 -0
  28. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_archive.cpython-311-pytest-8.2.2.pyc +0 -0
  29. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_cli.cpython-311-pytest-8.2.2.pyc +0 -0
  30. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_e2e.cpython-311-pytest-8.2.2.pyc +0 -0
  31. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_format.cpython-311-pytest-8.2.2.pyc +0 -0
  32. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_git.cpython-311-pytest-8.2.2.pyc +0 -0
  33. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_gitlab_tree.cpython-311-pytest-8.2.2.pyc +0 -0
  34. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_integration.cpython-311-pytest-8.2.2.pyc +0 -0
  35. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_method.cpython-311-pytest-8.2.2.pyc +0 -0
  36. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/__pycache__/test_naming.cpython-311-pytest-8.2.2.pyc +0 -0
  37. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/gitlab_test_utils.py +0 -0
  38. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/io_test_util.py +0 -0
  39. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test-input.yaml +0 -0
  40. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test-output.json +0 -0
  41. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test-output.tree +0 -0
  42. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test-output.yaml +0 -0
  43. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_archive.py +0 -0
  44. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_cli.py +0 -0
  45. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_e2e.py +0 -0
  46. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_format.py +0 -0
  47. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_git.py +0 -0
  48. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_gitlab_tree.py +0 -0
  49. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_integration.py +0 -0
  50. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_method.py +0 -0
  51. {gitlabber-1.2.1 → gitlabber-1.2.2}/tests/test_naming.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gitlabber
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: A Gitlab clone/pull utility for backing up or cloning Gitlab groups
5
5
  Home-page: https://github.com/ezbz/gitlabber
6
6
  Download-URL: https://github.com/ezbz/gitlabber/archive/master.zip
@@ -23,6 +23,13 @@ Classifier: Programming Language :: Python :: 3.12
23
23
  Requires-Python: >=3
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE.txt
26
+ Requires-Dist: docopt
27
+ Requires-Dist: anytree
28
+ Requires-Dist: globre
29
+ Requires-Dist: pyyaml
30
+ Requires-Dist: tqdm
31
+ Requires-Dist: GitPython
32
+ Requires-Dist: python-gitlab
26
33
 
27
34
  .. image:: https://github.com/ezbz/gitlabber/actions/workflows/python-app.yml/badge.svg?branch=master
28
35
  :target: https://github.com/ezbz/gitlabber/actions/workflows/python-app.yml
@@ -42,6 +49,7 @@ License-File: LICENSE.txt
42
49
  .. image:: https://readthedocs.org/projects/gitlabber/badge/?version=latest&style=plastic
43
50
  :target: https://gitlabber.readthedocs.io/en/latest/README.html
44
51
 
52
+
45
53
  Gitlabber
46
54
  =========
47
55
 
@@ -111,62 +119,61 @@ Usage
111
119
 
112
120
  .. code-block:: bash
113
121
 
114
- usage: gitlabber [-h] [-t token] [-u url] [--verbose] [-p] [-d]
115
- [--print-format {json,yaml,tree}] [-m {ssh,https}] [-i csv]
116
- [-x csv] [--version] [-g {id,full_path,full_name}]
117
- [dest]
118
-
119
- Gitlabber - clones or pulls entire groups/projects tree from GitLab
122
+ usage: gitlabber [-h] [-t token] [-T] [-u url] [--verbose] [-p] [--print-format {json,yaml,tree}] [-n {name,path}] [-m {ssh,http}] [-a {include,exclude,only}] [-i csv] [-x csv] [-r] [-F] [-d] [-s] [--version]
123
+ [dest]
120
124
 
125
+ Gitlabber - clones or pulls entire groups/projects tree from gitlab
126
+
121
127
  positional arguments:
122
- dest destination path for the cloned tree (created if doesn't exist)
123
-
124
- optional arguments:
125
- -h, --help show this help message and exit
126
- -t token, --token token
128
+ dest destination path for the cloned tree (created if doesn't exist)
129
+
130
+ options:
131
+ -h, --help show this help message and exit
132
+ -t token, --token token
127
133
  gitlab personal access token https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
128
- -u url, --url url base gitlab url (e.g.: 'http://gitlab.mycompany.com')
129
- --verbose print more verbose output
130
- -p, --print print the tree without cloning
131
- --print-format {json,yaml,tree}
134
+ -T, --hide-token use an inline URL token (avoids storing the gitlab personal access token in the .git/config)
135
+ -u url, --url url base gitlab url (e.g.: 'http://gitlab.mycompany.com')
136
+ --verbose print more verbose output
137
+ -p, --print print the tree without cloning
138
+ --print-format {json,yaml,tree}
132
139
  print format (default: 'tree')
133
- -n {name,path}, --naming {name,path}
134
- the folder naming strategy for projects (default: "name")
135
- -m {ssh,http}, --method {ssh,http}
140
+ -n {name,path}, --naming {name,path}
141
+ the folder naming strategy for projects from the gitlab API attributes (default: "name")
142
+ -m {ssh,http}, --method {ssh,http}
136
143
  the git transport method to use for cloning (default: "ssh")
137
- -a {include,exclude,only}, --archived {include,exclude,only}
144
+ -a {include,exclude,only}, --archived {include,exclude,only}
138
145
  include archived projects and groups in the results (default: "include")
139
- -i csv, --include csv
146
+ -i csv, --include csv
140
147
  comma delimited list of glob patterns of paths to projects or groups to clone/pull
141
- -x csv, --exclude csv
148
+ -x csv, --exclude csv
142
149
  comma delimited list of glob patterns of paths to projects or groups to exclude from clone/pull
143
- -r, --recursive clone/pull git submodules recursively
144
- -T, --hide-token hide the token from the gitlab request URL (for method: http)
145
- -f, --use-fetch clone/fetch git repository (mirrored repositories)
146
- -s, --include-shared include shared projects in the results
147
- --version print the version
148
-
150
+ -r, --recursive clone/pull git submodules recursively
151
+ -F, --use-fetch clone/fetch git repository (mirrored repositories)
152
+ -d, --dont-checkout don't checkout pulled git repository
153
+ -s, --include-shared include shared projects in the results
154
+ --version print the version
155
+
149
156
  examples:
150
-
151
- clone an entire gitlab tree using a base url and a token:
152
- gitlabber -t <personal access token> -u <gitlab url> .
153
-
154
- # the following examples assume you provided token/url in environment variables so these arguments are omitted
157
+
158
+ clone an entire gitlab tree using a url and a token:
159
+ gitlabber -t <personal access token> -u <gitlab url>
160
+
155
161
  only print the gitlab tree:
156
162
  gitlabber -p .
157
-
163
+
158
164
  clone only projects under subgroup 'MySubGroup' to location '~/GitlabRoot':
159
165
  gitlabber -i '/MyGroup/MySubGroup**' ~/GitlabRoot
160
-
166
+
161
167
  clone only projects under group 'MyGroup' excluding any projects under subgroup 'MySubGroup':
162
168
  gitlabber -i '/MyGroup**' -x '/MyGroup/MySubGroup**' .
163
-
169
+
164
170
  clone an entire gitlab tree except projects under groups named 'ArchiveGroup':
165
171
  gitlabber -x '/ArchiveGroup**' .
166
-
172
+
167
173
  clone projects that start with a case insensitive 'w' using a regular expression:
168
174
  gitlabber -i '/{[w].*}' .
169
175
 
176
+
170
177
  Debugging
171
178
  ---------
172
179
  * You can use the `--verbose` flag to print Gitlabber debug messages
@@ -16,6 +16,7 @@
16
16
  .. image:: https://readthedocs.org/projects/gitlabber/badge/?version=latest&style=plastic
17
17
  :target: https://gitlabber.readthedocs.io/en/latest/README.html
18
18
 
19
+
19
20
  Gitlabber
20
21
  =========
21
22
 
@@ -85,62 +86,61 @@ Usage
85
86
 
86
87
  .. code-block:: bash
87
88
 
88
- usage: gitlabber [-h] [-t token] [-u url] [--verbose] [-p] [-d]
89
- [--print-format {json,yaml,tree}] [-m {ssh,https}] [-i csv]
90
- [-x csv] [--version] [-g {id,full_path,full_name}]
91
- [dest]
92
-
93
- Gitlabber - clones or pulls entire groups/projects tree from GitLab
89
+ usage: gitlabber [-h] [-t token] [-T] [-u url] [--verbose] [-p] [--print-format {json,yaml,tree}] [-n {name,path}] [-m {ssh,http}] [-a {include,exclude,only}] [-i csv] [-x csv] [-r] [-F] [-d] [-s] [--version]
90
+ [dest]
94
91
 
92
+ Gitlabber - clones or pulls entire groups/projects tree from gitlab
93
+
95
94
  positional arguments:
96
- dest destination path for the cloned tree (created if doesn't exist)
97
-
98
- optional arguments:
99
- -h, --help show this help message and exit
100
- -t token, --token token
95
+ dest destination path for the cloned tree (created if doesn't exist)
96
+
97
+ options:
98
+ -h, --help show this help message and exit
99
+ -t token, --token token
101
100
  gitlab personal access token https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
102
- -u url, --url url base gitlab url (e.g.: 'http://gitlab.mycompany.com')
103
- --verbose print more verbose output
104
- -p, --print print the tree without cloning
105
- --print-format {json,yaml,tree}
101
+ -T, --hide-token use an inline URL token (avoids storing the gitlab personal access token in the .git/config)
102
+ -u url, --url url base gitlab url (e.g.: 'http://gitlab.mycompany.com')
103
+ --verbose print more verbose output
104
+ -p, --print print the tree without cloning
105
+ --print-format {json,yaml,tree}
106
106
  print format (default: 'tree')
107
- -n {name,path}, --naming {name,path}
108
- the folder naming strategy for projects (default: "name")
109
- -m {ssh,http}, --method {ssh,http}
107
+ -n {name,path}, --naming {name,path}
108
+ the folder naming strategy for projects from the gitlab API attributes (default: "name")
109
+ -m {ssh,http}, --method {ssh,http}
110
110
  the git transport method to use for cloning (default: "ssh")
111
- -a {include,exclude,only}, --archived {include,exclude,only}
111
+ -a {include,exclude,only}, --archived {include,exclude,only}
112
112
  include archived projects and groups in the results (default: "include")
113
- -i csv, --include csv
113
+ -i csv, --include csv
114
114
  comma delimited list of glob patterns of paths to projects or groups to clone/pull
115
- -x csv, --exclude csv
115
+ -x csv, --exclude csv
116
116
  comma delimited list of glob patterns of paths to projects or groups to exclude from clone/pull
117
- -r, --recursive clone/pull git submodules recursively
118
- -T, --hide-token hide the token from the gitlab request URL (for method: http)
119
- -f, --use-fetch clone/fetch git repository (mirrored repositories)
120
- -s, --include-shared include shared projects in the results
121
- --version print the version
122
-
117
+ -r, --recursive clone/pull git submodules recursively
118
+ -F, --use-fetch clone/fetch git repository (mirrored repositories)
119
+ -d, --dont-checkout don't checkout pulled git repository
120
+ -s, --include-shared include shared projects in the results
121
+ --version print the version
122
+
123
123
  examples:
124
-
125
- clone an entire gitlab tree using a base url and a token:
126
- gitlabber -t <personal access token> -u <gitlab url> .
127
-
128
- # the following examples assume you provided token/url in environment variables so these arguments are omitted
124
+
125
+ clone an entire gitlab tree using a url and a token:
126
+ gitlabber -t <personal access token> -u <gitlab url>
127
+
129
128
  only print the gitlab tree:
130
129
  gitlabber -p .
131
-
130
+
132
131
  clone only projects under subgroup 'MySubGroup' to location '~/GitlabRoot':
133
132
  gitlabber -i '/MyGroup/MySubGroup**' ~/GitlabRoot
134
-
133
+
135
134
  clone only projects under group 'MyGroup' excluding any projects under subgroup 'MySubGroup':
136
135
  gitlabber -i '/MyGroup**' -x '/MyGroup/MySubGroup**' .
137
-
136
+
138
137
  clone an entire gitlab tree except projects under groups named 'ArchiveGroup':
139
138
  gitlabber -x '/ArchiveGroup**' .
140
-
139
+
141
140
  clone projects that start with a case insensitive 'w' using a regular expression:
142
141
  gitlabber -i '/{[w].*}' .
143
142
 
143
+
144
144
  Debugging
145
145
  ---------
146
146
  * You can use the `--verbose` flag to print Gitlabber debug messages
@@ -0,0 +1 @@
1
+ __version__ = '1.2.2'
@@ -55,9 +55,8 @@ class GitlabTree:
55
55
  '''
56
56
  if self.includes is not None:
57
57
  for include in self.includes:
58
+ log.debug(f"Checking requested include: {include} with path: {node.root_path}, match {globre.match(include, node.root_path)}")
58
59
  if globre.match(include, node.root_path):
59
- log.debug(
60
- "Matched include path [%s] to node [%s]", include, node.root_path)
61
60
  return True
62
61
  else:
63
62
  return True
@@ -70,10 +69,10 @@ class GitlabTree:
70
69
  '''
71
70
  if self.excludes is not None:
72
71
  for exclude in self.excludes:
72
+ log.debug(f"Checking requested exclude: {exclude} with path: {node.root_path}, match {globre.match(exclude, node.root_path)}")
73
73
  if globre.match(exclude, node.root_path):
74
- log.debug(
75
- "Matched exclude path [%s] to node [%s]", exclude, node.root_path)
76
74
  return True
75
+
77
76
  return False
78
77
 
79
78
  def filter_tree(self, parent):
@@ -122,7 +121,7 @@ class GitlabTree:
122
121
  log.error(f"Error getting projects on {group.name} (ID: {group.id}): {error} )")
123
122
 
124
123
  def get_subgroups(self, group, parent):
125
- subgroups = group.subgroups.list(as_list=False, archived=self.archived)
124
+ subgroups = group.subgroups.list(as_list=False, archived=self.archived, get_all=True)
126
125
  self.progress.update_progress_length(len(subgroups))
127
126
  for subgroup_def in subgroups:
128
127
  try:
@@ -139,10 +138,8 @@ class GitlabTree:
139
138
  else:
140
139
  raise error
141
140
 
142
-
143
-
144
141
  def load_gitlab_tree(self):
145
- groups = self.gitlab.groups.list(as_list=False, archived=self.archived)
142
+ groups = self.gitlab.groups.list(as_list=False, archived=self.archived, get_all=True)
146
143
  self.progress.init_progress(len(groups))
147
144
  for group in groups:
148
145
  if group.parent_id is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gitlabber
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: A Gitlab clone/pull utility for backing up or cloning Gitlab groups
5
5
  Home-page: https://github.com/ezbz/gitlabber
6
6
  Download-URL: https://github.com/ezbz/gitlabber/archive/master.zip
@@ -23,6 +23,13 @@ Classifier: Programming Language :: Python :: 3.12
23
23
  Requires-Python: >=3
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE.txt
26
+ Requires-Dist: docopt
27
+ Requires-Dist: anytree
28
+ Requires-Dist: globre
29
+ Requires-Dist: pyyaml
30
+ Requires-Dist: tqdm
31
+ Requires-Dist: GitPython
32
+ Requires-Dist: python-gitlab
26
33
 
27
34
  .. image:: https://github.com/ezbz/gitlabber/actions/workflows/python-app.yml/badge.svg?branch=master
28
35
  :target: https://github.com/ezbz/gitlabber/actions/workflows/python-app.yml
@@ -42,6 +49,7 @@ License-File: LICENSE.txt
42
49
  .. image:: https://readthedocs.org/projects/gitlabber/badge/?version=latest&style=plastic
43
50
  :target: https://gitlabber.readthedocs.io/en/latest/README.html
44
51
 
52
+
45
53
  Gitlabber
46
54
  =========
47
55
 
@@ -111,62 +119,61 @@ Usage
111
119
 
112
120
  .. code-block:: bash
113
121
 
114
- usage: gitlabber [-h] [-t token] [-u url] [--verbose] [-p] [-d]
115
- [--print-format {json,yaml,tree}] [-m {ssh,https}] [-i csv]
116
- [-x csv] [--version] [-g {id,full_path,full_name}]
117
- [dest]
118
-
119
- Gitlabber - clones or pulls entire groups/projects tree from GitLab
122
+ usage: gitlabber [-h] [-t token] [-T] [-u url] [--verbose] [-p] [--print-format {json,yaml,tree}] [-n {name,path}] [-m {ssh,http}] [-a {include,exclude,only}] [-i csv] [-x csv] [-r] [-F] [-d] [-s] [--version]
123
+ [dest]
120
124
 
125
+ Gitlabber - clones or pulls entire groups/projects tree from gitlab
126
+
121
127
  positional arguments:
122
- dest destination path for the cloned tree (created if doesn't exist)
123
-
124
- optional arguments:
125
- -h, --help show this help message and exit
126
- -t token, --token token
128
+ dest destination path for the cloned tree (created if doesn't exist)
129
+
130
+ options:
131
+ -h, --help show this help message and exit
132
+ -t token, --token token
127
133
  gitlab personal access token https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
128
- -u url, --url url base gitlab url (e.g.: 'http://gitlab.mycompany.com')
129
- --verbose print more verbose output
130
- -p, --print print the tree without cloning
131
- --print-format {json,yaml,tree}
134
+ -T, --hide-token use an inline URL token (avoids storing the gitlab personal access token in the .git/config)
135
+ -u url, --url url base gitlab url (e.g.: 'http://gitlab.mycompany.com')
136
+ --verbose print more verbose output
137
+ -p, --print print the tree without cloning
138
+ --print-format {json,yaml,tree}
132
139
  print format (default: 'tree')
133
- -n {name,path}, --naming {name,path}
134
- the folder naming strategy for projects (default: "name")
135
- -m {ssh,http}, --method {ssh,http}
140
+ -n {name,path}, --naming {name,path}
141
+ the folder naming strategy for projects from the gitlab API attributes (default: "name")
142
+ -m {ssh,http}, --method {ssh,http}
136
143
  the git transport method to use for cloning (default: "ssh")
137
- -a {include,exclude,only}, --archived {include,exclude,only}
144
+ -a {include,exclude,only}, --archived {include,exclude,only}
138
145
  include archived projects and groups in the results (default: "include")
139
- -i csv, --include csv
146
+ -i csv, --include csv
140
147
  comma delimited list of glob patterns of paths to projects or groups to clone/pull
141
- -x csv, --exclude csv
148
+ -x csv, --exclude csv
142
149
  comma delimited list of glob patterns of paths to projects or groups to exclude from clone/pull
143
- -r, --recursive clone/pull git submodules recursively
144
- -T, --hide-token hide the token from the gitlab request URL (for method: http)
145
- -f, --use-fetch clone/fetch git repository (mirrored repositories)
146
- -s, --include-shared include shared projects in the results
147
- --version print the version
148
-
150
+ -r, --recursive clone/pull git submodules recursively
151
+ -F, --use-fetch clone/fetch git repository (mirrored repositories)
152
+ -d, --dont-checkout don't checkout pulled git repository
153
+ -s, --include-shared include shared projects in the results
154
+ --version print the version
155
+
149
156
  examples:
150
-
151
- clone an entire gitlab tree using a base url and a token:
152
- gitlabber -t <personal access token> -u <gitlab url> .
153
-
154
- # the following examples assume you provided token/url in environment variables so these arguments are omitted
157
+
158
+ clone an entire gitlab tree using a url and a token:
159
+ gitlabber -t <personal access token> -u <gitlab url>
160
+
155
161
  only print the gitlab tree:
156
162
  gitlabber -p .
157
-
163
+
158
164
  clone only projects under subgroup 'MySubGroup' to location '~/GitlabRoot':
159
165
  gitlabber -i '/MyGroup/MySubGroup**' ~/GitlabRoot
160
-
166
+
161
167
  clone only projects under group 'MyGroup' excluding any projects under subgroup 'MySubGroup':
162
168
  gitlabber -i '/MyGroup**' -x '/MyGroup/MySubGroup**' .
163
-
169
+
164
170
  clone an entire gitlab tree except projects under groups named 'ArchiveGroup':
165
171
  gitlabber -x '/ArchiveGroup**' .
166
-
172
+
167
173
  clone projects that start with a case insensitive 'w' using a regular expression:
168
174
  gitlabber -i '/{[w].*}' .
169
175
 
176
+
170
177
  Debugging
171
178
  ---------
172
179
  * You can use the `--verbose` flag to print Gitlabber debug messages
@@ -1 +0,0 @@
1
- __version__ = '1.2.1'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes