Skip to content

drewdeponte/ghsync

Repository files navigation

Ghsync - The GitHub Repository Syncronizer

Sync your github organization repos in one command. It clones missing repositories and fetches existing one. Makes joining a new organization a snap!

Installation

You can easily install ghsync with the following command:

$ gem install ghsync

Configuration

Your ghsync configuration should be saved to ~/.ghsync/config.json.

{
  "base_path": "~/dev",
  "username": "<github username>",
  "password": "<github password>",
  "organizations": [
    {
      "name": "codebreakdown",
      "exclude": [],
      "base_path": "~/dev/codebreakdown"
    }
  ],
  "repositories": [
    {
      "owner": "codebreakdown",
      "name": "ghsync"
    }
  ]
}

GitHub Authentication

Multi-Factor Authentication

Sadly, at the moment ghsync doesn't support GitHub's Multi-Factor Authentication.

OAuth

It is also lacking support for GitHub's OAuth mechanism.

HTTP Basic Auth

The HTTP Basic Auth will work as long as you don't have multi-factor authentication enabled for your account.

Personal Access Token

Personal Access Token authentication is currently supported and this is the recommended authentication mechanism to use right now. It is the only authentication mechanism you can use at the moment if you have multi-factor authentication enabled.

Simply go to your GitHub Account Settings, select Applications, click the Create new token button in the Personal Access Token section. Give it the name "GHsync" and submit. This will generate your personal access token. Then simply put your personal access token in the ~/.ghsync/config.json as your GitHub username and "x-oauth-basic" as your GitHub password.

Usage

Once you have configured ghsync as described above you can launch it by simply running the following command:

ghsync

Once it launches, it will use the information provided in the ~/.ghsync/config.json configuration file to fetch all the configured repositories and either fetch them if they exist, or clone them if they are missing.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/codebreakdown/ghsync. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

About

GitHub Repository Synchronization Tool

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published