cob-cli 2.33.1 → 2.34.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.
package/bin/cob-cli.js CHANGED
@@ -5,6 +5,7 @@ require("./handleAutoComplete");
5
5
 
6
6
  const program = require('commander');
7
7
 
8
+ const getRepos = require("../lib/commands/getRepos");
8
9
  const init = require("../lib/commands/init");
9
10
  const customize = require("../lib/commands/customize");
10
11
  const test = require("../lib/commands/test");
@@ -20,6 +21,12 @@ program
20
21
  .option('--setup','add autocomplete to system profiles')
21
22
  .option('--cleanup', 'remove autocomplete from system profiles')
22
23
 
24
+ program
25
+ .command('getRepos')
26
+ .description('clone (or update) all cob accessible repositories on gitlab,')
27
+ .arguments('<token>', 'private token for gitlab (whit api read permission)')
28
+ .action( getRepos );
29
+
23
30
  program
24
31
  .command('init')
25
32
  .usage("<servername>")
@@ -0,0 +1,40 @@
1
+ const colors = require("colors");
2
+ const path = require("path");
3
+ const axios = require("axios");
4
+ const git = require("simple-git");
5
+ const fs = require("fs-extra");
6
+
7
+ async function getRepos(token) {
8
+ console.log("Clone/update all accessible repos ...");
9
+
10
+ try {
11
+ const response = await axios.get( "https://gitlab.com/api/v4/projects?membership=true\&private_token="+token+"\&search=server_", { headers: { Accept: "application/json", "Accept-Encoding": "identity" } } )
12
+ serverRepos = response.data
13
+ if (serverRepos.length == 0) throw new Error("\nError: ".red + " no server repo found\n");
14
+
15
+
16
+ const baseDir = process.cwd();
17
+
18
+ for (const serverRepo of serverRepos) {
19
+ if (!fs.existsSync(path.resolve(".",serverRepo.name))) {
20
+ console.log(" git clone " + serverRepo.ssh_url_to_repo);
21
+ await git().clone(serverRepo.ssh_url_to_repo);
22
+
23
+ } else {
24
+ console.log(" git pull " + serverRepo.ssh_url_to_repo);
25
+ process.chdir(serverRepo.name);
26
+ try {
27
+ await git().pull();
28
+ } catch (error) {
29
+ console.warn("Warning: ",serverRepo.name," -> ",error)
30
+ }
31
+ process.chdir(baseDir);
32
+ }
33
+ }
34
+
35
+ console.log( colors.green("\nDone"));
36
+ } catch (err) {
37
+ console.error("\n", err.message);
38
+ }
39
+ }
40
+ module.exports = getRepos;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cob-cli",
3
- "version": "2.33.1",
3
+ "version": "2.34.0",
4
4
  "description": "A command line utility to help Cult of Bits partners develop with higher speed and reusing common code and best practices.",
5
5
  "preferGlobal": true,
6
6
  "repository": {