Skip to content

Easy way to concurrently clone many GitHub repositories by organization name or user.

License

Notifications You must be signed in to change notification settings

daniel-beard/github-folder-sync

Repository files navigation

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 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:

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:

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:

orgAPIToken = Some "$GITHUB_FOLDER_SYNC_API_TOKEN"

About

Easy way to concurrently clone many GitHub repositories by organization name or user.

Topics

Resources

License

Stars

Watchers

Forks