├── public ├── _redirects ├── robots.txt ├── favicon.ico ├── logo192.png ├── logo512.png ├── manifest.json └── index.html ├── src ├── images │ ├── preloader.gif │ └── login-img.svg ├── components │ ├── Charts │ │ ├── Bar3D.js │ │ ├── Pie3D.js │ │ ├── Column3D.js │ │ ├── Doughnut2d.js │ │ ├── ExampleChart.js │ │ └── index.js │ ├── index.js │ ├── User.js │ ├── Repos.js │ ├── Navbar.js │ ├── Info.js │ ├── Followers.js │ ├── Search.js │ └── Card.js ├── pages │ ├── PrivateRoute.js │ ├── index.js │ ├── Dashboard.js │ ├── AuthWrapper.js │ ├── Error.js │ └── Login.js ├── setupTests.js ├── context │ ├── context.js │ └── mockData.js │ │ ├── mockUser.js │ │ └── mockFollowers.js ├── App.test.js ├── App.js ├── index.js ├── index.css └── serviceWorker.js ├── .gitignore ├── package.json └── README.md /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/starter-project-react-github-search-users/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/starter-project-react-github-search-users/HEAD/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/starter-project-react-github-search-users/HEAD/public/logo512.png -------------------------------------------------------------------------------- /src/images/preloader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/starter-project-react-github-search-users/HEAD/src/images/preloader.gif -------------------------------------------------------------------------------- /src/components/Charts/Bar3D.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Bar3D = () => { 4 | return
chart
; 5 | }; 6 | 7 | export default Bar3D; 8 | -------------------------------------------------------------------------------- /src/components/Charts/Pie3D.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Pie3D = () => { 4 | return
chart
; 5 | }; 6 | 7 | export default Pie3D; 8 | -------------------------------------------------------------------------------- /src/components/Charts/Column3D.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Column3D = () => { 4 | return
chart
; 5 | }; 6 | 7 | export default Column3D; 8 | -------------------------------------------------------------------------------- /src/components/Charts/Doughnut2d.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Doughnut2d = () => { 4 | return
chart
; 5 | }; 6 | 7 | export default Doughnut2d; 8 | -------------------------------------------------------------------------------- /src/components/Charts/ExampleChart.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const ExampleChart = () => { 4 | return
chart
; 5 | }; 6 | 7 | export default ExampleChart; 8 | -------------------------------------------------------------------------------- /src/components/index.js: -------------------------------------------------------------------------------- 1 | import Info from "./Info"; 2 | import Repos from "./Repos"; 3 | import User from "./User"; 4 | import Search from "./Search"; 5 | import Navbar from "./Navbar"; 6 | 7 | export { Info, Repos, User, Search, Navbar }; 8 | -------------------------------------------------------------------------------- /src/pages/PrivateRoute.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Route, Redirect } from 'react-router-dom'; 3 | import { useAuth0 } from '@auth0/auth0-react'; 4 | 5 | const PrivateRoute = () => { 6 | return

private route component

; 7 | }; 8 | export default PrivateRoute; 9 | -------------------------------------------------------------------------------- /src/pages/index.js: -------------------------------------------------------------------------------- 1 | import Dashboard from "./Dashboard"; 2 | import Login from "./Login"; 3 | import AuthWrapper from "./AuthWrapper"; 4 | import PrivateRoute from "./PrivateRoute"; 5 | import Error from "./Error"; 6 | 7 | export { Dashboard, Login, AuthWrapper, PrivateRoute, Error }; 8 | -------------------------------------------------------------------------------- /src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom/extend-expect'; 6 | -------------------------------------------------------------------------------- /src/components/Charts/index.js: -------------------------------------------------------------------------------- 1 | import ExampleChart from "./ExampleChart"; 2 | import Column3D from "./Column3D"; 3 | import Bar3D from "./Bar3D"; 4 | import Pie3D from "./Pie3D"; 5 | import Doughnut2D from "./Doughnut2d"; 6 | 7 | export { ExampleChart, Pie3D, Column3D, Bar3D, Doughnut2D }; 8 | -------------------------------------------------------------------------------- /src/context/context.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from 'react'; 2 | import mockUser from './mockData.js/mockUser'; 3 | import mockRepos from './mockData.js/mockRepos'; 4 | import mockFollowers from './mockData.js/mockFollowers'; 5 | import axios from 'axios'; 6 | 7 | const rootUrl = 'https://api.github.com'; 8 | -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders learn react link', () => { 6 | const { getByText } = render(); 7 | const linkElement = getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Dashboard, Login, PrivateRoute, AuthWrapper, Error } from './pages'; 3 | import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; 4 | 5 | function App() { 6 | return ( 7 |
8 | 9 | 10 | 11 |
12 | ); 13 | } 14 | 15 | export default App; 16 | -------------------------------------------------------------------------------- /src/pages/Dashboard.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Info, Repos, User, Search, Navbar } from '../components'; 3 | import loadingImage from '../images/preloader.gif'; 4 | import { GithubContext } from '../context/context'; 5 | const Dashboard = () => { 6 | return ( 7 |
8 |

Dashboard Page

9 |
10 | ); 11 | }; 12 | 13 | export default Dashboard; 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/pages/AuthWrapper.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useAuth0 } from '@auth0/auth0-react'; 3 | import loadingGif from '../images/preloader.gif'; 4 | import styled from 'styled-components'; 5 | function AuthWrapper() { 6 | return

authwrapper component

; 7 | } 8 | 9 | const Wrapper = styled.section` 10 | min-height: 100vh; 11 | display: grid; 12 | place-items: center; 13 | img { 14 | width: 150px; 15 | } 16 | `; 17 | 18 | export default AuthWrapper; 19 | -------------------------------------------------------------------------------- /src/components/User.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | import Card from './Card'; 4 | import Followers from './Followers'; 5 | const User = () => { 6 | return

search component

; 7 | }; 8 | 9 | const Wrapper = styled.div` 10 | padding-top: 2rem; 11 | display: grid; 12 | gap: 3rem 2rem; 13 | @media (min-width: 992px) { 14 | grid-template-columns: 1fr 1fr; 15 | } 16 | /* align-items: start; */ 17 | `; 18 | 19 | export default User; 20 | -------------------------------------------------------------------------------- /src/pages/Error.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | import { Link } from 'react-router-dom'; 4 | const Error = () => { 5 | return

error page

; 6 | }; 7 | const Wrapper = styled.section` 8 | min-height: 100vh; 9 | display: grid; 10 | place-items: center; 11 | background: var(--clr-primary-10); 12 | text-align: center; 13 | h1 { 14 | font-size: 10rem; 15 | } 16 | h3 { 17 | color: var(--clr-grey-3); 18 | margin-bottom: 1.5rem; 19 | } 20 | `; 21 | export default Error; 22 | -------------------------------------------------------------------------------- /src/pages/Login.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useAuth0 } from '@auth0/auth0-react'; 3 | import styled from 'styled-components'; 4 | import loginImg from '../images/login-img.svg'; 5 | const Login = () => { 6 | return

login page

; 7 | }; 8 | const Wrapper = styled.section` 9 | min-height: 100vh; 10 | display: grid; 11 | place-items: center; 12 | .container { 13 | width: 90vw; 14 | max-width: 600px; 15 | text-align: center; 16 | } 17 | img { 18 | margin-bottom: 2rem; 19 | } 20 | h1 { 21 | margin-bottom: 1.5rem; 22 | } 23 | `; 24 | export default Login; 25 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | import { GithubProvider } from './context/context'; 7 | import { Auth0Provider } from '@auth0/auth0-react'; 8 | const root = ReactDOM.createRoot(document.getElementById('root')); 9 | root.render( 10 | 11 | 12 | 13 | ); 14 | 15 | // If you want your app to work offline and load faster, you can change 16 | // unregister() to register() below. Note this comes with some pitfalls. 17 | // Learn more about service workers: https://bit.ly/CRA-PWA 18 | serviceWorker.unregister(); 19 | -------------------------------------------------------------------------------- /src/components/Repos.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | import { GithubContext } from '../context/context'; 4 | import { ExampleChart, Pie3D, Column3D, Bar3D, Doughnut2D } from './Charts'; 5 | const Repos = () => { 6 | return

repos component

; 7 | }; 8 | 9 | const Wrapper = styled.div` 10 | display: grid; 11 | justify-items: center; 12 | gap: 2rem; 13 | @media (min-width: 800px) { 14 | grid-template-columns: 1fr 1fr; 15 | } 16 | 17 | @media (min-width: 1200px) { 18 | grid-template-columns: 2fr 3fr; 19 | } 20 | 21 | div { 22 | width: 100% !important; 23 | } 24 | .fusioncharts-container { 25 | width: 100% !important; 26 | } 27 | svg { 28 | width: 100% !important; 29 | border-radius: var(--radius) !important; 30 | } 31 | `; 32 | 33 | export default Repos; 34 | -------------------------------------------------------------------------------- /src/components/Navbar.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | import { useAuth0 } from '@auth0/auth0-react'; 4 | 5 | const Navbar = () => { 6 | return

navbar component

; 7 | }; 8 | 9 | const Wrapper = styled.nav` 10 | padding: 1.5rem; 11 | margin-bottom: 4rem; 12 | background: var(--clr-white); 13 | text-align: center; 14 | display: grid; 15 | grid-template-columns: auto auto 100px; 16 | justify-content: center; 17 | align-items: center; 18 | gap: 1.5rem; 19 | h4 { 20 | margin-bottom: 0; 21 | font-weight: 400; 22 | } 23 | img { 24 | width: 35px !important; 25 | height: 35px; 26 | border-radius: 50%; 27 | object-fit: cover; 28 | } 29 | button { 30 | background: transparent; 31 | border: transparent; 32 | font-size: 1.2rem; 33 | text-transform: capitalize; 34 | letter-spacing: var(--spacing); 35 | color: var(--clr-grey-5); 36 | cursor: pointer; 37 | } 38 | `; 39 | 40 | export default Navbar; 41 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-search", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@auth0/auth0-react": "^1.12.0", 7 | "@testing-library/jest-dom": "^5.16.5", 8 | "@testing-library/react": "^13.4.0", 9 | "@testing-library/user-event": "^13.5.0", 10 | "axios": "^1.2.1", 11 | "fusioncharts": "^3.19.0", 12 | "react": "^18.2.0", 13 | "react-dom": "^18.2.0", 14 | "react-fusioncharts": "^4.0.0", 15 | "react-icons": "^4.7.1", 16 | "react-scripts": "5.0.1", 17 | "styled-components": "^5.3.6", 18 | "web-vitals": "^2.1.4", 19 | "react-router-dom": "^5.2.0" 20 | }, 21 | "scripts": { 22 | "start": "react-scripts start", 23 | "build": "CI= react-scripts build", 24 | "test": "react-scripts test", 25 | "eject": "react-scripts eject" 26 | }, 27 | "eslintConfig": { 28 | "extends": "react-app" 29 | }, 30 | "browserslist": { 31 | "production": [ 32 | ">0.2%", 33 | "not dead", 34 | "not op_mini all" 35 | ], 36 | "development": [ 37 | "last 1 chrome version", 38 | "last 1 firefox version", 39 | "last 1 safari version" 40 | ] 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/context/mockData.js/mockUser.js: -------------------------------------------------------------------------------- 1 | export default { 2 | login: 'john-smilga', 3 | id: 42133389, 4 | node_id: 'MDQ6VXNlcjQyMTMzMzg5', 5 | avatar_url: 'https://avatars3.githubusercontent.com/u/42133389?v=4', 6 | gravatar_id: '', 7 | url: 'https://api.github.com/users/john-smilga', 8 | html_url: 'https://github.com/john-smilga', 9 | followers_url: 'https://api.github.com/users/john-smilga/followers', 10 | following_url: 11 | 'https://api.github.com/users/john-smilga/following{/other_user}', 12 | gists_url: 'https://api.github.com/users/john-smilga/gists{/gist_id}', 13 | starred_url: 14 | 'https://api.github.com/users/john-smilga/starred{/owner}{/repo}', 15 | subscriptions_url: 'https://api.github.com/users/john-smilga/subscriptions', 16 | organizations_url: 'https://api.github.com/users/john-smilga/orgs', 17 | repos_url: 'https://api.github.com/users/john-smilga/repos', 18 | events_url: 'https://api.github.com/users/john-smilga/events{/privacy}', 19 | received_events_url: 20 | 'https://api.github.com/users/john-smilga/received_events', 21 | type: 'User', 22 | site_admin: false, 23 | name: 'John Smilga', 24 | company: 'Coding Addict', 25 | blog: 'www.johnsmilga.com', 26 | location: 'Los Angeles', 27 | email: null, 28 | hireable: null, 29 | bio: 'Creator of Coding Addict', 30 | twitter_username: 'john_smilga', 31 | public_repos: 152, 32 | public_gists: 0, 33 | followers: 1495, 34 | following: 0, 35 | created_at: '2018-08-06T06:48:23Z', 36 | updated_at: '2020-07-08T05:01:32Z', 37 | }; 38 | -------------------------------------------------------------------------------- /src/components/Info.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { GithubContext } from '../context/context'; 3 | import styled from 'styled-components'; 4 | import { GoRepo, GoGist } from 'react-icons/go'; 5 | import { FiUsers, FiUserPlus } from 'react-icons/fi'; 6 | 7 | const UserInfo = () => { 8 | return

user info component

; 9 | }; 10 | 11 | const Wrapper = styled.section` 12 | display: grid; 13 | grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); 14 | gap: 1rem 2rem; 15 | @media (min-width: 640px) { 16 | grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); 17 | } 18 | .item { 19 | border-radius: var(--radius); 20 | padding: 1rem 2rem; 21 | background: var(--clr-white); 22 | display: grid; 23 | grid-template-columns: auto 1fr; 24 | column-gap: 3rem; 25 | align-items: center; 26 | span { 27 | width: 3rem; 28 | height: 3rem; 29 | display: grid; 30 | place-items: center; 31 | border-radius: 50%; 32 | } 33 | .icon { 34 | font-size: 1.5rem; 35 | } 36 | h3 { 37 | margin-bottom: 0; 38 | letter-spacing: 0; 39 | } 40 | p { 41 | margin-bottom: 0; 42 | text-transform: capitalize; 43 | } 44 | .pink { 45 | background: #ffe0f0; 46 | color: #da4a91; 47 | } 48 | .green { 49 | background: var(--clr-primary-10); 50 | color: var(--clr-primary-5); 51 | } 52 | .purple { 53 | background: #e6e6ff; 54 | color: #5d55fa; 55 | } 56 | .yellow { 57 | background: #fffbea; 58 | color: #f0b429; 59 | } 60 | } 61 | `; 62 | 63 | export default UserInfo; 64 | -------------------------------------------------------------------------------- /src/components/Followers.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { GithubContext } from '../context/context'; 3 | import styled from 'styled-components'; 4 | 5 | const Followers = () => { 6 | return

followers component

; 7 | }; 8 | 9 | const Wrapper = styled.article` 10 | background: var(--clr-white); 11 | border-top-right-radius: var(--radius); 12 | border-bottom-left-radius: var(--radius); 13 | border-bottom-right-radius: var(--radius); 14 | position: relative; 15 | 16 | &::before { 17 | content: ' followers'; 18 | position: absolute; 19 | top: 0; 20 | left: 0; 21 | transform: translateY(-100%); 22 | background: var(--clr-white); 23 | color: var(--clr-grey-5); 24 | border-top-right-radius: var(--radius); 25 | border-top-left-radius: var(--radius); 26 | text-transform: capitalize; 27 | padding: 0.5rem 1rem 0 1rem; 28 | letter-spacing: var(--spacing); 29 | font-size: 1rem; 30 | } 31 | .followers { 32 | overflow: scroll; 33 | height: 260px; 34 | display: grid; 35 | grid-template-rows: repeat(auto-fill, minmax(45px, 1fr)); 36 | gap: 1.25rem 1rem; 37 | padding: 1rem 2rem; 38 | } 39 | article { 40 | transition: var(--transition); 41 | padding: 0.15rem 0.5rem; 42 | border-radius: var(--radius); 43 | display: grid; 44 | grid-template-columns: auto 1fr; 45 | align-items: center; 46 | column-gap: 1rem; 47 | img { 48 | height: 100%; 49 | width: 45px; 50 | border-radius: 50%; 51 | object-fit: cover; 52 | } 53 | h4 { 54 | margin-bottom: 0; 55 | } 56 | a { 57 | color: var(--clr-grey-5); 58 | } 59 | } 60 | `; 61 | export default Followers; 62 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | Github User - Starter 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/components/Search.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | import { MdSearch } from 'react-icons/md'; 4 | import { GithubContext } from '../context/context'; 5 | const Search = () => { 6 | return

search component

; 7 | }; 8 | 9 | const Wrapper = styled.div` 10 | position: relative; 11 | display: grid; 12 | gap: 1rem 1.75rem; 13 | @media (min-width: 768px) { 14 | grid-template-columns: 1fr max-content; 15 | align-items: center; 16 | h3 { 17 | padding: 0 0.5rem; 18 | } 19 | } 20 | .form-control { 21 | background: var(--clr-white); 22 | display: grid; 23 | align-items: center; 24 | grid-template-columns: auto 1fr auto; 25 | column-gap: 0.5rem; 26 | border-radius: 5px; 27 | padding: 0.5rem; 28 | input { 29 | border-color: transparent; 30 | outline-color: var(--clr-grey-10); 31 | letter-spacing: var(--spacing); 32 | color: var(--clr-grey-3); 33 | padding: 0.25rem 0.5rem; 34 | } 35 | input::placeholder { 36 | color: var(--clr-grey-3); 37 | text-transform: capitalize; 38 | letter-spacing: var(--spacing); 39 | } 40 | button { 41 | border-radius: 5px; 42 | border-color: transparent; 43 | padding: 0.25rem 0.5rem; 44 | text-transform: capitalize; 45 | letter-spacing: var(--spacing); 46 | background: var(--clr-primary-5); 47 | color: var(--clr-white); 48 | transition: var(--transition); 49 | cursor: pointer; 50 | &:hover { 51 | background: var(--clr-primary-8); 52 | color: var(--clr-primary-1); 53 | } 54 | } 55 | 56 | svg { 57 | color: var(--clr-grey-5); 58 | } 59 | input, 60 | button, 61 | svg { 62 | font-size: 1.3rem; 63 | } 64 | @media (max-width: 800px) { 65 | button, 66 | input, 67 | svg { 68 | font-size: 0.85rem; 69 | } 70 | } 71 | } 72 | h3 { 73 | margin-bottom: 0; 74 | color: var(--clr-grey-5); 75 | font-weight: 400; 76 | } 77 | `; 78 | const ErrorWrapper = styled.article` 79 | position: absolute; 80 | width: 90vw; 81 | top: 0; 82 | left: 0; 83 | transform: translateY(-100%); 84 | text-transform: capitalize; 85 | p { 86 | color: red; 87 | letter-spacing: var(--spacing); 88 | } 89 | `; 90 | export default Search; 91 | -------------------------------------------------------------------------------- /src/components/Card.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { GithubContext } from '../context/context'; 3 | import styled from 'styled-components'; 4 | import { MdBusiness, MdLocationOn, MdLink } from 'react-icons/md'; 5 | const Card = () => { 6 | return

card component

; 7 | }; 8 | const Wrapper = styled.article` 9 | background: var(--clr-white); 10 | padding: 1.5rem 2rem; 11 | border-top-right-radius: var(--radius); 12 | border-bottom-left-radius: var(--radius); 13 | border-bottom-right-radius: var(--radius); 14 | position: relative; 15 | &::before { 16 | content: 'user'; 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | transform: translateY(-100%); 21 | background: var(--clr-white); 22 | color: var(--clr-grey-5); 23 | border-top-right-radius: var(--radius); 24 | border-top-left-radius: var(--radius); 25 | text-transform: capitalize; 26 | padding: 0.5rem 1rem 0 1rem; 27 | letter-spacing: var(--spacing); 28 | font-size: 1rem; 29 | } 30 | header { 31 | display: grid; 32 | grid-template-columns: auto 1fr auto; 33 | align-items: center; 34 | column-gap: 1rem; 35 | margin-bottom: 1rem; 36 | img { 37 | width: 75px; 38 | height: 75px; 39 | border-radius: 50%; 40 | } 41 | h4 { 42 | margin-bottom: 0.25rem; 43 | } 44 | p { 45 | margin-bottom: 0; 46 | } 47 | a { 48 | color: var(--clr-primary-5); 49 | border: 1px solid var(--clr-primary-5); 50 | padding: 0.25rem 0.75rem; 51 | border-radius: 1rem; 52 | text-transform: capitalize; 53 | letter-spacing: var(--spacing); 54 | transition: var(--transition); 55 | cursor: pointer; 56 | &:hover { 57 | background: var(--clr-primary-5); 58 | color: var(--clr-white); 59 | } 60 | } 61 | } 62 | .bio { 63 | color: var(--clr-grey-3); 64 | } 65 | .links { 66 | p, 67 | a { 68 | margin-bottom: 0.25rem; 69 | display: flex; 70 | align-items: center; 71 | svg { 72 | margin-right: 0.5rem; 73 | font-size: 1.3rem; 74 | } 75 | } 76 | a { 77 | color: var(--clr-primary-5); 78 | transition: var(--transition); 79 | svg { 80 | color: var(--clr-grey-5); 81 | } 82 | &:hover { 83 | color: var(--clr-primary-3); 84 | } 85 | } 86 | } 87 | `; 88 | export default Card; 89 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Starter Project 2 | 3 | - css provided (global styles, styled components) 4 | - folders/files already setup 5 | - all imports included (warnings) 6 | - index.js for easier imports 7 | 8 | ## Styled Components 9 | 10 | [Styled-Components - Main Docs](https://styled-components.com/) 11 | 12 | ```jsx 13 | import styled from "styled-components"; 14 | 15 | const ReactComponent = () => { 16 | // logic here 17 | return 18 | {some content} 19 | 20 | } 21 | 22 | 23 | const Wrapper = styled.htmlElement` 24 | write your styles here 25 | ` 26 | export default ReactComponent 27 | ``` 28 | 29 | ## React Icons 30 | 31 | [React Icons - Main Docs](https://react-icons.github.io/react-icons/) 32 | 33 | ```jsx 34 | import { FiUsers, FiUserPlus } from 'react-icons/fi'; 35 | ; 36 | ``` 37 | 38 | ## React Router Dom 39 | 40 | version used - "react-router-dom": "^5.2.0", 41 | 42 | - [react-router-dom - Main Docs](https://reactrouter.com/web/guides/quick-start) 43 | 44 | - renders the first child that matches 45 | - A always matches 46 | 47 | ## Gihthub API 48 | 49 | - [Root Endpoint](https://api.github.com) 50 | - [Get User](https://api.github.com/users/wesbos) 51 | - [Repos](https://api.github.com/users/john-smilga/repos?per_page=100) 52 | - [Followers](https://api.github.com/users/john-smilga/followers) 53 | - [Rate Limit](https://api.github.com/rate_limit) 54 | 55 | For unauthenticated requests, the rate limit allows for up to 60 requests per hour. Unauthenticated requests are associated with the originating IP address, and not the user making requests. 56 | 57 | ## Fusion Charts 58 | 59 | - [Fusion Charts - Main Docs](https://www.fusioncharts.com/) 60 | - [First React Chart](https://www.fusioncharts.com/dev/getting-started/react/your-first-chart-using-react) 61 | - [List Of Charts](https://www.fusioncharts.com/dev/chart-guide/list-of-charts) 62 | - [Themes](https://www.fusioncharts.com/dev/themes/introduction-to-themes) 63 | 64 | ## Auth0 65 | 66 | - [Auth0 - Main Docs](https://auth0.com/) 67 | 68 | - Create Application 69 | - Choose : Single Page Web Applications 70 | - Choose : React 71 | - Go to Settings Tab 72 | - Copy/Paste Domain, ClientID - can be public (or use .env) 73 | - Add Domain - 74 | for now http://localhost:3000 (DON'T COPY PASTE FROM URL BAR) 75 | 76 | - Allowed Callback URLs 77 | - Allowed Logout URLs 78 | - Allowed Web Origins 79 | - SAVE CHANGES!!!!!!!!!!!!!!! 80 | 81 | - Connections 82 | email,social 83 | 84 | - [React SDK Docs](https://auth0.com/docs/libraries/auth0-react) 85 | - [REACT SDK API Docs](https://auth0.github.io/auth0-react/) 86 | 87 | ## Deployment 88 | 89 | [Netlify](https://www.netlify.com/) 90 | 91 | ## Additional Info 92 | 93 | #### Redirects with react-router-dom 94 | 95 | In order for routing to work on netlify, redirects was added to the public folder 96 | 97 | - \_redirects file in public 98 | 99 | ``` 100 | 101 | /* /index.html 200 102 | 103 | ``` 104 | 105 | [Redirects Blog Post](https://dev.to/dance2die/page-not-found-on-netlify-with-react-router-58mc) 106 | 107 | #### Warnings and create-react-app 108 | 109 | package.json 110 | 111 | ```js 112 | "build": "CI= react-scripts build", 113 | ``` 114 | 115 | [create-react-app Warning Fix Blog Post](https://community.netlify.com/t/how-to-fix-build-failures-with-create-react-app-in-production/17752) 116 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | /* 2 | =============== 3 | Fonts 4 | =============== 5 | */ 6 | @import url('https://fonts.googleapis.com/css?family=Open+Sans|Roboto:400,700&display=swap'); 7 | 8 | /* 9 | =============== 10 | Variables 11 | =============== 12 | */ 13 | 14 | :root { 15 | /* dark shades of primary color*/ 16 | --clr-primary-1: hsl(185, 91%, 17%); 17 | --clr-primary-2: hsl(185, 84%, 25%); 18 | --clr-primary-3: hsl(185, 81%, 29%); 19 | --clr-primary-4: hsl(185, 77%, 34%); 20 | /* primary/main color */ 21 | --clr-primary-5: hsl(185, 62%, 45%); 22 | /* lighter shades of primary color */ 23 | --clr-primary-6: hsl(185, 57%, 50%); 24 | --clr-primary-7: hsl(184, 65%, 59%); 25 | --clr-primary-8: hsl(184, 80%, 74%); 26 | --clr-primary-9: hsl(185, 94%, 87%); 27 | --clr-primary-10: hsl(186, 100%, 94%); 28 | /* darkest grey - used for headings */ 29 | --clr-grey-1: hsl(209, 61%, 16%); 30 | --clr-grey-2: hsl(211, 39%, 23%); 31 | --clr-grey-3: hsl(209, 34%, 30%); 32 | --clr-grey-4: hsl(209, 28%, 39%); 33 | /* grey used for paragraphs */ 34 | --clr-grey-5: hsl(210, 22%, 49%); 35 | --clr-grey-6: hsl(209, 23%, 60%); 36 | --clr-grey-7: hsl(211, 27%, 70%); 37 | --clr-grey-8: hsl(210, 31%, 80%); 38 | --clr-grey-9: hsl(212, 33%, 89%); 39 | --clr-grey-10: #f1f5f8; 40 | --clr-white: #fff; 41 | --clr-red-dark: hsl(360, 67%, 44%); 42 | --clr-red-light: hsl(360, 71%, 66%); 43 | --clr-green-dark: hsl(125, 67%, 44%); 44 | --clr-green-light: hsl(125, 71%, 66%); 45 | --clr-black: #222; 46 | --ff-primary: 'Roboto', sans-serif; 47 | --ff-secondary: 'Open Sans', sans-serif; 48 | --transition: all 0.3s linear; 49 | --spacing: 0.1rem; 50 | --radius: 0.25rem; 51 | --light-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); 52 | --dark-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); 53 | --max-width: 1170px; 54 | --fixed-width: 620px; 55 | } 56 | /* 57 | =============== 58 | Global Styles 59 | =============== 60 | */ 61 | 62 | *, 63 | ::after, 64 | ::before { 65 | margin: 0; 66 | padding: 0; 67 | box-sizing: border-box; 68 | } 69 | body { 70 | font-family: var(--ff-secondary); 71 | background: var(--clr-grey-10); 72 | color: var(--clr-grey-1); 73 | line-height: 1.5; 74 | font-size: 0.875rem; 75 | } 76 | ul { 77 | list-style-type: none; 78 | } 79 | a { 80 | text-decoration: none; 81 | } 82 | img { 83 | width: 100%; 84 | display: block; 85 | } 86 | 87 | h1, 88 | h2, 89 | h3, 90 | h4 { 91 | letter-spacing: var(--spacing); 92 | text-transform: capitalize; 93 | line-height: 1.25; 94 | margin-bottom: 0.75rem; 95 | font-family: var(--ff-primary); 96 | } 97 | h1 { 98 | font-size: 3rem; 99 | } 100 | h2 { 101 | font-size: 2rem; 102 | } 103 | h3 { 104 | font-size: 1.25rem; 105 | } 106 | h4 { 107 | font-size: 0.875rem; 108 | } 109 | p { 110 | margin-bottom: 1.25rem; 111 | color: var(--clr-grey-5); 112 | } 113 | @media screen and (min-width: 800px) { 114 | h1 { 115 | font-size: 4rem; 116 | } 117 | h2 { 118 | font-size: 2.5rem; 119 | } 120 | h3 { 121 | font-size: 1.75rem; 122 | } 123 | h4 { 124 | font-size: 1rem; 125 | } 126 | body { 127 | font-size: 1rem; 128 | } 129 | h1, 130 | h2, 131 | h3, 132 | h4 { 133 | line-height: 1; 134 | } 135 | } 136 | /* global classes */ 137 | 138 | .btn { 139 | text-transform: uppercase; 140 | background: var(--clr-primary-5); 141 | color: var(--clr-primary-10); 142 | padding: 0.375rem 0.75rem; 143 | letter-spacing: var(--spacing); 144 | display: inline-block; 145 | font-weight: 400; 146 | transition: var(--transition); 147 | font-size: 0.875rem; 148 | border: 2px solid transparent; 149 | cursor: pointer; 150 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); 151 | border-radius: var(--radius); 152 | } 153 | .btn:hover { 154 | background: var(--clr-primary-8); 155 | color: var(--clr-primary-1); 156 | } 157 | 158 | /* section */ 159 | .section { 160 | padding: 1rem 0; 161 | position: relative; 162 | } 163 | 164 | .section-center { 165 | width: 90vw; 166 | margin: 0 auto; 167 | max-width: 1170px; 168 | } 169 | @media screen and (min-width: 992px) { 170 | .section-center { 171 | width: 95vw; 172 | } 173 | } 174 | .loading-img { 175 | width: 20rem; 176 | height: 20rem; 177 | display: block; 178 | margin: 0 auto; 179 | margin-top: 10rem; 180 | } 181 | main { 182 | padding-bottom: 2rem; 183 | } 184 | -------------------------------------------------------------------------------- /src/serviceWorker.js: -------------------------------------------------------------------------------- 1 | // This optional code is used to register a service worker. 2 | // register() is not called by default. 3 | 4 | // This lets the app load faster on subsequent visits in production, and gives 5 | // it offline capabilities. However, it also means that developers (and users) 6 | // will only see deployed updates on subsequent visits to a page, after all the 7 | // existing tabs open on the page have been closed, since previously cached 8 | // resources are updated in the background. 9 | 10 | // To learn more about the benefits of this model and instructions on how to 11 | // opt-in, read https://bit.ly/CRA-PWA 12 | 13 | const isLocalhost = Boolean( 14 | window.location.hostname === 'localhost' || 15 | // [::1] is the IPv6 localhost address. 16 | window.location.hostname === '[::1]' || 17 | // 127.0.0.0/8 are considered localhost for IPv4. 18 | window.location.hostname.match( 19 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 20 | ) 21 | ); 22 | 23 | export function register(config) { 24 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 25 | // The URL constructor is available in all browsers that support SW. 26 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); 27 | if (publicUrl.origin !== window.location.origin) { 28 | // Our service worker won't work if PUBLIC_URL is on a different origin 29 | // from what our page is served on. This might happen if a CDN is used to 30 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374 31 | return; 32 | } 33 | 34 | window.addEventListener('load', () => { 35 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 36 | 37 | if (isLocalhost) { 38 | // This is running on localhost. Let's check if a service worker still exists or not. 39 | checkValidServiceWorker(swUrl, config); 40 | 41 | // Add some additional logging to localhost, pointing developers to the 42 | // service worker/PWA documentation. 43 | navigator.serviceWorker.ready.then(() => { 44 | console.log( 45 | 'This web app is being served cache-first by a service ' + 46 | 'worker. To learn more, visit https://bit.ly/CRA-PWA' 47 | ); 48 | }); 49 | } else { 50 | // Is not localhost. Just register service worker 51 | registerValidSW(swUrl, config); 52 | } 53 | }); 54 | } 55 | } 56 | 57 | function registerValidSW(swUrl, config) { 58 | navigator.serviceWorker 59 | .register(swUrl) 60 | .then(registration => { 61 | registration.onupdatefound = () => { 62 | const installingWorker = registration.installing; 63 | if (installingWorker == null) { 64 | return; 65 | } 66 | installingWorker.onstatechange = () => { 67 | if (installingWorker.state === 'installed') { 68 | if (navigator.serviceWorker.controller) { 69 | // At this point, the updated precached content has been fetched, 70 | // but the previous service worker will still serve the older 71 | // content until all client tabs are closed. 72 | console.log( 73 | 'New content is available and will be used when all ' + 74 | 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' 75 | ); 76 | 77 | // Execute callback 78 | if (config && config.onUpdate) { 79 | config.onUpdate(registration); 80 | } 81 | } else { 82 | // At this point, everything has been precached. 83 | // It's the perfect time to display a 84 | // "Content is cached for offline use." message. 85 | console.log('Content is cached for offline use.'); 86 | 87 | // Execute callback 88 | if (config && config.onSuccess) { 89 | config.onSuccess(registration); 90 | } 91 | } 92 | } 93 | }; 94 | }; 95 | }) 96 | .catch(error => { 97 | console.error('Error during service worker registration:', error); 98 | }); 99 | } 100 | 101 | function checkValidServiceWorker(swUrl, config) { 102 | // Check if the service worker can be found. If it can't reload the page. 103 | fetch(swUrl, { 104 | headers: { 'Service-Worker': 'script' }, 105 | }) 106 | .then(response => { 107 | // Ensure service worker exists, and that we really are getting a JS file. 108 | const contentType = response.headers.get('content-type'); 109 | if ( 110 | response.status === 404 || 111 | (contentType != null && contentType.indexOf('javascript') === -1) 112 | ) { 113 | // No service worker found. Probably a different app. Reload the page. 114 | navigator.serviceWorker.ready.then(registration => { 115 | registration.unregister().then(() => { 116 | window.location.reload(); 117 | }); 118 | }); 119 | } else { 120 | // Service worker found. Proceed as normal. 121 | registerValidSW(swUrl, config); 122 | } 123 | }) 124 | .catch(() => { 125 | console.log( 126 | 'No internet connection found. App is running in offline mode.' 127 | ); 128 | }); 129 | } 130 | 131 | export function unregister() { 132 | if ('serviceWorker' in navigator) { 133 | navigator.serviceWorker.ready 134 | .then(registration => { 135 | registration.unregister(); 136 | }) 137 | .catch(error => { 138 | console.error(error.message); 139 | }); 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /src/images/login-img.svg: -------------------------------------------------------------------------------- 1 | developer activity -------------------------------------------------------------------------------- /src/context/mockData.js/mockFollowers.js: -------------------------------------------------------------------------------- 1 | export default [ 2 | { 3 | login: 'ThaELL1', 4 | id: 37319124, 5 | node_id: 'MDQ6VXNlcjM3MzE5MTI0', 6 | avatar_url: 'https://avatars3.githubusercontent.com/u/37319124?v=4', 7 | gravatar_id: '', 8 | url: 'https://api.github.com/users/ThaELL1', 9 | html_url: 'https://github.com/ThaELL1', 10 | followers_url: 'https://api.github.com/users/ThaELL1/followers', 11 | following_url: 12 | 'https://api.github.com/users/ThaELL1/following{/other_user}', 13 | gists_url: 'https://api.github.com/users/ThaELL1/gists{/gist_id}', 14 | starred_url: 'https://api.github.com/users/ThaELL1/starred{/owner}{/repo}', 15 | subscriptions_url: 'https://api.github.com/users/ThaELL1/subscriptions', 16 | organizations_url: 'https://api.github.com/users/ThaELL1/orgs', 17 | repos_url: 'https://api.github.com/users/ThaELL1/repos', 18 | events_url: 'https://api.github.com/users/ThaELL1/events{/privacy}', 19 | received_events_url: 'https://api.github.com/users/ThaELL1/received_events', 20 | type: 'User', 21 | site_admin: false, 22 | }, 23 | { 24 | login: 'degreeck', 25 | id: 31404082, 26 | node_id: 'MDQ6VXNlcjMxNDA0MDgy', 27 | avatar_url: 'https://avatars1.githubusercontent.com/u/31404082?v=4', 28 | gravatar_id: '', 29 | url: 'https://api.github.com/users/degreeck', 30 | html_url: 'https://github.com/degreeck', 31 | followers_url: 'https://api.github.com/users/degreeck/followers', 32 | following_url: 33 | 'https://api.github.com/users/degreeck/following{/other_user}', 34 | gists_url: 'https://api.github.com/users/degreeck/gists{/gist_id}', 35 | starred_url: 'https://api.github.com/users/degreeck/starred{/owner}{/repo}', 36 | subscriptions_url: 'https://api.github.com/users/degreeck/subscriptions', 37 | organizations_url: 'https://api.github.com/users/degreeck/orgs', 38 | repos_url: 'https://api.github.com/users/degreeck/repos', 39 | events_url: 'https://api.github.com/users/degreeck/events{/privacy}', 40 | received_events_url: 41 | 'https://api.github.com/users/degreeck/received_events', 42 | type: 'User', 43 | site_admin: false, 44 | }, 45 | { 46 | login: 'Kemmy91', 47 | id: 42711367, 48 | node_id: 'MDQ6VXNlcjQyNzExMzY3', 49 | avatar_url: 'https://avatars2.githubusercontent.com/u/42711367?v=4', 50 | gravatar_id: '', 51 | url: 'https://api.github.com/users/Kemmy91', 52 | html_url: 'https://github.com/Kemmy91', 53 | followers_url: 'https://api.github.com/users/Kemmy91/followers', 54 | following_url: 55 | 'https://api.github.com/users/Kemmy91/following{/other_user}', 56 | gists_url: 'https://api.github.com/users/Kemmy91/gists{/gist_id}', 57 | starred_url: 'https://api.github.com/users/Kemmy91/starred{/owner}{/repo}', 58 | subscriptions_url: 'https://api.github.com/users/Kemmy91/subscriptions', 59 | organizations_url: 'https://api.github.com/users/Kemmy91/orgs', 60 | repos_url: 'https://api.github.com/users/Kemmy91/repos', 61 | events_url: 'https://api.github.com/users/Kemmy91/events{/privacy}', 62 | received_events_url: 'https://api.github.com/users/Kemmy91/received_events', 63 | type: 'User', 64 | site_admin: false, 65 | }, 66 | { 67 | login: 'alivanoy', 68 | id: 24864699, 69 | node_id: 'MDQ6VXNlcjI0ODY0Njk5', 70 | avatar_url: 'https://avatars2.githubusercontent.com/u/24864699?v=4', 71 | gravatar_id: '', 72 | url: 'https://api.github.com/users/alivanoy', 73 | html_url: 'https://github.com/alivanoy', 74 | followers_url: 'https://api.github.com/users/alivanoy/followers', 75 | following_url: 76 | 'https://api.github.com/users/alivanoy/following{/other_user}', 77 | gists_url: 'https://api.github.com/users/alivanoy/gists{/gist_id}', 78 | starred_url: 'https://api.github.com/users/alivanoy/starred{/owner}{/repo}', 79 | subscriptions_url: 'https://api.github.com/users/alivanoy/subscriptions', 80 | organizations_url: 'https://api.github.com/users/alivanoy/orgs', 81 | repos_url: 'https://api.github.com/users/alivanoy/repos', 82 | events_url: 'https://api.github.com/users/alivanoy/events{/privacy}', 83 | received_events_url: 84 | 'https://api.github.com/users/alivanoy/received_events', 85 | type: 'User', 86 | site_admin: false, 87 | }, 88 | { 89 | login: 'Turanwest', 90 | id: 40670951, 91 | node_id: 'MDQ6VXNlcjQwNjcwOTUx', 92 | avatar_url: 'https://avatars1.githubusercontent.com/u/40670951?v=4', 93 | gravatar_id: '', 94 | url: 'https://api.github.com/users/Turanwest', 95 | html_url: 'https://github.com/Turanwest', 96 | followers_url: 'https://api.github.com/users/Turanwest/followers', 97 | following_url: 98 | 'https://api.github.com/users/Turanwest/following{/other_user}', 99 | gists_url: 'https://api.github.com/users/Turanwest/gists{/gist_id}', 100 | starred_url: 101 | 'https://api.github.com/users/Turanwest/starred{/owner}{/repo}', 102 | subscriptions_url: 'https://api.github.com/users/Turanwest/subscriptions', 103 | organizations_url: 'https://api.github.com/users/Turanwest/orgs', 104 | repos_url: 'https://api.github.com/users/Turanwest/repos', 105 | events_url: 'https://api.github.com/users/Turanwest/events{/privacy}', 106 | received_events_url: 107 | 'https://api.github.com/users/Turanwest/received_events', 108 | type: 'User', 109 | site_admin: false, 110 | }, 111 | { 112 | login: 'cvsiraj95', 113 | id: 20457752, 114 | node_id: 'MDQ6VXNlcjIwNDU3NzUy', 115 | avatar_url: 'https://avatars2.githubusercontent.com/u/20457752?v=4', 116 | gravatar_id: '', 117 | url: 'https://api.github.com/users/cvsiraj95', 118 | html_url: 'https://github.com/cvsiraj95', 119 | followers_url: 'https://api.github.com/users/cvsiraj95/followers', 120 | following_url: 121 | 'https://api.github.com/users/cvsiraj95/following{/other_user}', 122 | gists_url: 'https://api.github.com/users/cvsiraj95/gists{/gist_id}', 123 | starred_url: 124 | 'https://api.github.com/users/cvsiraj95/starred{/owner}{/repo}', 125 | subscriptions_url: 'https://api.github.com/users/cvsiraj95/subscriptions', 126 | organizations_url: 'https://api.github.com/users/cvsiraj95/orgs', 127 | repos_url: 'https://api.github.com/users/cvsiraj95/repos', 128 | events_url: 'https://api.github.com/users/cvsiraj95/events{/privacy}', 129 | received_events_url: 130 | 'https://api.github.com/users/cvsiraj95/received_events', 131 | type: 'User', 132 | site_admin: false, 133 | }, 134 | { 135 | login: 'sidharthchawda', 136 | id: 33715740, 137 | node_id: 'MDQ6VXNlcjMzNzE1NzQw', 138 | avatar_url: 'https://avatars3.githubusercontent.com/u/33715740?v=4', 139 | gravatar_id: '', 140 | url: 'https://api.github.com/users/sidharthchawda', 141 | html_url: 'https://github.com/sidharthchawda', 142 | followers_url: 'https://api.github.com/users/sidharthchawda/followers', 143 | following_url: 144 | 'https://api.github.com/users/sidharthchawda/following{/other_user}', 145 | gists_url: 'https://api.github.com/users/sidharthchawda/gists{/gist_id}', 146 | starred_url: 147 | 'https://api.github.com/users/sidharthchawda/starred{/owner}{/repo}', 148 | subscriptions_url: 149 | 'https://api.github.com/users/sidharthchawda/subscriptions', 150 | organizations_url: 'https://api.github.com/users/sidharthchawda/orgs', 151 | repos_url: 'https://api.github.com/users/sidharthchawda/repos', 152 | events_url: 'https://api.github.com/users/sidharthchawda/events{/privacy}', 153 | received_events_url: 154 | 'https://api.github.com/users/sidharthchawda/received_events', 155 | type: 'User', 156 | site_admin: false, 157 | }, 158 | { 159 | login: 'mahmudalhakim', 160 | id: 16646383, 161 | node_id: 'MDQ6VXNlcjE2NjQ2Mzgz', 162 | avatar_url: 'https://avatars0.githubusercontent.com/u/16646383?v=4', 163 | gravatar_id: '', 164 | url: 'https://api.github.com/users/mahmudalhakim', 165 | html_url: 'https://github.com/mahmudalhakim', 166 | followers_url: 'https://api.github.com/users/mahmudalhakim/followers', 167 | following_url: 168 | 'https://api.github.com/users/mahmudalhakim/following{/other_user}', 169 | gists_url: 'https://api.github.com/users/mahmudalhakim/gists{/gist_id}', 170 | starred_url: 171 | 'https://api.github.com/users/mahmudalhakim/starred{/owner}{/repo}', 172 | subscriptions_url: 173 | 'https://api.github.com/users/mahmudalhakim/subscriptions', 174 | organizations_url: 'https://api.github.com/users/mahmudalhakim/orgs', 175 | repos_url: 'https://api.github.com/users/mahmudalhakim/repos', 176 | events_url: 'https://api.github.com/users/mahmudalhakim/events{/privacy}', 177 | received_events_url: 178 | 'https://api.github.com/users/mahmudalhakim/received_events', 179 | type: 'User', 180 | site_admin: false, 181 | }, 182 | { 183 | login: 'messanjay31', 184 | id: 41499303, 185 | node_id: 'MDQ6VXNlcjQxNDk5MzAz', 186 | avatar_url: 'https://avatars0.githubusercontent.com/u/41499303?v=4', 187 | gravatar_id: '', 188 | url: 'https://api.github.com/users/messanjay31', 189 | html_url: 'https://github.com/messanjay31', 190 | followers_url: 'https://api.github.com/users/messanjay31/followers', 191 | following_url: 192 | 'https://api.github.com/users/messanjay31/following{/other_user}', 193 | gists_url: 'https://api.github.com/users/messanjay31/gists{/gist_id}', 194 | starred_url: 195 | 'https://api.github.com/users/messanjay31/starred{/owner}{/repo}', 196 | subscriptions_url: 'https://api.github.com/users/messanjay31/subscriptions', 197 | organizations_url: 'https://api.github.com/users/messanjay31/orgs', 198 | repos_url: 'https://api.github.com/users/messanjay31/repos', 199 | events_url: 'https://api.github.com/users/messanjay31/events{/privacy}', 200 | received_events_url: 201 | 'https://api.github.com/users/messanjay31/received_events', 202 | type: 'User', 203 | site_admin: false, 204 | }, 205 | { 206 | login: 'jha900', 207 | id: 5097792, 208 | node_id: 'MDQ6VXNlcjUwOTc3OTI=', 209 | avatar_url: 'https://avatars1.githubusercontent.com/u/5097792?v=4', 210 | gravatar_id: '', 211 | url: 'https://api.github.com/users/jha900', 212 | html_url: 'https://github.com/jha900', 213 | followers_url: 'https://api.github.com/users/jha900/followers', 214 | following_url: 'https://api.github.com/users/jha900/following{/other_user}', 215 | gists_url: 'https://api.github.com/users/jha900/gists{/gist_id}', 216 | starred_url: 'https://api.github.com/users/jha900/starred{/owner}{/repo}', 217 | subscriptions_url: 'https://api.github.com/users/jha900/subscriptions', 218 | organizations_url: 'https://api.github.com/users/jha900/orgs', 219 | repos_url: 'https://api.github.com/users/jha900/repos', 220 | events_url: 'https://api.github.com/users/jha900/events{/privacy}', 221 | received_events_url: 'https://api.github.com/users/jha900/received_events', 222 | type: 'User', 223 | site_admin: false, 224 | }, 225 | { 226 | login: 'mechack200', 227 | id: 39648010, 228 | node_id: 'MDQ6VXNlcjM5NjQ4MDEw', 229 | avatar_url: 'https://avatars2.githubusercontent.com/u/39648010?v=4', 230 | gravatar_id: '', 231 | url: 'https://api.github.com/users/mechack200', 232 | html_url: 'https://github.com/mechack200', 233 | followers_url: 'https://api.github.com/users/mechack200/followers', 234 | following_url: 235 | 'https://api.github.com/users/mechack200/following{/other_user}', 236 | gists_url: 'https://api.github.com/users/mechack200/gists{/gist_id}', 237 | starred_url: 238 | 'https://api.github.com/users/mechack200/starred{/owner}{/repo}', 239 | subscriptions_url: 'https://api.github.com/users/mechack200/subscriptions', 240 | organizations_url: 'https://api.github.com/users/mechack200/orgs', 241 | repos_url: 'https://api.github.com/users/mechack200/repos', 242 | events_url: 'https://api.github.com/users/mechack200/events{/privacy}', 243 | received_events_url: 244 | 'https://api.github.com/users/mechack200/received_events', 245 | type: 'User', 246 | site_admin: false, 247 | }, 248 | { 249 | login: 'oromesuo1', 250 | id: 28497078, 251 | node_id: 'MDQ6VXNlcjI4NDk3MDc4', 252 | avatar_url: 'https://avatars3.githubusercontent.com/u/28497078?v=4', 253 | gravatar_id: '', 254 | url: 'https://api.github.com/users/oromesuo1', 255 | html_url: 'https://github.com/oromesuo1', 256 | followers_url: 'https://api.github.com/users/oromesuo1/followers', 257 | following_url: 258 | 'https://api.github.com/users/oromesuo1/following{/other_user}', 259 | gists_url: 'https://api.github.com/users/oromesuo1/gists{/gist_id}', 260 | starred_url: 261 | 'https://api.github.com/users/oromesuo1/starred{/owner}{/repo}', 262 | subscriptions_url: 'https://api.github.com/users/oromesuo1/subscriptions', 263 | organizations_url: 'https://api.github.com/users/oromesuo1/orgs', 264 | repos_url: 'https://api.github.com/users/oromesuo1/repos', 265 | events_url: 'https://api.github.com/users/oromesuo1/events{/privacy}', 266 | received_events_url: 267 | 'https://api.github.com/users/oromesuo1/received_events', 268 | type: 'User', 269 | site_admin: false, 270 | }, 271 | { 272 | login: 'TaiwoOluwasegun', 273 | id: 43286815, 274 | node_id: 'MDQ6VXNlcjQzMjg2ODE1', 275 | avatar_url: 'https://avatars2.githubusercontent.com/u/43286815?v=4', 276 | gravatar_id: '', 277 | url: 'https://api.github.com/users/TaiwoOluwasegun', 278 | html_url: 'https://github.com/TaiwoOluwasegun', 279 | followers_url: 'https://api.github.com/users/TaiwoOluwasegun/followers', 280 | following_url: 281 | 'https://api.github.com/users/TaiwoOluwasegun/following{/other_user}', 282 | gists_url: 'https://api.github.com/users/TaiwoOluwasegun/gists{/gist_id}', 283 | starred_url: 284 | 'https://api.github.com/users/TaiwoOluwasegun/starred{/owner}{/repo}', 285 | subscriptions_url: 286 | 'https://api.github.com/users/TaiwoOluwasegun/subscriptions', 287 | organizations_url: 'https://api.github.com/users/TaiwoOluwasegun/orgs', 288 | repos_url: 'https://api.github.com/users/TaiwoOluwasegun/repos', 289 | events_url: 'https://api.github.com/users/TaiwoOluwasegun/events{/privacy}', 290 | received_events_url: 291 | 'https://api.github.com/users/TaiwoOluwasegun/received_events', 292 | type: 'User', 293 | site_admin: false, 294 | }, 295 | { 296 | login: 'afourteia', 297 | id: 12877426, 298 | node_id: 'MDQ6VXNlcjEyODc3NDI2', 299 | avatar_url: 'https://avatars2.githubusercontent.com/u/12877426?v=4', 300 | gravatar_id: '', 301 | url: 'https://api.github.com/users/afourteia', 302 | html_url: 'https://github.com/afourteia', 303 | followers_url: 'https://api.github.com/users/afourteia/followers', 304 | following_url: 305 | 'https://api.github.com/users/afourteia/following{/other_user}', 306 | gists_url: 'https://api.github.com/users/afourteia/gists{/gist_id}', 307 | starred_url: 308 | 'https://api.github.com/users/afourteia/starred{/owner}{/repo}', 309 | subscriptions_url: 'https://api.github.com/users/afourteia/subscriptions', 310 | organizations_url: 'https://api.github.com/users/afourteia/orgs', 311 | repos_url: 'https://api.github.com/users/afourteia/repos', 312 | events_url: 'https://api.github.com/users/afourteia/events{/privacy}', 313 | received_events_url: 314 | 'https://api.github.com/users/afourteia/received_events', 315 | type: 'User', 316 | site_admin: false, 317 | }, 318 | { 319 | login: 'kozen0', 320 | id: 32563910, 321 | node_id: 'MDQ6VXNlcjMyNTYzOTEw', 322 | avatar_url: 'https://avatars2.githubusercontent.com/u/32563910?v=4', 323 | gravatar_id: '', 324 | url: 'https://api.github.com/users/kozen0', 325 | html_url: 'https://github.com/kozen0', 326 | followers_url: 'https://api.github.com/users/kozen0/followers', 327 | following_url: 'https://api.github.com/users/kozen0/following{/other_user}', 328 | gists_url: 'https://api.github.com/users/kozen0/gists{/gist_id}', 329 | starred_url: 'https://api.github.com/users/kozen0/starred{/owner}{/repo}', 330 | subscriptions_url: 'https://api.github.com/users/kozen0/subscriptions', 331 | organizations_url: 'https://api.github.com/users/kozen0/orgs', 332 | repos_url: 'https://api.github.com/users/kozen0/repos', 333 | events_url: 'https://api.github.com/users/kozen0/events{/privacy}', 334 | received_events_url: 'https://api.github.com/users/kozen0/received_events', 335 | type: 'User', 336 | site_admin: false, 337 | }, 338 | { 339 | login: 'vipinkrishna', 340 | id: 8280880, 341 | node_id: 'MDQ6VXNlcjgyODA4ODA=', 342 | avatar_url: 'https://avatars1.githubusercontent.com/u/8280880?v=4', 343 | gravatar_id: '', 344 | url: 'https://api.github.com/users/vipinkrishna', 345 | html_url: 'https://github.com/vipinkrishna', 346 | followers_url: 'https://api.github.com/users/vipinkrishna/followers', 347 | following_url: 348 | 'https://api.github.com/users/vipinkrishna/following{/other_user}', 349 | gists_url: 'https://api.github.com/users/vipinkrishna/gists{/gist_id}', 350 | starred_url: 351 | 'https://api.github.com/users/vipinkrishna/starred{/owner}{/repo}', 352 | subscriptions_url: 353 | 'https://api.github.com/users/vipinkrishna/subscriptions', 354 | organizations_url: 'https://api.github.com/users/vipinkrishna/orgs', 355 | repos_url: 'https://api.github.com/users/vipinkrishna/repos', 356 | events_url: 'https://api.github.com/users/vipinkrishna/events{/privacy}', 357 | received_events_url: 358 | 'https://api.github.com/users/vipinkrishna/received_events', 359 | type: 'User', 360 | site_admin: false, 361 | }, 362 | { 363 | login: 'ChrisLidyard', 364 | id: 39034474, 365 | node_id: 'MDQ6VXNlcjM5MDM0NDc0', 366 | avatar_url: 'https://avatars1.githubusercontent.com/u/39034474?v=4', 367 | gravatar_id: '', 368 | url: 'https://api.github.com/users/ChrisLidyard', 369 | html_url: 'https://github.com/ChrisLidyard', 370 | followers_url: 'https://api.github.com/users/ChrisLidyard/followers', 371 | following_url: 372 | 'https://api.github.com/users/ChrisLidyard/following{/other_user}', 373 | gists_url: 'https://api.github.com/users/ChrisLidyard/gists{/gist_id}', 374 | starred_url: 375 | 'https://api.github.com/users/ChrisLidyard/starred{/owner}{/repo}', 376 | subscriptions_url: 377 | 'https://api.github.com/users/ChrisLidyard/subscriptions', 378 | organizations_url: 'https://api.github.com/users/ChrisLidyard/orgs', 379 | repos_url: 'https://api.github.com/users/ChrisLidyard/repos', 380 | events_url: 'https://api.github.com/users/ChrisLidyard/events{/privacy}', 381 | received_events_url: 382 | 'https://api.github.com/users/ChrisLidyard/received_events', 383 | type: 'User', 384 | site_admin: false, 385 | }, 386 | { 387 | login: 'flex2016', 388 | id: 26524099, 389 | node_id: 'MDQ6VXNlcjI2NTI0MDk5', 390 | avatar_url: 'https://avatars1.githubusercontent.com/u/26524099?v=4', 391 | gravatar_id: '', 392 | url: 'https://api.github.com/users/flex2016', 393 | html_url: 'https://github.com/flex2016', 394 | followers_url: 'https://api.github.com/users/flex2016/followers', 395 | following_url: 396 | 'https://api.github.com/users/flex2016/following{/other_user}', 397 | gists_url: 'https://api.github.com/users/flex2016/gists{/gist_id}', 398 | starred_url: 'https://api.github.com/users/flex2016/starred{/owner}{/repo}', 399 | subscriptions_url: 'https://api.github.com/users/flex2016/subscriptions', 400 | organizations_url: 'https://api.github.com/users/flex2016/orgs', 401 | repos_url: 'https://api.github.com/users/flex2016/repos', 402 | events_url: 'https://api.github.com/users/flex2016/events{/privacy}', 403 | received_events_url: 404 | 'https://api.github.com/users/flex2016/received_events', 405 | type: 'User', 406 | site_admin: false, 407 | }, 408 | { 409 | login: 'MaurickThom', 410 | id: 43498912, 411 | node_id: 'MDQ6VXNlcjQzNDk4OTEy', 412 | avatar_url: 'https://avatars0.githubusercontent.com/u/43498912?v=4', 413 | gravatar_id: '', 414 | url: 'https://api.github.com/users/MaurickThom', 415 | html_url: 'https://github.com/MaurickThom', 416 | followers_url: 'https://api.github.com/users/MaurickThom/followers', 417 | following_url: 418 | 'https://api.github.com/users/MaurickThom/following{/other_user}', 419 | gists_url: 'https://api.github.com/users/MaurickThom/gists{/gist_id}', 420 | starred_url: 421 | 'https://api.github.com/users/MaurickThom/starred{/owner}{/repo}', 422 | subscriptions_url: 'https://api.github.com/users/MaurickThom/subscriptions', 423 | organizations_url: 'https://api.github.com/users/MaurickThom/orgs', 424 | repos_url: 'https://api.github.com/users/MaurickThom/repos', 425 | events_url: 'https://api.github.com/users/MaurickThom/events{/privacy}', 426 | received_events_url: 427 | 'https://api.github.com/users/MaurickThom/received_events', 428 | type: 'User', 429 | site_admin: false, 430 | }, 431 | { 432 | login: 'iambin', 433 | id: 5101374, 434 | node_id: 'MDQ6VXNlcjUxMDEzNzQ=', 435 | avatar_url: 'https://avatars0.githubusercontent.com/u/5101374?v=4', 436 | gravatar_id: '', 437 | url: 'https://api.github.com/users/iambin', 438 | html_url: 'https://github.com/iambin', 439 | followers_url: 'https://api.github.com/users/iambin/followers', 440 | following_url: 'https://api.github.com/users/iambin/following{/other_user}', 441 | gists_url: 'https://api.github.com/users/iambin/gists{/gist_id}', 442 | starred_url: 'https://api.github.com/users/iambin/starred{/owner}{/repo}', 443 | subscriptions_url: 'https://api.github.com/users/iambin/subscriptions', 444 | organizations_url: 'https://api.github.com/users/iambin/orgs', 445 | repos_url: 'https://api.github.com/users/iambin/repos', 446 | events_url: 'https://api.github.com/users/iambin/events{/privacy}', 447 | received_events_url: 'https://api.github.com/users/iambin/received_events', 448 | type: 'User', 449 | site_admin: false, 450 | }, 451 | { 452 | login: 'OlhaDemydenko', 453 | id: 45002163, 454 | node_id: 'MDQ6VXNlcjQ1MDAyMTYz', 455 | avatar_url: 'https://avatars1.githubusercontent.com/u/45002163?v=4', 456 | gravatar_id: '', 457 | url: 'https://api.github.com/users/OlhaDemydenko', 458 | html_url: 'https://github.com/OlhaDemydenko', 459 | followers_url: 'https://api.github.com/users/OlhaDemydenko/followers', 460 | following_url: 461 | 'https://api.github.com/users/OlhaDemydenko/following{/other_user}', 462 | gists_url: 'https://api.github.com/users/OlhaDemydenko/gists{/gist_id}', 463 | starred_url: 464 | 'https://api.github.com/users/OlhaDemydenko/starred{/owner}{/repo}', 465 | subscriptions_url: 466 | 'https://api.github.com/users/OlhaDemydenko/subscriptions', 467 | organizations_url: 'https://api.github.com/users/OlhaDemydenko/orgs', 468 | repos_url: 'https://api.github.com/users/OlhaDemydenko/repos', 469 | events_url: 'https://api.github.com/users/OlhaDemydenko/events{/privacy}', 470 | received_events_url: 471 | 'https://api.github.com/users/OlhaDemydenko/received_events', 472 | type: 'User', 473 | site_admin: false, 474 | }, 475 | { 476 | login: 'brestby', 477 | id: 14026212, 478 | node_id: 'MDQ6VXNlcjE0MDI2MjEy', 479 | avatar_url: 'https://avatars0.githubusercontent.com/u/14026212?v=4', 480 | gravatar_id: '', 481 | url: 'https://api.github.com/users/brestby', 482 | html_url: 'https://github.com/brestby', 483 | followers_url: 'https://api.github.com/users/brestby/followers', 484 | following_url: 485 | 'https://api.github.com/users/brestby/following{/other_user}', 486 | gists_url: 'https://api.github.com/users/brestby/gists{/gist_id}', 487 | starred_url: 'https://api.github.com/users/brestby/starred{/owner}{/repo}', 488 | subscriptions_url: 'https://api.github.com/users/brestby/subscriptions', 489 | organizations_url: 'https://api.github.com/users/brestby/orgs', 490 | repos_url: 'https://api.github.com/users/brestby/repos', 491 | events_url: 'https://api.github.com/users/brestby/events{/privacy}', 492 | received_events_url: 'https://api.github.com/users/brestby/received_events', 493 | type: 'User', 494 | site_admin: false, 495 | }, 496 | { 497 | login: 'xipeRafa', 498 | id: 43357824, 499 | node_id: 'MDQ6VXNlcjQzMzU3ODI0', 500 | avatar_url: 'https://avatars3.githubusercontent.com/u/43357824?v=4', 501 | gravatar_id: '', 502 | url: 'https://api.github.com/users/xipeRafa', 503 | html_url: 'https://github.com/xipeRafa', 504 | followers_url: 'https://api.github.com/users/xipeRafa/followers', 505 | following_url: 506 | 'https://api.github.com/users/xipeRafa/following{/other_user}', 507 | gists_url: 'https://api.github.com/users/xipeRafa/gists{/gist_id}', 508 | starred_url: 'https://api.github.com/users/xipeRafa/starred{/owner}{/repo}', 509 | subscriptions_url: 'https://api.github.com/users/xipeRafa/subscriptions', 510 | organizations_url: 'https://api.github.com/users/xipeRafa/orgs', 511 | repos_url: 'https://api.github.com/users/xipeRafa/repos', 512 | events_url: 'https://api.github.com/users/xipeRafa/events{/privacy}', 513 | received_events_url: 514 | 'https://api.github.com/users/xipeRafa/received_events', 515 | type: 'User', 516 | site_admin: false, 517 | }, 518 | { 519 | login: 'kotya', 520 | id: 1913221, 521 | node_id: 'MDQ6VXNlcjE5MTMyMjE=', 522 | avatar_url: 'https://avatars3.githubusercontent.com/u/1913221?v=4', 523 | gravatar_id: '', 524 | url: 'https://api.github.com/users/kotya', 525 | html_url: 'https://github.com/kotya', 526 | followers_url: 'https://api.github.com/users/kotya/followers', 527 | following_url: 'https://api.github.com/users/kotya/following{/other_user}', 528 | gists_url: 'https://api.github.com/users/kotya/gists{/gist_id}', 529 | starred_url: 'https://api.github.com/users/kotya/starred{/owner}{/repo}', 530 | subscriptions_url: 'https://api.github.com/users/kotya/subscriptions', 531 | organizations_url: 'https://api.github.com/users/kotya/orgs', 532 | repos_url: 'https://api.github.com/users/kotya/repos', 533 | events_url: 'https://api.github.com/users/kotya/events{/privacy}', 534 | received_events_url: 'https://api.github.com/users/kotya/received_events', 535 | type: 'User', 536 | site_admin: false, 537 | }, 538 | { 539 | login: 'katerinaSo', 540 | id: 37941283, 541 | node_id: 'MDQ6VXNlcjM3OTQxMjgz', 542 | avatar_url: 'https://avatars3.githubusercontent.com/u/37941283?v=4', 543 | gravatar_id: '', 544 | url: 'https://api.github.com/users/katerinaSo', 545 | html_url: 'https://github.com/katerinaSo', 546 | followers_url: 'https://api.github.com/users/katerinaSo/followers', 547 | following_url: 548 | 'https://api.github.com/users/katerinaSo/following{/other_user}', 549 | gists_url: 'https://api.github.com/users/katerinaSo/gists{/gist_id}', 550 | starred_url: 551 | 'https://api.github.com/users/katerinaSo/starred{/owner}{/repo}', 552 | subscriptions_url: 'https://api.github.com/users/katerinaSo/subscriptions', 553 | organizations_url: 'https://api.github.com/users/katerinaSo/orgs', 554 | repos_url: 'https://api.github.com/users/katerinaSo/repos', 555 | events_url: 'https://api.github.com/users/katerinaSo/events{/privacy}', 556 | received_events_url: 557 | 'https://api.github.com/users/katerinaSo/received_events', 558 | type: 'User', 559 | site_admin: false, 560 | }, 561 | { 562 | login: 'JaroslawLis', 563 | id: 37364317, 564 | node_id: 'MDQ6VXNlcjM3MzY0MzE3', 565 | avatar_url: 'https://avatars0.githubusercontent.com/u/37364317?v=4', 566 | gravatar_id: '', 567 | url: 'https://api.github.com/users/JaroslawLis', 568 | html_url: 'https://github.com/JaroslawLis', 569 | followers_url: 'https://api.github.com/users/JaroslawLis/followers', 570 | following_url: 571 | 'https://api.github.com/users/JaroslawLis/following{/other_user}', 572 | gists_url: 'https://api.github.com/users/JaroslawLis/gists{/gist_id}', 573 | starred_url: 574 | 'https://api.github.com/users/JaroslawLis/starred{/owner}{/repo}', 575 | subscriptions_url: 'https://api.github.com/users/JaroslawLis/subscriptions', 576 | organizations_url: 'https://api.github.com/users/JaroslawLis/orgs', 577 | repos_url: 'https://api.github.com/users/JaroslawLis/repos', 578 | events_url: 'https://api.github.com/users/JaroslawLis/events{/privacy}', 579 | received_events_url: 580 | 'https://api.github.com/users/JaroslawLis/received_events', 581 | type: 'User', 582 | site_admin: false, 583 | }, 584 | { 585 | login: 'JustinAnthonyB', 586 | id: 20384195, 587 | node_id: 'MDQ6VXNlcjIwMzg0MTk1', 588 | avatar_url: 'https://avatars2.githubusercontent.com/u/20384195?v=4', 589 | gravatar_id: '', 590 | url: 'https://api.github.com/users/JustinAnthonyB', 591 | html_url: 'https://github.com/JustinAnthonyB', 592 | followers_url: 'https://api.github.com/users/JustinAnthonyB/followers', 593 | following_url: 594 | 'https://api.github.com/users/JustinAnthonyB/following{/other_user}', 595 | gists_url: 'https://api.github.com/users/JustinAnthonyB/gists{/gist_id}', 596 | starred_url: 597 | 'https://api.github.com/users/JustinAnthonyB/starred{/owner}{/repo}', 598 | subscriptions_url: 599 | 'https://api.github.com/users/JustinAnthonyB/subscriptions', 600 | organizations_url: 'https://api.github.com/users/JustinAnthonyB/orgs', 601 | repos_url: 'https://api.github.com/users/JustinAnthonyB/repos', 602 | events_url: 'https://api.github.com/users/JustinAnthonyB/events{/privacy}', 603 | received_events_url: 604 | 'https://api.github.com/users/JustinAnthonyB/received_events', 605 | type: 'User', 606 | site_admin: false, 607 | }, 608 | { 609 | login: 'dundja', 610 | id: 42780673, 611 | node_id: 'MDQ6VXNlcjQyNzgwNjcz', 612 | avatar_url: 'https://avatars1.githubusercontent.com/u/42780673?v=4', 613 | gravatar_id: '', 614 | url: 'https://api.github.com/users/dundja', 615 | html_url: 'https://github.com/dundja', 616 | followers_url: 'https://api.github.com/users/dundja/followers', 617 | following_url: 'https://api.github.com/users/dundja/following{/other_user}', 618 | gists_url: 'https://api.github.com/users/dundja/gists{/gist_id}', 619 | starred_url: 'https://api.github.com/users/dundja/starred{/owner}{/repo}', 620 | subscriptions_url: 'https://api.github.com/users/dundja/subscriptions', 621 | organizations_url: 'https://api.github.com/users/dundja/orgs', 622 | repos_url: 'https://api.github.com/users/dundja/repos', 623 | events_url: 'https://api.github.com/users/dundja/events{/privacy}', 624 | received_events_url: 'https://api.github.com/users/dundja/received_events', 625 | type: 'User', 626 | site_admin: false, 627 | }, 628 | { 629 | login: 'wisemanchris92', 630 | id: 32992448, 631 | node_id: 'MDQ6VXNlcjMyOTkyNDQ4', 632 | avatar_url: 'https://avatars1.githubusercontent.com/u/32992448?v=4', 633 | gravatar_id: '', 634 | url: 'https://api.github.com/users/wisemanchris92', 635 | html_url: 'https://github.com/wisemanchris92', 636 | followers_url: 'https://api.github.com/users/wisemanchris92/followers', 637 | following_url: 638 | 'https://api.github.com/users/wisemanchris92/following{/other_user}', 639 | gists_url: 'https://api.github.com/users/wisemanchris92/gists{/gist_id}', 640 | starred_url: 641 | 'https://api.github.com/users/wisemanchris92/starred{/owner}{/repo}', 642 | subscriptions_url: 643 | 'https://api.github.com/users/wisemanchris92/subscriptions', 644 | organizations_url: 'https://api.github.com/users/wisemanchris92/orgs', 645 | repos_url: 'https://api.github.com/users/wisemanchris92/repos', 646 | events_url: 'https://api.github.com/users/wisemanchris92/events{/privacy}', 647 | received_events_url: 648 | 'https://api.github.com/users/wisemanchris92/received_events', 649 | type: 'User', 650 | site_admin: false, 651 | }, 652 | { 653 | login: '919971603657', 654 | id: 19673568, 655 | node_id: 'MDQ6VXNlcjE5NjczNTY4', 656 | avatar_url: 'https://avatars0.githubusercontent.com/u/19673568?v=4', 657 | gravatar_id: '', 658 | url: 'https://api.github.com/users/919971603657', 659 | html_url: 'https://github.com/919971603657', 660 | followers_url: 'https://api.github.com/users/919971603657/followers', 661 | following_url: 662 | 'https://api.github.com/users/919971603657/following{/other_user}', 663 | gists_url: 'https://api.github.com/users/919971603657/gists{/gist_id}', 664 | starred_url: 665 | 'https://api.github.com/users/919971603657/starred{/owner}{/repo}', 666 | subscriptions_url: 667 | 'https://api.github.com/users/919971603657/subscriptions', 668 | organizations_url: 'https://api.github.com/users/919971603657/orgs', 669 | repos_url: 'https://api.github.com/users/919971603657/repos', 670 | events_url: 'https://api.github.com/users/919971603657/events{/privacy}', 671 | received_events_url: 672 | 'https://api.github.com/users/919971603657/received_events', 673 | type: 'User', 674 | site_admin: false, 675 | }, 676 | ]; 677 | --------------------------------------------------------------------------------