<commit_before># [GitHub Desktop](https://desktop.github.com)

[![Travis Build Status](https://travis-ci.com/desktop/desktop.svg?token=<PASSWORD>&branch=master)](https://travis-ci.com/desktop/desktop) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/kstdl28ba3f7drbr/branch/master?svg=true)](https://ci.appveyor.com/project/github-windows/desktop/branch/master)

See [desktop.github.com](https://desktop.github.com) for more product-oriented
information.

GitHub Desktop is an [Electron](https://electron.atom.io)-based GitHub app. It is
written in [TypeScript](http://www.typescriptlang.org) and uses [React](https://facebook.github.io/react/).

## I want to use it!

Download it [for macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin) or [for Windows](https://central.github.com/deployments/desktop/desktop/latest/win32). You'll be starting with a fresh installation, as there is no migration path from Desktop Classic to Desktop TNG:9000.

## I want to work on it!

### Prerequisites

#### Node 7+

We use some ES6+ language constructs in our build scripts so you need [Node.js](https://nodejs.org) 7+ (just pick whatever the 'current' release is at the moment). Node 7 comes with npm 4 out of the box and while npm 4 isn't strictly necessary to build it does make things more efficient, especially on Windows where deep folder hierarchies can be detrimental to build speed.

*Windows only: Make sure you allow the Node.js installer to add node to the PATH, it'll make life much easier for you. Also, make sure you're on NPM 3.10.4 or higher. You can check via `npm -v`. If not, run `npm install -g npm`*

#### node-gyp

node-gyp is required to build some of our native npm packages (such as [keytar](https://github.com/atom/node-keytar))

* Install python 2.7 ([Windows](https://www.python.org/downloads/windows/), [macOS](https://www.python.org/downloads/mac-osx/))
* **macOS:** Xcode and Xcode Command Line Tools (Xcode -> Preferences -> Downloads)
* **Windows:** Visual Studio 2015 or [Visual C++ Build Tools](http://go.microsoft.com/fwlink/?LinkId=691126)
  * Run `npm config set msvs_version 2015` after installing the build tools

*Windows only*: Let python install into the default suggested path (`c:\Python27`), don't try to move it into Program Files or else you'll have to configure node-gyp manually with the path.

#### OAuth Secret

The OAuth secret is embedded in the app at build time using the `DESKTOP_OAUTH_CLIENT_SECRET` environment variable. That secret is required to log in with a user using dev builds of the app. We recommend you [create a new OAuth](https://github.com/settings/applications/new) to use for development.

### Building

* Run `npm install` to get all required dependencies on your machine.
* Run `npm run build:dev` to make a development build of the app.
* Run `npm start` to launch the application. Changes will be compiled in the background. The app can then be reloaded to see the changes (Ctrl/Command+R).

If you've made changes to the main-process you need to run `npm run rebuild:dev` and then `npm run start` for these changes to be reflected.

#### Running tests<commit_msg>:fire: obsolete docs<commit_after># [GitHub Desktop](https://desktop.github.com)

[![Travis Build Status](https://travis-ci.com/desktop/desktop.svg?token=<PASSWORD>&branch=master)](https://travis-ci.com/desktop/desktop) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/kstdl28ba3f7drbr/branch/master?svg=true)](https://ci.appveyor.com/project/github-windows/desktop/branch/master)

See [desktop.github.com](https://desktop.github.com) for more product-oriented
information.

GitHub Desktop is an [Electron](https://electron.atom.io)-based GitHub app. It is
written in [TypeScript](http://www.typescriptlang.org) and uses [React](https://facebook.github.io/react/).

## I want to use it!

Download it [for macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin) or [for Windows](https://central.github.com/deployments/desktop/desktop/latest/win32). You'll be starting with a fresh installation, as there is no migration path from Desktop Classic to Desktop TNG:9000.

## I want to work on it!

### Prerequisites

#### Node 7+

We use some ES6+ language constructs in our build scripts so you need [Node.js](https://nodejs.org) 7+ (just pick whatever the 'current' release is at the moment). Node 7 comes with npm 4 out of the box and while npm 4 isn't strictly necessary to build it does make things more efficient, especially on Windows where deep folder hierarchies can be detrimental to build speed.

*Windows only: Make sure you allow the Node.js installer to add node to the PATH, it'll make life much easier for you. Also, make sure you're on NPM 3.10.4 or higher. You can check via `npm -v`. If not, run `npm install -g npm`*

#### node-gyp

node-gyp is required to build some of our native npm packages (such as [keytar](https://github.com/atom/node-keytar))

* Install python 2.7 ([Windows](https://www.python.org/downloads/windows/), [macOS](https://www.python.org/downloads/mac-osx/))
* **macOS:** Xcode and Xcode Command Line Tools (Xcode -> Preferences -> Downloads)
* **Windows:** Visual Studio 2015 or [Visual C++ Build Tools](http://go.microsoft.com/fwlink/?LinkId=691126)
  * Run `npm config set msvs_version 2015` after installing the build tools

*Windows only*: Let python install into the default suggested path (`c:\Python27`), don't try to move it into Program Files or else you'll have to configure node-gyp manually with the path.

### Building

* Run `npm install` to get all required dependencies on your machine.
* Run `npm run build:dev` to make a development build of the app.
* Run `npm start` to launch the application. Changes will be compiled in the background. The app can then be reloaded to see the changes (Ctrl/Command+R).

If you've made changes to the main-process you need to run `npm run rebuild:dev` and then `npm run start` for these changes to be reflected.

#### Running tests
{'fraction_non_alphanumeric': 0.1162251655629139, 'fraction_numerical': 0.012582781456953643, 'mean_word_length': 4.6247672253258845, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 29, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5461956', 'n_tokens_mistral': 1896, 'n_tokens_neox': 1736, 'n_words': 712}