@cj-ways/orgclone 0.1.0 → 0.1.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.
- package/README.md +89 -0
- package/package.json +31 -3
package/README.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# orgclone
|
|
2
|
+
|
|
3
|
+
> Clone entire GitHub organizations or GitLab groups with one command.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@cj-ways/orgclone)
|
|
6
|
+
[](https://github.com/cj-ways/orgclone/blob/master/LICENSE)
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install -g @cj-ways/orgclone
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Clone all repos from a GitHub organization
|
|
18
|
+
orgclone clone github my-org
|
|
19
|
+
|
|
20
|
+
# Clone all repos from a GitLab group
|
|
21
|
+
orgclone clone gitlab my-group --token glpat_xxx
|
|
22
|
+
|
|
23
|
+
# Clone private repos using a token
|
|
24
|
+
orgclone clone github my-org --token ghp_xxx
|
|
25
|
+
|
|
26
|
+
# Or use environment variables
|
|
27
|
+
export GITHUB_TOKEN=ghp_xxx
|
|
28
|
+
orgclone clone github my-org
|
|
29
|
+
|
|
30
|
+
# Preview without cloning
|
|
31
|
+
orgclone clone github my-org --dry-run
|
|
32
|
+
|
|
33
|
+
# Skip archived repos
|
|
34
|
+
orgclone clone github my-org --skip-archived
|
|
35
|
+
|
|
36
|
+
# Exclude specific repos
|
|
37
|
+
orgclone clone github my-org --exclude old-repo,test-project
|
|
38
|
+
|
|
39
|
+
# Custom destination folder
|
|
40
|
+
orgclone clone github my-org --dest ~/projects/my-org
|
|
41
|
+
|
|
42
|
+
# Self-hosted GitLab
|
|
43
|
+
orgclone clone gitlab my-group --gitlab-url https://gitlab.mycompany.com
|
|
44
|
+
|
|
45
|
+
# Force SSH URLs
|
|
46
|
+
orgclone clone github my-org --ssh
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Running it again on an already-cloned folder will `git pull` all repos to keep them up to date.
|
|
50
|
+
|
|
51
|
+
## Works without a token
|
|
52
|
+
|
|
53
|
+
For **public repos**, no token is needed — orgclone uses plain `git clone` under the hood. If you're already authenticated via SSH keys or your system credential manager, private repos work too. A token embeds auth into the URL so git never prompts you.
|
|
54
|
+
|
|
55
|
+
## Config file
|
|
56
|
+
|
|
57
|
+
Run `orgclone init` to create `~/.orgclone.yml`:
|
|
58
|
+
|
|
59
|
+
```yaml
|
|
60
|
+
default_dest: ~/Desktop
|
|
61
|
+
|
|
62
|
+
github:
|
|
63
|
+
token: ghp_xxx # or set GITHUB_TOKEN env var
|
|
64
|
+
|
|
65
|
+
gitlab:
|
|
66
|
+
token: glpat_xxx
|
|
67
|
+
url: https://gitlab.com
|
|
68
|
+
|
|
69
|
+
orgs:
|
|
70
|
+
my-org:
|
|
71
|
+
exclude:
|
|
72
|
+
- old-repo
|
|
73
|
+
- legacy-stuff
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## All install methods
|
|
77
|
+
|
|
78
|
+
| Method | Command |
|
|
79
|
+
|--------|---------|
|
|
80
|
+
| npm | `npm install -g @cj-ways/orgclone` |
|
|
81
|
+
| pip | `pip install orgclone` |
|
|
82
|
+
| go | `go install github.com/cj-ways/orgclone@latest` |
|
|
83
|
+
| binary | [Download from Releases](https://github.com/cj-ways/orgclone/releases) |
|
|
84
|
+
|
|
85
|
+
## Links
|
|
86
|
+
|
|
87
|
+
- [GitHub Repository](https://github.com/cj-ways/orgclone)
|
|
88
|
+
- [Report an Issue](https://github.com/cj-ways/orgclone/issues)
|
|
89
|
+
- [Releases](https://github.com/cj-ways/orgclone/releases)
|
package/package.json
CHANGED
|
@@ -1,12 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cj-ways/orgclone",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Clone entire GitHub
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Clone entire GitHub organizations or GitLab groups with one command. Supports public and private repos, SSH, token auth, and config files.",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"author": "cj-ways",
|
|
7
|
+
"homepage": "https://github.com/cj-ways/orgclone#readme",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/cj-ways/orgclone/issues"
|
|
10
|
+
},
|
|
6
11
|
"repository": {
|
|
7
12
|
"type": "git",
|
|
8
13
|
"url": "git+https://github.com/cj-ways/orgclone.git"
|
|
9
14
|
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"github",
|
|
17
|
+
"gitlab",
|
|
18
|
+
"clone",
|
|
19
|
+
"organization",
|
|
20
|
+
"org",
|
|
21
|
+
"group",
|
|
22
|
+
"git",
|
|
23
|
+
"repos",
|
|
24
|
+
"repositories",
|
|
25
|
+
"bulk-clone",
|
|
26
|
+
"cli",
|
|
27
|
+
"devtools",
|
|
28
|
+
"github-org",
|
|
29
|
+
"gitlab-group",
|
|
30
|
+
"clone-repos",
|
|
31
|
+
"git-clone",
|
|
32
|
+
"developer-tools",
|
|
33
|
+
"automation",
|
|
34
|
+
"github-organization",
|
|
35
|
+
"sync"
|
|
36
|
+
],
|
|
10
37
|
"scripts": {
|
|
11
38
|
"postinstall": "node install.js"
|
|
12
39
|
},
|
|
@@ -15,6 +42,7 @@
|
|
|
15
42
|
},
|
|
16
43
|
"files": [
|
|
17
44
|
"bin/",
|
|
18
|
-
"install.js"
|
|
45
|
+
"install.js",
|
|
46
|
+
"README.md"
|
|
19
47
|
]
|
|
20
48
|
}
|