Git fetcher 
[!NOTE]
WIP: this tool is usable but its API may change in breaking ways.
A lightweight CLI to create local copies of remote repositories.
Highlights:
- Simple file-based configuration
gitweb-compatible local repositories
- Automation-friendly, including secret handling
Quickstart
go install github.com/mtth/gitfetcher
Sample configuration in txtpb format:
# .gitfetcher
github {
# Sync any public repository by name.
sources { name: "golang/go" }
sources { name: "nodejs/node" }
# Sync repositories available to a given authentication token. This is useful
# for example to sync all your personal repos.
sources {
auth {
# A token with read access to repositories is required. It can either be
# specified inline or via an environment variable (prefixing it with `$`).
token: "$GITHUB_TOKEN"
# Forks are excluded by default and can be included using via this option.
# include_forks: true
# It's also possible to filter by repository name by specifying one or
# more filters, optionally including wildcards. A repository will be
# synced if it matches at least one.
# filters: "user/*"
# filters: "user/prefix*"
}
}
# More sources...
}
Then run gitfetcher sync . in the folder containing the above configuration.