A command line tool to manage all repositories of GitHub user or organization.
$ npm install -g gitlump
Usage: gitlump [options] [command]
Commands:
create <type> <name> Initialize with creating new directory.
init <type> <name> Initialize exisiting directory.
clone Clone repositories.
pull Pull repositories.
exec Run git command.
ls Show cloned repositories.
ls-remote Show remote repositories.
Options:
-h, --help output usage information
-V, --version output the version number
$ gitlump create user <name>
$ gitlump create org <name>
After command finished, gitlump creates new directory named GitHub user or organization name, and creates .gitlump.json
file in the directory.
$ cd your-directory
$ gitlump init <type> <name>
.gitlump.json
is a config file of gitlump.
{
"endpoint": "https://api.github.com/",
"type": "user",
"name": "nabeix",
"defaultProtocol": "ssh",
"useAccessToken": false,
"repos": [],
"ignore": [],
"cloned": []
}
endpoint
GitHub API Endpoint (default https://api.github.com/)- If use GitHub Enterprise: http(s)://hostname/api/v3/
type
user|orgname
Github user or organization namedefaultProtocol
ssh|https (default ssh)useAccessToken
true|false|string (default false)- If set true, read an access token from the environment variable
GITLUMP_ACCESS_TOKEN
. - If set an environment variable name, read an access token from the variable.
- If set true, read an access token from the environment variable
repos
A list of repository specific settings (default blank)- Example:
[{"name": "my-repo", "protocol": "https", "directory": "my-repo-directory"}]
name
repository nameprotocol
(optional) used instead ofdefaultProtocol
directory
(optional) clone directory name
- Example:
ignore
A list of repository names to be ignored (default blank)cloned
A list of cloned repository names (updated automatically bygitlump clone
)
$ gitlump clone
gitlump clone
automatically clones all repositories.
$ gitlump pull
gitlump pull
runs git pull
command in all repository directories.
This is a shorthand of gitlump exec pull
.
Almost all git commands are available after gitlump exec
.
The followings are examples:
$ gitlump exec status
$ gitlump exec checkout master
$ gitlump exec commit -m "update"
An access token is needed if you have private repositories.
To use access token, set useAccessToken
in .gitlump.json
to true
.
And set your access token to the environment variable GITLUMP_ACCESS_TOKEN
.
export GITLUMP_ACCESS_TOKEN=your-access-token
If set the token to other environment variables:
"useAccessToken": "TOKEN_VARIABLE_NAME"
export TOKEN_VARIABLE_NAME=your-access-token
It is useful to use multiple access tokens.
export GITLUMP_ACCESS_TOKEN_FOR_GITHUB=github_com_token
export GITLUMP_ACCESS_TOKEN_FOR_GITHUB_ENTERPRISE=github_enterprise_token
In .gitlump.json
for github.com repositories:
"useAccessToken": "GITLUMP_ACCESS_TOKEN_FOR_GITHUB"
In .gitlump.json
for GitHub Enterprise repositories:
"useAccessToken": "GITLUMP_ACCESS_TOKEN_FOR_GITHUB_ENTERPRISE"
- Fork it ( http://github.com/nabeix/gitlump )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
MIT