# GitHub Copilot [![Build Status](https://travis-ci.org/jasonrudolph/github-copilot.svg?branch=master)](https://travis-ci.org/jasonrudolph/github-copilot) [![Coverage Status](https://coveralls.io/repos/github/jasonrudolph/github-copilot/badge.svg?branch=master)](https://coveralls.io/github/jasonrudolph/github-copilot?branch=master) [![npm version](https://badge.fury.io/js/github-copilot.svg)](https://badge.fury.io/js/github-copilot) [![Dependency Status](https://david-dm.org/jasonrudolph/github-copilot.svg)](https://david-dm.org/jasonrudolph/github-copilot) [![devDependency Status](https://david-dm.org/jasonrudolph/github-copilot/dev-status.svg)](https://david-dm.org/jasonrudolph/github-copilot#info=devDependencies) GitHub Copilot is a command line tool to help you manage your GitHub repositories. It makes it easy to create, delete, and manage your projects. ## Installation ``` npm install -g github-copilot ``` ## Usage ``` github-copilot [global options] command [command options] [arguments...] ``` ### Commands * [`init`](#init) * [`add`](#add) * [`list`](#list) * [`open`](#open) * [`remove`](#remove) * [`rename`](#rename) * [`status`](#status) * [`sync`](#sync) * [`version`](#version) * [`help`](#help) ### Global Options * `-h, --help` - Output usage information * `-V, --version` - Output the version number * `-v, --verbose` - Output extra logging information * `-p, --project ` - Specify a project to operate on * `-c, --config ` - Specify a config file to use * `-r, --repository ` - Specify a repository to operate on * `-q, --quiet` - Do not output any messages * `-d, --debug` - Output debugging messages * `-f, --force` - Force a command to run, even if it is not safe * `-l, --log ` - Output logging information to a file * `-L, --loglevel ` - Set the log level (debug, info, warn, error, or fatal) * `--loglevel-only ` - Set the log level, but do not output to the console * `--log-timestamp` - Output a timestamp for every log line * `--log-color` - Output log lines in color * `--log-color-only ` - Output log lines in color, but do not output to the console * `--log-format ` - Output log lines using the given format * `--log-format-only ` - Output log lines using the given format, but do not output to the console * `--log-file ` - Output logging information to a file * `--log-file-only ` - Output logging information to a file, but do not output to the console ### Init Create a new project in the current directory. This command will create a directory named `.github` in the current directory, and create a `.gitignore` file. ``` github-copilot init [global options] ``` ### Add Add a new repository to the current project. ``` github-copilot add [global options] ``` ### List List the repositories in the current project. ``` github-copilot list [global options] ``` ### Open Open the current project in your default editor. ``` github-copilot open [global options] ``` ### Remove Remove a repository from the current project. ``` github-copilot remove [global options] ``` ### Rename Rename a repository in the current project. ``` github-copilot rename [global options] ``` ### Status Display the status of the current project. ``` github-copilot status [global options] ``` ### Sync Synchronize the current project with the remote repositories. ``` github-copilot sync [global options] ``` ### Version Output the current version of GitHub Copilot. ``` github-copilot version [global options] ``` ### Help Output the help information for GitHub Copilot. ``` github-copilot help [command] [command options] ``` ## Configuration GitHub Copilot uses a `.github` directory in the current directory to store project information. The configuration file is called `config.json`, and is located in the `.github` directory. The configuration file is a JSON file, and should contain the following information: * `name` - The name of the project. This will be used as the name of the repository. * `description` - A description of the project. * `homepage` - The URL of the project's homepage. * `keywords` - A list of keywords to use when searching for the project. * `license` - The license for the project. * `author` - The name of the project's author. * `repository` - The URL of the project's repository. * `repositoryType` - The type of repository to use. [`git`](#git), [`hg`](#hg), [`svn`](#svn), or [`bzr`](#bzr). * `repositoryPath` - The path to the repository. * `repositoryUsername` - The username used to access the repository. * `repositoryPassword` - The password used to access the repository. * `repositoryToken` - A token used to access the repository. * `repositoryPrivate` - Whether the repository is private. * `repositoryBranches` - A list of branches to sync. * `repositoryTags` - A list of tags to sync. * `repositoryHosts` - A list of hosts to sync. * `repositoryExcludes` - A list of files and directories to exclude from the repository. * `repositoryExcludesPatterns` - A list of exclude patterns to use when excluding files and directories. * `repositoryExcludesIgnore` - Whether or not to ignore the exclude patterns when syncing. * `repositoryExcludesForce` - Whether or not to force the exclude patterns when syncing. * `repositoryExcludesIgnorePatterns` - A list of ignore patterns to use when excluding files and directories. * `repositoryExcludesForcePatterns` - A list of force patterns to use when excluding files and directories. * `repositoryExcludesIgnorePatternsForce` - Whether or not to ignore the ignore patterns when syncing. * `repositoryExcludesForcePatternsForce` - Whether or not to force the force patterns when syncing. ## Examples ### Creating a new project ``` github-copilot init ``` ### Adding a new repository ``` github-copilot add ``` ### Listing the repositories in the current project ``` github-copilot list ``` ### Opening the current project in your default editor ``` github-copilot open ``` ## Contributing See the [contributing guide](CONTRIBUTING.md). ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details. ## Maintainers * [@mattbostock](https://github.com/mattbostock) * [@joshbuchea](https://github.com/joshbuchea) * [@felixzapata](https://github.com/felixzapata) * [@jhgg](https://github.com/jhgg) * [@jbranchaud](https://github.com/jbranchaud) * [@davidkpiano](https://github.com/davidkpiano) * [@jakebarnes](https://github.com/jakebarnes) * [@mattfarina](https://github.com/mattfarina) * [@matthew-andrews](https://github.com/matthew-andrews) * [@jamesjones](https://github.com/jamesjones) * [@jeffmatthews](https://github.com/jeffmatthews) ## Credits * [GitHub](https://github.com/) * [GitHub API](https://developer.github.com/) * [Bower](http://bower.io/) * [Node](http://nodejs.org/) * [NPM](https://npmjs.org/) * [Grunt](http://gruntjs.com/) * [Gulp](http://gulpjs.com/) * [Mocha](http://mochajs.org/) * [Chai](http://chaijs.com/) * [Sinon](http://sinonjs.org/) * [JSHint](http://www.jshint.com/) * [JSCS](http://jscs.info/) * [EditorConfig](http://editorconfig.org/) * [JSON Lint](http://jsonlint.com/) * [JSON Lint Report](http://jsonlintreport.com/) * [HTMLHint](http://htmlhint.com/) * [HTMLHint Report](http://htmlhintreport.com/) * [HTML Validator](http://validator.w3.org/) * [CSS Lint](http://csslint.net/) * [CSS Lint Report](http://csslintreport.com/) * [CSS Validator](http://jigsaw.w3.org/css-validator/) * [HTML Validator](http://validator.w3.org/) * [SVN](http://subversion.apache.org/) * [BZR](http://bazaar-vcs.org/) * [Git](http://git-scm.com/) * [GitHub Desktop](https://desktop.github.com/) * [Atom](https://atom.io/) * [Sublime Text](http://www.sublimetext.com/) * [Visual Studio Code](https://code.visualstudio.com/) * [Brackets](http://brackets.io/) * [Notepad++](http://notepad-plus-plus.org/) * [Eclipse](http://www.eclipse.org/) * [TextMate](http://macromates.com/) ## Changelog See the [changelog](CHANGELOG.md) for a full list of changes.