@cekeh/github-repos
v1.1.0
Published
Express middleware to grab repository information from GitHub
Downloads
10
Readme
github-repos
Express middleware to grab repository information from GitHubs REST API.
Uses GitHub API to pull repositories sorted and orders in a specified way.
JDoc
/**
* Grab GitHub repositories
* @param {Object} options - GitHubRepos options
* @param {string} options.user - GitHub username (User Agent)
* @param {string} options.token - GitHub API access token
* @param {string} [options.sort="updated"] - How to sort repositories
* one of (interactions, reactions, author-date, committer-date, updated)
* @param {string} [options.order="desc"] - How to order repositories
* @param {integer} [options.interval=3600000] - Update interval (default 1h)
* @throws Missing options.user...
* @throws Missing options.token...
*/
Usage
const GitHub = require("@cekeh/github-repos");
const express = require("express");
let app = express();
app.use(GitHub({
user: "ThomasvanBommel",
token: "authentication-token"
}));
app.get("*", (req, res) => {
console.log(req.github);
});
app.listen(8000);
Example Output
{
profile: {
login: 'ThomasvanBommel',
id: 39364535,
node_id: 'MDQ6VXNlcjM5MzY0NTM1',
avatar_url: 'https://avatars3.githubusercontent.com/u/39364535?v=4',
gravatar_id: '',
url: 'https://api.github.com/users/ThomasvanBommel',
html_url: 'https://github.com/ThomasvanBommel',
followers_url: 'https://api.github.com/users/ThomasvanBommel/followers',
following_url: 'https://api.github.com/users/ThomasvanBommel/following{/other_user}',
gists_url: 'https://api.github.com/users/ThomasvanBommel/gists{/gist_id}',
starred_url: 'https://api.github.com/users/ThomasvanBommel/starred{/owner}{/repo}',
subscriptions_url: 'https://api.github.com/users/ThomasvanBommel/subscriptions',
organizations_url: 'https://api.github.com/users/ThomasvanBommel/orgs',
repos_url: 'https://api.github.com/users/ThomasvanBommel/repos',
events_url: 'https://api.github.com/users/ThomasvanBommel/events{/privacy}',
received_events_url: 'https://api.github.com/users/ThomasvanBommel/received_events',
type: 'User',
site_admin: false,
name: null,
company: null,
blog: 'https://cekeh.com',
location: 'Nova Scotia',
email: null,
hireable: true,
bio: null,
twitter_username: 'cekeh_',
public_repos: 21,
public_gists: 0,
followers: 0,
following: 0,
created_at: '2018-05-17T06:29:16Z',
updated_at: '2020-12-29T20:37:09Z'
},
repos: [
{
id: 321590382,
node_id: 'MDEwOlJlcG9zaXRvcnkzMjE1OTAzODI=',
name: 'transport-layer-security',
full_name: 'ThomasvanBommel/transport-layer-security',
private: false,
owner: [Object],
html_url: 'https://github.com/ThomasvanBommel/transport-layer-security',
description: 'This is a JavaScript module created for use with NodeJS that loads TLS certificates from the filesystem for use with the https module. This module will also generate self signed certificates for "localhost" when no certificates are found in the prescribes location. (uses openssl from the command line)',
fork: false,
url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security',
forks_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/forks',
keys_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/keys{/key_id}',
collaborators_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/collaborators{/collaborator}',
teams_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/teams',
hooks_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/hooks',
issue_events_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/issues/events{/number}',
events_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/events',
assignees_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/assignees{/user}',
branches_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/branches{/branch}',
tags_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/tags',
blobs_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/git/blobs{/sha}',
git_tags_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/git/tags{/sha}',
git_refs_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/git/refs{/sha}',
trees_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/git/trees{/sha}',
statuses_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/statuses/{sha}',
languages_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/languages',
stargazers_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/stargazers',
contributors_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/contributors',
subscribers_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/subscribers',
subscription_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/subscription',
commits_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/commits{/sha}',
git_commits_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/git/commits{/sha}',
comments_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/comments{/number}',
issue_comment_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/issues/comments{/number}',
contents_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/contents/{+path}',
compare_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/compare/{base}...{head}',
merges_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/merges',
archive_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/{archive_format}{/ref}',
downloads_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/downloads',
issues_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/issues{/number}',
pulls_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/pulls{/number}',
milestones_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/milestones{/number}',
notifications_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/notifications{?since,all,participating}',
labels_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/labels{/name}',
releases_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/releases{/id}',
deployments_url: 'https://api.github.com/repos/ThomasvanBommel/transport-layer-security/deployments',
created_at: '2020-12-15T07:43:23Z',
updated_at: '2020-12-29T21:42:16Z',
pushed_at: '2020-12-29T21:42:14Z',
git_url: 'git://github.com/ThomasvanBommel/transport-layer-security.git',
ssh_url: '[email protected]:ThomasvanBommel/transport-layer-security.git',
clone_url: 'https://github.com/ThomasvanBommel/transport-layer-security.git',
svn_url: 'https://github.com/ThomasvanBommel/transport-layer-security',
homepage: null,
size: 4,
stargazers_count: 0,
watchers_count: 0,
language: 'JavaScript',
has_issues: true,
has_projects: true,
has_downloads: true,
has_wiki: true,
has_pages: false,
forks_count: 0,
mirror_url: null,
archived: false,
disabled: false,
open_issues_count: 0,
license: [Object],
forks: 0,
open_issues: 0,
watchers: 0,
default_branch: 'main',
permissions: [Object],
type: 'github',
date: 2020-12-29T21:42:16.000Z
},
/* ... */
]
}