<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="chrome=1">
    <title>googleapis/google-api-python-client by google</title>

    <link rel="stylesheet" href="stylesheets/styles.css">
    <link rel="stylesheet" href="stylesheets/pygment_trac.css">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
  </head>
  <body>
    <div class="wrapper">
      <header>
        <h1>Contributing to googleapis/google-api-python-client</h1>
        <p></p>

        <p class="view"><a href="https://github.com/googleapis/google-api-python-client">View the Project on GitHub <small>googleapis/google-api-python-client</small></a></p>


        <ul>
          <li><a href="https://github.com/googleapis/google-api-python-client/zipball/master">Download <strong>ZIP File</strong></a></li>
          <li><a href="https://github.com/googleapis/google-api-python-client/tarball/master">Download <strong>TAR Ball</strong></a></li>
          <li><a href="https://github.com/googleapis/google-api-python-client">View On <strong>GitHub</strong></a></li>
        </ul>
      </header>
      <section>
<h3><a name="cla" class="anchor" href="#cla"><span class="octicon octicon-link"></span></a>Contributor License Agreements</h3>

<p>
  We'd love to accept your code patches! However, before we can take them, we have to jump a couple of legal hurdles.
</p>

<p>
  Please fill out either the individual or corporate Contributor License Agreement.
</p>

<ul>
  <li>
  If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an <a href="https://developers.google.com/open-source/cla/individual">individual CLA</a>.
  </li>
  <li>
  If you work for a company that wants to allow you to contribute your work to <code>googleapis/google-api-python-client</code>, then you'll need to sign a <a href="https://developers.google.com/open-source/cla/corporate">corporate CLA</a>.
  </li>
</ul>

<p>
  Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll add you to the official list of contributors and be able to accept your patches.
</p>

<h3><a name="discuss" class="anchor" href="#discuss"><span class="octicon octicon-link"></span></a>Before writing code, file an issue</h3>

<p>
  Use the <a href="https://github.com/googleapis/google-api-python-client/issues">issue tracker</a> to start the discussion. It is possible that someone else is already working on your idea, your approach is not quite right, or that the functionality exists already. The ticket you file in the issue tracker will be used to hash that all out.
</p>

<h3><a name="fork" class="anchor" href="#fork"><span class="octicon octicon-link"></span></a>Fork googleapis/google-api-python-client</h3>

<p>
  We will use github's mechanism for forking repositories and making pull requests. Fork the repository, and make your changes in the forked repository.
</p>

<h3><a name="fork" class="anchor" href="#fork"><span class="octicon octicon-link"></span></a>Match style, include tests, and update the documentation</h3>

<p>
  <code>google-api-python-client</code> conforms to the <a href="https://google.github.io/styleguide/pyguide.html">Google Python Style Guide</a> and your contribution should as well. Be sure to add the relevant tests before making the pull request. Additionally, use <code>epydoc</code> to update the documentation. This repository includes a make target <code>docs</code> that can be used for this process.
</p>

<p>
  Follow <a href="http://chris.beams.io/posts/git-commit/#seven-rules">these guidelines</a> when authoring your commit.
</p>

<h3><a name="fork" class="anchor" href="#fork"><span class="octicon octicon-link"></span></a>Make the pull request</h3>

<p>
  Once you have made all your changes, tests, and updated the documentation, make a pull request to move everything back into the main <code>googleapis/google-api-python-client</code> repository. Title your pull request following <a href="https://www.conventionalcommits.org/">Conventional Commits</a> styling. Be sure to reference the original issue in the pull request. Expect some back-and-forth with regards to style and compliance of these rules.
</p>


      </section>
      <footer>
        <p>This project is maintained by <a href="https://github.com/googleapis">googleapis</a></p>
        <p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
      </footer>
    </div>
    <script src="javascripts/scale.fix.js"></script>
    
  </body>
</html>
