<?php
/**
 * Copyright (c) 2016, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Christopher Guindon (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<div id="rightcolumn">
  <div class="sideitem">
    <h6>Related Links</h6>
    <ul>
      <li><a href="/legal/ECA.php">Eclipse Contributor Agreement</a> [<a
        href="/legal/ECA.html"
      >html</a>]</li>
      <li><a href="/legal/ecafaq.php">ECA FAQ</a></li>
      <li><a href="/legal/DCO.php">Developer Certificate of Origin</a> [<a
        href="/legal/DCO.html"
      >html</a>]</li>
      <li><a href="/legal/index.php">Legal resources</a></li>
      <li><a href="/legal/guidetolegaldoc.php">Guide to legal documents</a></li>
      <li><a href="/legal/index.php#Committers" class=jump>Committer Resources</a></li>
      <li><a
        href="http://wiki.eclipse.org/Development_Resources/Contributing_via_Git"
      >Contributing via Git</a></li>
    </ul>
    <p>
      To complete and submit a ECA, log into the <a href="/contribute/cla">Eclipse
        projects forge</a> (you will need to create an account with the Eclipse
      Foundation if you have not already done so); click on "Eclipse Contributor
      Agreement"; and Complete the form. Be sure to use the same email address
      when you register for the account that you intend to use when you commit
      to Git.
    </p>
  </div>
</div>