Downloads remote repositories (GitHub, GitLab, BitBucket) based on a JSON file.
The program takes a JSON file that defines the repositories to be cloned. Use repos.json as a template.
Here's a template example:
[
{
"folder": "autogit",
"url": "https://github.com/costa86/autogit.git"
},
{
"folder": "coppy",
"url": "https://github.com/costa86/coppy.git"
}
]
No installation required. Just run the executable providing the required arguments.
OS | Executable |
---|---|
Windows | repo-download-windows.exe |
Linux | repo-download-linux |
MacOS | repo-download-darwin |
Run it with -help
./repo-download-linux -help
Output
Usage of ./repo-download-linux:
-file string
JSON file with repositories (default "repos.json")
-password string
password (case authentication is required)
-username string
username (case authentication is required)
Option 1: file
This is an option when no credentials are required
./repo-download-linux -file <json_file>
Option 2: file + username
In this case, the user will be prompted for a password (***)
./repo-download-linux -file <json_file> -username <username>
Option 3: file + username + password
This option is more suitable for CI/CD pipelines, where the password can be passed via some mechanism that manages sensitive variables, such as Jenkins.
./repo-download-linux -file <json_file> -usename <username> -password <password>
It clones each repository into the specified local folder.
The program was built in Go, which takes advantage of the Goroutines to clone repositories concurrently. This maximizes throughput by cloning them simultaneously.
Will generate the executables for Windows, Linux and MacOS
Requirements:
- Go (check version in go.mod)
- Make
Command:
make build