Index: third_party/gsutil/third_party/oauth2client/CONTRIBUTING.md |
diff --git a/third_party/gsutil/third_party/oauth2client/CONTRIBUTING.md b/third_party/gsutil/third_party/oauth2client/CONTRIBUTING.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2e9b3cc15d9407b3a8868b102f80f64d198fa394 |
--- /dev/null |
+++ b/third_party/gsutil/third_party/oauth2client/CONTRIBUTING.md |
@@ -0,0 +1,155 @@ |
+Contributing |
+============ |
+ |
+1. **Please sign one of the contributor license agreements below.** |
+1. Fork the repo, develop and test your code changes, add docs. |
+1. Make sure that your commit messages clearly describe the changes. |
+1. Send a pull request. |
+ |
+Here are some guidelines for hacking on `oauth2client`. |
+ |
+Using a Development Checkout |
+---------------------------- |
+ |
+You’ll have to create a development environment to hack on |
+`oauth2client`, using a Git checkout: |
+ |
+- While logged into your GitHub account, navigate to the `oauth2client` |
+ [repo][1] on GitHub. |
+- Fork and clone the `oauth2client` repository to your GitHub account |
+ by clicking the "Fork" button. |
+- Clone your fork of `oauth2client` from your GitHub account to your |
+ local computer, substituting your account username and specifying |
+ the destination as `hack-on-oauth2client`. For example: |
+ |
+ ```bash |
+ $ cd ${HOME} |
+ $ git clone git@github.com:USERNAME/oauth2client.git hack-on-oauth2client |
+ $ cd hack-on-oauth2client |
+ $ # Configure remotes such that you can pull changes from the oauth2client |
+ $ # repository into your local repository. |
+ $ git remote add upstream https://github.com:google/oauth2client |
+ $ # fetch and merge changes from upstream into master |
+ $ git fetch upstream |
+ $ git merge upstream/master |
+ ``` |
+ |
+Now your local repo is set up such that you will push changes to your |
+GitHub repo, from which you can submit a pull request. |
+ |
+- Create a virtualenv in which to install `oauth2client`: |
+ |
+ ```bash |
+ $ cd ~/hack-on-oauth2client |
+ $ virtualenv -ppython2.7 env |
+ ``` |
+ |
+ Note that very old versions of virtualenv (virtualenv versions |
+ below, say, 1.10 or thereabouts) require you to pass a |
+ `--no-site-packages` flag to get a completely isolated environment. |
+ |
+ You can choose which Python version you want to use by passing a |
+ `-p` flag to `virtualenv`. For example, `virtualenv -ppython2.7` |
+ chooses the Python 2.7 interpreter to be installed. |
+ |
+ From here on in within these instructions, the |
+ `~/hack-on-oauth2client/env` virtual environment you created above will be |
+ referred to as `$VENV`. To use the instructions in the steps that |
+ follow literally, use the `export VENV=~/hack-on-oauth2client/env` |
+ command. |
+ |
+- Install `oauth2client` from the checkout into the virtualenv using |
+ `setup.py develop`. Running `setup.py develop` **must** be done while |
+ the current working directory is the `oauth2client` checkout |
+ directory: |
+ |
+ ```bash |
+ $ cd ~/hack-on-oauth2client |
+ $ $VENV/bin/python setup.py develop |
+ ``` |
+ |
+Running Tests |
+-------------- |
+ |
+- To run all tests for `oauth2client` on a single Python version, run |
+ `nosetests` from your development virtualenv (See |
+ **Using a Development Checkout** above). |
+ |
+- To run the full set of `oauth2client` tests on all platforms, install |
+ [`tox`][2] into a system Python. The `tox` console script will be |
+ installed into the scripts location for that Python. While in the |
+ `oauth2client` checkout root directory (it contains `tox.ini`), |
+ invoke the `tox` console script. This will read the `tox.ini` file and |
+ execute the tests on multiple Python versions and platforms; while it runs, |
+ it creates a virtualenv for each version/platform combination. For |
+ example: |
+ |
+ ```bash |
+ $ sudo pip install tox |
+ $ cd ~/hack-on-oauth2client |
+ $ tox |
+ ``` |
+ |
+Running System Tests |
+-------------------- |
+ |
+- To run system tests you can execute: |
+ |
+ ```bash |
+ $ tox -e system-tests |
+ $ tox -e system-tests3 |
+ ``` |
+ |
+ This alone will not run the tests. You'll need to change some local |
+ auth settings and download some service account configuration files |
+ from your project to run all the tests. |
+ |
+- System tests will be run against an actual project and so you'll need to |
+ provide some environment variables to facilitate this. |
+ |
+ - `OAUTH2CLIENT_TEST_JSON_KEY_PATH`: The path to a service account JSON |
+ key file; see `tests/data/gcloud/application_default_credentials.json` |
+ as an example. Such a file can be downloaded directly from the |
+ developer's console by clicking "Generate new JSON key". See private |
+ key [docs][3] for more details. |
+ - `OAUTH2CLIENT_TEST_P12_KEY_PATH`: The path to a service account |
+ P12/PKCS12 key file. You can download this in the same way as a JSON |
+ key, just select "P12 Key" as your "Key type" when downloading. |
+ - `OAUTH2CLIENT_TEST_P12_KEY_EMAIL`: The service account email |
+ corresponding to the P12/PKCS12 key file. |
+ - `OAUTH2CLIENT_TEST_USER_KEY_PATH`: The path to a JSON key file for a |
+ user. If this is not set, the file created by running |
+ `gcloud auth login` will be used. See |
+ `tests/data/gcloud/application_default_credentials_authorized_user.json` |
+ for an example. |
+ - `OAUTH2CLIENT_TEST_USER_KEY_EMAIL`: The user account email |
+ corresponding to the user JSON key file. |
+ |
+- Examples of these can be found in `scripts/local_test_setup.sample`. We |
+ recommend copying this to `scripts/local_test_setup`, editing the values |
+ and sourcing them into your environment: |
+ |
+ ```bash |
+ $ source scripts/local_test_setup |
+ ``` |
+ |
+Contributor License Agreements |
+------------------------------ |
+ |
+Before we can accept your pull requests you'll need to sign a Contributor |
+License Agreement (CLA): |
+ |
+- **If you are an individual writing original source code** and **you own |
+ the intellectual property**, then you'll need to sign an |
+ [individual CLA][4]. |
+- **If you work for a company that wants to allow you to contribute your |
+ work**, then you'll need to sign a [corporate CLA][5]. |
+ |
+You can sign these electronically (just scroll to the bottom). After that, |
+we'll be able to accept your pull requests. |
+ |
+[1]: https://github.com/google/oauth2client |
+[2]: https://tox.readthedocs.org/en/latest/ |
+[3]: https://cloud.google.com/storage/docs/authentication#generating-a-private-key |
+[4]: https://developers.google.com/open-source/cla/individual |
+[5]: https://developers.google.com/open-source/cla/corporate |