https://github.com/daniel-beard/github-folder-sync
Easy way to concurrently clone many GitHub repositories by organization name or user.
https://github.com/daniel-beard/github-folder-sync
git github haskell
Last synced: 2 months ago
JSON representation
Easy way to concurrently clone many GitHub repositories by organization name or user.
- Host: GitHub
- URL: https://github.com/daniel-beard/github-folder-sync
- Owner: daniel-beard
- License: other
- Created: 2022-04-10T19:20:37.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-27T23:38:44.000Z (over 2 years ago)
- Last Synced: 2025-02-05T01:28:01.682Z (over 1 year ago)
- Topics: git, github, haskell
- Language: Haskell
- Homepage:
- Size: 206 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
# github-folder-sync
An easy, fast way to clone many github repositories concurrently by org name, for `github.com`.
## Execute
* Run `stack run`
## Config
The configuration is specified as a [Dhall](https://learnxinyminutes.com/docs/dhall/) configuration file named `.github-folder-sync`. Either have the config in the current working directory, or override it using: `github-folder-sync --config-file /tmp/adifferentconfig`.
A minimal configuration looks like this:
```dhall
let orgConfigs = [
{ orgAPIToken = None Text
, orgName = "daniel-beard"
, ignoringOrgRepos = ["nothing"]
}
]
in { orgConfigs }
```
### Env vars
It's possible to expand env vars within a `.github-folder-sync` file by either using the built-in Dhall way:
```dhall
let orgConfigs = [
{ orgAPIToken = Some env:GITHUB_FOLDER_SYNC_API_TOKEN
, orgName = "daniel-beard"
, ignoringOrgRepos = ["nothing"]
}
]
in { orgConfigs }
```
github-folder-sync also supports a shorthand syntax within strings for the following fields:
```
- orgAPIToken
- orgName
- userName
- userAPIToken
```
For example:
```dhall
orgAPIToken = Some "$GITHUB_FOLDER_SYNC_API_TOKEN"
```