From 3d7dac5ac47c519308a9ffef27c959bee3451a67 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Mon, 8 May 2017 20:46:26 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=AD=20it's=20a=20thing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 13 ++++ .gitignore | 3 + .travis.yml | 2 + index.js | 132 +++++++++++++++++++++++++++++++++++++++ license.md | 21 +++++++ media/repo-banner.sketch | Bin 0 -> 36757 bytes media/repo-banner@2x.png | Bin 0 -> 52932 bytes package.json | 33 ++++++++++ readme.md | 66 ++++++++++++++++++++ test/index.js | 17 +++++ 10 files changed, 287 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100755 index.js create mode 100755 license.md create mode 100644 media/repo-banner.sketch create mode 100644 media/repo-banner@2x.png create mode 100755 package.json create mode 100755 readme.md create mode 100644 test/index.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b64e0cd --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ + +# EditorConfig is awesome: http://EditorConfig.org + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +insert_final_newline = true +charset = utf-8 +trim_trailing_whitespace = true + +[*.json] +indent_size = 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8f333c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +npm-debug.log +yarn.lock \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..c379f83 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,2 @@ +language: node_js +node_js: node \ No newline at end of file diff --git a/index.js b/index.js new file mode 100755 index 0000000..a02fd12 --- /dev/null +++ b/index.js @@ -0,0 +1,132 @@ +const fetch = require('node-fetch') +const ms = require('ms') +const chalk = require('chalk') + +let data = [] +let dataRepos = [] +let dataReleases = [] + +const username = 'bigchaindb' +const reponame = 'bigchaindb' // Used for fetching specific release + +const log = text => console.log(text) +const logError = text => console.log(chalk.bold.red(text)) + +// Response handling for all fetch calls +const handleResponse = res => { + if (res.status !== 200) { + return logError('Non-200 response code from GitHub: ' + res.status) + } + return res.json() +} + +// Request headers for all fetch calls +const headers = [{ + headers: { + Accept: 'application/vnd.github.preview' + } +}] + +// +// Fetch all public GitHub repos +// +const fetchRepos = () => { + const start = Date.now() + const url = 'https://api.github.com/users/' + username + '/repos' + + fetch(url, headers) + .then(res => { + return handleResponse(res) + }) + .then(data_ => { + if (!data_) { + return + } + + dataRepos = data_.map(({ + name, + description, + html_url, + stargazers_count, + forks_count, + fork + }) => ({ + name, + description, + url: html_url, + stars: stargazers_count, + forks: forks_count, + is_fork: fork + })).sort((p1, p2) => + p2.stars - p1.stars + ) + + log(`Re-built projects cache. ` + + `Total: ${data_.length} public BigchainDB projects. ` + + `Elapsed: ${(new Date() - start)}ms`) + }) + .catch(err => { + logError('Error parsing response from GitHub: ' + err.stack) + }) +} + +// +// Fetch GitHub releases +// +// @TODO: make this fetch all releases of all repos +// +const fetchReleases = () => { + const start = Date.now() + const url = 'https://api.github.com/repos/bigchaindb/' + reponame + '/releases/latest' + + fetch(url, headers) + .then(res => { + return handleResponse(res) + }) + .then(data_ => { + if (!data_) { + return + } + + dataReleases = ({ + name: reponame, + release: data_.tag_name + }) + + log(`Re-built releases cache. ` + + `Latest release: ${data_.tag_name}. ` + + `Elapsed: ${(new Date() - start)}ms`) + }) + .catch(err => { + logError('Error parsing response from GitHub: ' + err.stack) + }) +} + +const engage = () => { + fetchRepos() + fetchReleases() +} + +// +// Let's roll, and roll again every X ms +// +engage() +setInterval(engage, ms('15m')) + +// +// Create the response +// +module.exports = async (req, res) => { + res.setHeader('Access-Control-Allow-Origin', '*') + res.setHeader('Access-Control-Allow-Methods', 'GET') + + // Merge the responses together + // kinda hacky, needs rewrite for adding release info to all objects in dataRepos + data = Object.assign(dataReleases, dataRepos[0]) + data = Object.assign(dataRepos, {0: data}) + + // Make json pretty again. + data = JSON.stringify(data, null, 2) + + return data +} diff --git a/license.md b/license.md new file mode 100755 index 0000000..af200da --- /dev/null +++ b/license.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 BigchainDB GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/media/repo-banner.sketch b/media/repo-banner.sketch new file mode 100644 index 0000000000000000000000000000000000000000..b036caf27e1faed996b059cc7cc29f1a627c54dd GIT binary patch literal 36757 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 Microservice to cache and expose GitHub projects for use throughout [www.bigchaindb.com](https://www.bigchaindb.com). + +[![Build Status](https://travis-ci.org/bigchaindb/github-projects.svg?branch=master)](https://travis-ci.org/bigchaindb/github-projects) +[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo) + + + + +## API + +Endpoint: [`https://bigchaindb-github.now.sh`](https://bigchaindb-github.now.sh) + +### GET / + +**200**: Returns a list of all public projects as follows + +```json +[ + { + "name": "project-name", + "description": "The description", + "stars": 3040, + "forks": 293, + "is_fork": false, + "release": "v0.10.0", + "url": "https://github.com/bigchaindb/project" + } +] +``` + +## Development + +Install dependencies: + +```bash +npm install +``` + +And run the server: + +```bash +npm start +``` + +## Deployment + +Deploy to [now](https://zeit.co/now), make sure to switch to BigchainDB org before deploying: + +```bash +# first run +now login +now switch + +# deploy +now +# switch alias to new deployment, e.g. +now alias bigchaindb-github-projects-wxkyissxos bigchaindb-github +``` + +## Authors + +- Matthias Kretschmann ([@kremalicious](https://github.com/kremalicious)) - [BigchainDB](https://www.bigchaindb.com) + +Blatantly ~~copied from~~ inspired by [zeit/github-projects](https://github.com/zeit/github-projects) diff --git a/test/index.js b/test/index.js new file mode 100644 index 0000000..624b839 --- /dev/null +++ b/test/index.js @@ -0,0 +1,17 @@ +import micro from 'micro' +import test from 'ava' +import listen from 'test-listen' +import request from 'request-promise' + +test('it works', async t => { + const service = micro(async (req, res) => { + micro.send(res, 200, { + test: 'woot' + }) + }) + + const url = await listen(service) + const body = await request(url) + + t.deepEqual(JSON.parse(body).test, 'woot') +})