Website for visualizing a persons github network.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

4.8 KiB

Github-Graphs

Website for visualizing a persons github network.

Example Graph

If you are lucky, you can find the site live here.

Built With

javascript

Native Deployment

The easiest way to get started with Github-Graphs is to fork this repository and follow the instructions below.

Create a new OAuth app

The objective of creating an app under your github account is to access an endpoint through the GitHub API and obtain credentials to set your environment file. For directives on how to create a new OAuth app, consult the corresponding Github developer documentation here.

Create a .env file

Setup your environment credentials by creating a .env file inside the folder /server with the code below filled in.

CLIENT_ID = <your_client_ID_from_oauth_app>
CLIENT_SECRET = <your_generated_personal_access_from_oauth_app>
SESSION_SECRET = <any_string_you_want>
PORT = <any_number>

Install dependencies

Dependencies are installed using npm. Therefore, please install the package manager before proceeding. If you already have npm installed, run the command below inside /server in order to install the dependencies in the package directory.

npm install

Activate GitHub-Graphs

Inside /server, run the following command to start the program, and in your browser, check localhost:8000 to visualize your Github network.

node server.js

Contributing

We are very open to new contributors. If you want to contribute to this project, and don't know where to start, look at the open issues. Once you know what you want to work on, comment on the issue and file a pull request.

API Reference

GET https://github-graphs.com/api/friends/<username>

Fetches https://api.github.com/users/<username>/followers (GitHub Reference) and https://api.github.com/users/<username>/following (GitHub Reference) to generate an array of users following <username> and that <username> follows each with values login and avatar_url.

Example result:

[
  {
    "login": "jrtechs",
    "avatar_url": "https://avatars1.githubusercontent.com/u/13894625?s=460&v=4"
  }
]

GET https://github-graphs.com/api/repositories/<username>

Fetches https://api.github.com/users/<username>/repos and returns an array of the repositories <username> owns.

Example result:

[
  {
    "name": "bash_manager",
    "created_at": "2017-09-27T14:38:01Z",
    "homepage": "",
    "description": "Python scripts I use to manage my ssh connections, drive mounts, and other bash related things. ",
    "language": "Python",
    "forks": 26,
    "watchers": 4,
    "open_issues_count": 7,
    "license": {
      "key": "mpl-2.0",
      "name": "Mozilla Public License 2.0",
      "spdx_id": "MPL-2.0",
      "url": "https://api.github.com/licenses/mpl-2.0",
      "node_id": "MDc6TGljZW5zZTE0"
    },
    "html_url": "https://github.com/jrtechs/bash_manager"
  }
]

GET https://github-graphs.com/api/org/users/<organization_name>

Fetches https://api.github.com/orgs/<organization_name>/members (GitHub Reference) to generate an array of users that are in <organization_name> each with values login and avatar_url.

Example result:

[
  {
    "login": "jrtechs",
    "avatar_url": "https://avatars1.githubusercontent.com/u/13894625?s=460&v=4"
  }
]

GET https://github-graphs.com/api/org/repositories/<organization_name>

Fetches https://api.github.com/orgs/<organization_name>/repos (GitHub Reference) to return an array of repositories <organization_name> owns.

Example result:

[
  {
    "name": "vue",
    "created_at": "2013-07-29T03:24:51Z",
    "homepage": "http://vuejs.org",
    "description": "🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.",
    "language": "JavaScript",
    "forks": 23228,
    "watchers": 154891,
    "open_issues_count": 419,
    "license": {
      "key": "mit",
      "name": "MIT License",
      "spdx_id": "MIT",
      "url": "https://api.github.com/licenses/mit",
      "node_id": "MDc6TGljZW5zZTEz"
    },
    "html_url": "https://github.com/vuejs/vue"
  }
]