api.mtr.pub Open in urlscan Pro
47.243.52.4  Malicious Activity! Public Scan

Submitted URL: http://api.mtr.pub/
Effective URL: https://api.mtr.pub/
Submission Tags: falconsandbox
Submission: On June 28 via api from US — Scanned from DE

Form analysis 2 forms found in the DOM

GET /search

<form class="js-site-search-form" role="search" aria-label="Site" data-unscoped-search-url="/search" data-turbo="false" action="/search" accept-charset="UTF-8" method="get">
  <label class="form-control input-sm header-search-wrapper p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">
    <input type="text" class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus " data-hotkey="s,/" name="q" data-test-selector="nav-search-input" placeholder="Search GitHub"
      data-unscoped-placeholder="Search GitHub" data-scoped-placeholder="Search" autocapitalize="off" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search GitHub"
      data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off">
    <input type="hidden" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" value="0lMYRxpGEcJECDa9kBQ4kszt62CZZ1ng/2TrE6/qCTU50Gof751YT97pYFui9E2epWUu8w2T2HKaa3wp16gCLg==">
    <input type="hidden" class="js-site-search-type-field" name="type">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1 header-search-key-slash">
      <path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path>
      <path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path>
    </svg>
    <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
      <ul class="d-none js-jump-to-suggestions-template-container">
        <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
          <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
      <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
      <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">
        Search
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
        </li>
      </ul>
      <ul class="d-none js-jump-to-no-results-template-container">
        <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
          <span class="color-fg-muted">No suggested jump to results</span>
        </li>
      </ul>
      <ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
        <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
          <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
      <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
      <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">
        Search
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
        </li>
        <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option">
          <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
      <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
      <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">
        Search
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
        </li>
        <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
          <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
      <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
      <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
    <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">
        Search
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
        </li>
      </ul>
    </div>
  </label>
</form>

GET /signup

<form data-turbo="false" class="mx-auto mx-md-0 col-5-max js-signup-form position-relative z-2" autocomplete="off" action="/signup" accept-charset="UTF-8" method="get">
  <div class="d-flex flex-column flex-sm-row flex-items-center">
    <dl class="col-12 my-0 pb-2 pb-sm-0 pr-0 pr-sm-2 flex-auto">
      <dt>
        <label for="user_email" class="sr-only">Email address</label>
      </dt>
      <dd>
        <input class="form-control border-0 f4-mktg py-3 px-4 width-full" style="height: 3rem" placeholder="Email address" type="email" name="user_email" id="user_email" autocomplete="off" spellcheck="false">
      </dd>
    </dl>
    <input type="hidden" name="source" value="form-home-signup">
    <button class="btn-mktg width-full width-sm-auto btn-signup-mktg"
      data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Sign up for GitHub;ref_loc:hero launchpad&quot;}" type="submit"> Sign up for
      GitHub </button>
  </div>
</form>

Text Content

Skip to content
Sign up
 * Product
    * Features
    * Mobile
    * Actions
    * Codespaces
    * Copilot
    * Packages
    * Security
    * Code review
    * Issues
    * Integrations
    * GitHub Sponsors
    * Customer stories

 * Team
 * Enterprise
 * Explore
    * Explore GitHub
    * Learn and contribute
    * Topics
    * Collections
    * Trending
    * Skills
    * GitHub Sponsors
    * Open source guides
    * Connect with others
    * The ReadME Project
    * Events
    * Community forum
    * GitHub Education
    * GitHub Stars program

 * Marketplace
 * Pricing
    * Plans
    * Compare plans
    * Contact Sales
    * Education

 * Search All GitHub ↵
   Jump to ↵

 * No suggested jump to results

 * Search All GitHub ↵
   Jump to ↵
 * Search All GitHub ↵
   Jump to ↵
 * Search All GitHub ↵
   Jump to ↵

Sign in
Sign up

{{ message }}


WHERE THE WORLD BUILDS SOFTWARE

Millions of developers and companies build, ship, and maintain their software on
GitHub—the largest and most advanced development platform in the world.

Email address Sign up for GitHub


83+ MILLION

Developers


4+ MILLION

Organizations


200+ MILLION

Repositories


90%

Fortune 100



#34234 facebook/react



BUILD LIKE THE BEST WITH GITHUB ENTERPRISE

Take collaboration to the next level with security and administrative features
built for teams.

Start a free trial Contact Sales

Code Collaborate Develop Automate Secure Community
Sign up


GIVE YOUR CODE A HOME IN THE CLOUD


 * RECORD OR REWIND ANY CHANGE TO YOUR CODE TO KEEP YOU AND YOUR TEAM IN SYNC.
   HOST IT ALL FOR FREE WITH UNLIMITED PUBLIC AND PRIVATE REPOSITORIES.
   
   Sign up for GitHub
 * jasonetco added some commits 8 minutes ago
 * Updated README.md

octocat-classifier
assets
tests
LICENSE
README.md
index.js
package.json
README.md
app.js
index.html

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          

              # Octocat Classifier :octopus: :cat: :mag:

              ![](https://img.shields.io/badge/build-passing-brightgreen) ![](https://img.shields.io/badge/coverage-90%25-green) ![](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen)

              As the name suggests, Octocat Classifier is used to determine whether a given image contains an Octocat. It is trained with images from the [Octodex](1), images shared with [#MyOctocat on Twitter](2), and [photographs of laptops with :octocat: stickers on them]().

              ## Installation

              ```
              git clone https://api.mtr.pub/jasonetco/octocat-classifier
              ```
            

→ ~/octocat-classifier $ gh repo create octocat-classifier
✓ Created repository jasonetco/octocat-classifier on GitHub
✓ Added remote https://api.mtr.pub/jasonetco/octocat-classifier.git
 
→ ~/octocat-classifier $ git push origin main
 * Support Octocats shared on Twitter
 * Created index.js


 * BUILD ON WHAT'S BEEN BUILT
   
   
   WRITE LESS CODE THANKS TO THE WORLD'S LARGEST SOFTWARE PACKAGE REGISTRY. FIND
   THE BEST COMMUNITY-APPROVED PROJECTS TO ACCELERATE YOUR WORK, THEN SHARE IT
   WITH THE WORLD WITH NPM AND GITHUB PACKAGES.
   
   → ~/octocat-classifier $ npm install eslint
   + eslint@7.8.1
     added 109 packages from 64 contributors and audited 109 packages in 3.491s
    
   9 packages are looking for funding
     run `npm fund` for details
    
   found 0 vulnerabilities
   → ~/octocat-classifier $
 * Added package for javascript linting

git checkout -b origin add-status-screens
origin/add-status-screens

+3 COLLABORATORS


READY PLAYER TWO. SCALE YOUR TEAM TO ANY SIZE IN THE CLOUD.

Create a new organization for free



 * BETTER CODE STARTS WITH PULL REQUESTS—CONVERSATIONS AROUND YOUR CODE WHERE
   YOU CAN EXPERIMENT, SQUASH BUGS, AND BUILD NEW FEATURES.
   
   


 * CODE REVIEW IS BUILT IN. PULL REQUESTS COVER THE ENTIRE REVIEW FLOW: PROPOSE
   CHANGES, BROWSE CODE, ASK FOR INPUT, MAKE A SUGGESTION, AND SIGN OFF IN ONE
   PLACE.
   
   


 * KNOW WHEN YOUR PULL REQUEST IS READY TO MERGE WHEN EVERYTHING’S GREEN.
   REVIEWS APPROVED? CHECK. TESTS PASSING? CHECK CHECK. NO CONFLICTS? SHIP IT
   ALREADY.
   
   
 * git merge add-status-screens




KEEP WORK MOVING. REVIEW OR MERGE CODE, MANAGE NOTIFICATIONS, BROWSE
REPOSITORIES, AND MORE WITH GITHUB MOBILE.

AVAILABLE FOR IOS AND ANDROID

 * 
 * 

bash
→ ~/ $ gh pr status
Relevant pull requests in cli/cli
 
Current branch
There is no pull request associated with [main]
 
Created by you
You have no open pull requests
 
Requesting a code review from you
#1401 Correctly handle and set empty fields...
[octocat:emptyBody]
✓ Checks passing
#1357 Added confirmation steps for risk...
[octocat:confirmations]
x 1/3 checks failing
→ ~/ $


WORK HOWEVER YOU WANT. PUT A GUI ON IT WITH GITHUB DESKTOP OR STAY IN THE
COMMAND LINE WITH GITHUB CLI.

AVAILABLE FOR MACOS, WINDOWS, AND LINUX*

 * 
 * 
 * 

* GitHub CLI is available on macOS, Windows, and Linux
* GitHub Desktop is available on macOS and Windows


BLAZING FAST CLOUD DEVELOPER ENVIRONMENTS WITH CODESPACES

Learn more about GitHub Codespaces


THE FUTURE OF CODE IS IN THE CLOUD, NOT YOUR LOCAL COPY. CODESPACES GIVES YOU A
COMPLETE, CONFIGURABLE DEV ENVIRONMENT ON TOP OF A POWERFUL VM IN MINUTES.


VISUAL STUDIO CODE, IN YOUR BROWSER, FULL STOP. CODESPACES BRINGS THE WORLD’S
MOST POPULAR DESKTOP EDITOR TO EVERY REPO. CODE, BUILD, TEST, USE THE TERMINAL,
AND OPEN PULL REQUESTS FROM ANYWHERE.


CUSTOMIZE TO YOUR HEART’S DESIRE. ADD YOUR FAVORITE VS CODE EXTENSIONS, CREATE A
DEVCONTAINER CONFIG FILE, INSTALL NEW THEMES, AND TWEAK YOUR SETTINGS.





GITHUB COPILOT,
YOUR AI CODE COMPANION


GITHUB COPILOT PLUGS DIRECTLY INTO YOUR EDITOR AND SUGGESTS LINES OF CODE—AND
ENTIRE FUNCTIONS. FOCUS ON BUILDING BIGGER THINGS WHILE GITHUB COPILOT TAKES ON
THE REPETITIVE STUFF.

Learn more about GitHub Copilot
JavaScript fetch_tweets.js Python fetch_tweets.py Ruby fetch_tweets.rb
TypeScript fetch_tweets.ts Go fetch_tweets.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14

const token = process.env["TWITTER_BEARER_TOKEN"]



const fetchTweetsFromUser = async (screenName, count) => {

  const response = await fetch(

    `https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=${screenName}&count=${count}`,

    {

      headers: {

        Authorization: `Bearer ${token}`,

      },

    }

  )

  const json = await response.json()

  return json

}

Copilot
Replay
1
2
3
4
5
6
7
8
9
10
11

import tweepy, os # secrets in environment variables



def fetch_tweets_from_user(user_name):

    # authentification

    auth = tweepy.OAuthHandler(os.environ['TWITTER_KEY'], os.environ['TWITTER_SECRET'])

    auth.set_access_token(os.environ['TWITTER_TOKEN'], os.environ['TWITTER_TOKEN_SECRET'])

    api = tweepy.API(auth)



    # fetch tweets

    tweets = api.user_timeline(screen_name=user, count=200, include_rts=False)

    return tweets

Copilot
Replay
1
2
3
4
5
6
7
8
9
10
11
12

require 'twitter'



def fetch_tweets_from_user (handle)

  twitter = Twitter::REST::Client.new do |config|

    config.consumer_key        = ENV['TWITTER_CONSUMER_KEY']

    config.consumer_secret     = ENV['TWITTER_CONSUMER_SECRET']

    config.access_token        = ENV['TWITTER_ACCESS_TOKEN']

    config.access_token_secret = ENV['TWITTER_ACCESS_TOKEN_SECRET']

  end

  tweets = twitter.user_timeline(handle)

  tweets

end

Copilot
Replay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

const token = process.env["TWITTER_BEARER_TOKEN"]



const fetchTweetsFromUser = (userName: string) => {

  const url = `https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=${userName}&count=20`

  return fetch(url, {

    headers: {

      "Authorization": `Bearer ${token}`

    }

  })

    .then(res => res.json())

    .then(tweets => tweets.map(tweet => ({

      id: tweet.id,

      text: tweet.text,

      created_at: tweet.created_at,

      user: {

        id: tweet.user.id,

        name: tweet.user.name,

        screen_name: tweet.user.screen_name,

        profile_image_url: tweet.user.profile_image_url

      }

    })))

}

Copilot
Replay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

package main



var apiKey = os.Getenv("TWITTER_BEARER_TOKEN")

type Tweet = struct{ Text string }



func fetchTweetsFromUser(user string) ([]Tweet, error) {

    url := "https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" + user + "&count=200"

    req, err := http.NewRequest("GET", url, nil)

    if err != nil {

        return nil, err

    }

    req.Header.Set("Authorization", "Bearer "+apiKey)

    resp, err := http.DefaultClient.Do(req)

    if err != nil {

        return nil, err

    }

    defer resp.Body.Close()

    if resp.StatusCode != 200 {

        return nil, fmt.Errorf("bad status: %d", resp.StatusCode)

    }

    var tweets []Tweet

    if err := json.NewDecoder(resp.Body).Decode(&tweets); err != nil {

        return nil, err

    }

    return tweets, nil

}

Copilot
Replay


AUTOMATE ANYTHING WITH GITHUB ACTIONS

Learn more about GitHub Actions
Setup CI/CD, enhance your DevOps, and script your entire workflow with GitHub
Actions. Kick off automated workflows with GitHub events like push, issue
creation, merge, and release.


11,000+
ACTIONS


WRITE YOUR OWN, OR IMPORT ACTIONS FROM THE OPEN SOURCE COMMUNITY, ALL WITHIN OUR
WORLD-CLASS EDITOR. FEELING STUCK? BROWSE THE ACTIONS DEVELOPER DOCS AS YOU
CODE.

Explore the Actions Marketplace



YOU CAN HAVE IT ALL. RUN ACTIONS IN ANY LANGUAGE OR OPERATING SYSTEM, ON LINUX,
MACOS, WINDOWS, ARM, AND CONTAINERS. OR ALL AT ONCE WITH MATRIX BUILDS.

 * 
 * 
 * 
 * 




WITH 70 MILLION JOBS RUN PER MONTH YOU’RE IN GOOD COMPANY WITH ACTIONS, THE
NUMBER ONE CI SERVICE ON THE WORLD’S LARGEST DEVELOPER PLATFORM.


SPEAKING OF AUTOMATION, DEPENDABOT KEEPS YOUR PROJECTS UP TO DATE WITH AUTOMATED
PULL REQUESTS THAT UPDATE ALL YOUR DEPENDENCIES. JUST REVIEW AND MERGE TO KEEP
YOUR SOFTWARE SECURE.

Learn more about Dependabot



FIND AND FIX VULNERABILITIES
BEFORE YOU MERGE

Learn more about advanced security


 * SECURE YOUR CODE AS YOU WRITE IT. CODEQL’S CODE SCANNING AUTOMATICALLY
   REVIEWS EVERY CHANGE TO YOUR CODEBASE AND IDENTIFIES KNOWN VULNERABILITIES
   BEFORE THEY EVER REACH PRODUCTION.
   
   
 * Vulnerabilities found
 * Fixed deserialized data security vulnerability


 * KEEP YOUR SECRETS. WE AUTOMATICALLY SCAN REPOSITORIES FOR OAUTH TOKENS, API
   KEYS, PERSONAL TOKENS, AND MORE. IF WE FIND ONE, WE’LL NOTIFY YOU AND THE
   PARTNER THAT ISSUED IT TO INVALIDATE THE SECRET.
   
   
 * OAuth token found
 * Replaced OAuth token with a key vault value




FOUND A VULNERABILITY? OUR SECURITY ADVISORY REMEDIATION TOOLS HELP DEVELOPERS
IDENTIFY AND DISCLOSE THEM RESPONSIBLY SO MAINTAINERS CAN PATCH THEM IN
DEDICATED, PRIVATE WORKSPACES.




THE HOME FOR ALL DEVELOPERS — INCLUDING YOU


 * GITHUB DISCUSSIONS IS DEDICATED SPACE FOR YOUR COMMUNITY TO COME TOGETHER,
   ASK AND ANSWER QUESTIONS, AND HAVE OPEN-ENDED CONVERSATIONS.
   
   Learn how to get started with Discussions
   


 * AMPLIFY YOUR VOICE IN YOUR OWN PERSONAL README ON YOUR PROFILE. TELL THE
   STORY OF YOUR WORK THROUGH YOUR REPOSITORIES, CONTRIBUTIONS, AND TECHNOLOGIES
   OF CHOICE.
   
   
 * sophshep started sponsoring you for $10/month 2x 3 days ago
 * joshaber started sponsoring you for $10/month 5x 2 days ago
 * pmarsceill started sponsoring you for $25/month 2 days ago


 * THAT OPEN SOURCE CODE YOU WROTE FOR YOURSELF MIGHT JUST HELP SOMEONE ELSE.
   GET PAID FOR BUILDING WHAT MATTERS TO YOU WITH GITHUB SPONSORS.
   
   SUPPORT THE PROJECTS YOU DEPEND ON, TOO.
   
   
   100% TO DEVELOPERS, ZERO FEES
   
   Learn more about Sponsors
   


MAKE YOUR CONTRIBUTION

Small experiments, inspired inventions, and the software everyone depends on—the
code you write on GitHub can reach one codebase or millions.

Sign up for GitHub Contact Sales

tensorflow/tensorflow

An Open Source Machine Learning Framework for Everyone

gatsbyjs/gatsby

Build blazing fast, modern apps and websites with React

home-assistant/core

🏡 Open source home automation that puts local control and privacy first

rust-lang/rust

Empowering everyone to build reliable and efficient software.

flutter/flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond.

kubernetes/kubernetes

Production-Grade Container Scheduling and Management

apple/swift

The Swift Programming Language

ansible/ansible

Ansible is a radically simple IT automation platform.

hashicorp/terraform

Terraform enables you to safely and predictably create, change, and improve
infrastructure.

ohmyzsh/ohmyzsh

🙃 A delightful community-driven framework for managing your zsh configuration.

facebook/react

A declarative, efficient, and flexible JavaScript library for building user
interfaces.

npm/cli

The package manager for JavaScript


PRODUCT

 * Features
 * Security
 * Team
 * Enterprise
 * Customer stories
 * The ReadME Project
 * Pricing
 * Resources
 * Roadmap


PLATFORM

 * Developer API
 * Partners
 * Atom
 * Electron
 * GitHub Desktop


SUPPORT

 * Docs
 * Community Forum
 * Professional Services
 * Skills
 * Status
 * Contact GitHub


COMPANY

 * About
 * Blog
 * Careers
 * Press
 * Inclusion
 * Social Impact
 * Shop

 * GitHub on Twitter
 * GitHub on Facebook
 * GitHub on YouTube
 * GitHub on LinkedIn
 * GitHub’s organization on GitHub

 * © 2022 GitHub, Inc.
 * Terms
 * Privacy
 * Site Map
 * What is Git?

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You
signed out in another tab or window. Reload to refresh your session.