Sign inSign up

evenchange4/micro-github-latest

By evenchange4

•Updated about 9 years ago

Microservice for downloading the latest asset of GitHub release.

Image
1

8.0K

evenchange4/micro-github-latest repository overview

⁠Micro-github-latest

Microservice for downloading the latest asset of GitHub release.

Further reading: [中文] Microservice 產品交付 - Dockerize 與 Zeit JavaScript 跨平台解決方案⁠

Travis Codecov Status Github Tag node

Dependency Status devDependency Status peerDependency Status Greenkeeper badge prettier license

⁠Feature

  • Internal 304 cache handler for GitHub Api. PR#5⁠
  • Handle error 403, fallback to githut releases/latest page when rate limit exceeded. PR#19⁠

⁠How To Use

⁠a. Deploy to Now.sh

One click deploys to △ now

Deploy to now

⁠b. Binary executable

Download from GitHub latest release⁠.

$ ORIGIN=$YOUR_DOMAIN \
  ACCESS_TOKEN=$GITHUB_ACCESS_TOKEN \
  ./micro-github-latest-macos --port $PORT

Note: You can run it without Node.js installed.

⁠c. Docker image

Pull from dockerhub⁠.

Docker Automated build Docker Pulls Docker Size

$ docker pull evenchange4/micro-github-latest:latest
$ docker run --rm -it \
  -p $PORT:3000 \
  -e "ORIGIN=YOUR_DOMAIN" \
  -e "ACCESS_TOKEN=GITHUB_ACCESS_TOKEN" \
  evenchange4/micro-github-latest:latest
⁠d. NPM CLI

Install from npm⁠.

npm downloads npm

$ npm i micro-github-latest -g

$ ORIGIN=$YOUR_DOMAIN \
  ACCESS_TOKEN=$GITHUB_ACCESS_TOKEN \
  micro-github-latest --port $PORT

Note: You should use Node.js >= 8 .

⁠API

⁠Environment variables
ENVRequiredDefaultDescription
ORIGIN*Setup access-control-allow-origin for CORS.
ACCESS_TOKENSetup GitHub access token⁠ with the repo scope.

Note: You should use ACCESS_TOKEN to increase the rate limit.

⁠CLI arguments
$ micro-github-latest --help
Usage: micro-github-latest <command> [options]

Options:
  -p, --port     HTTP server PORT                                [default: 3000]
  -h, --help     Show help                                             [boolean]
  -v, --version  Show version number                                   [boolean]
⁠URL pathname
MethodPathnameDescription
GET/:owner/:repo/latest302 redirect to the first asset of latest release.
GET/:owner/:repo/:name/latest302 redirect to the first matched one by asset name of latest release.
GET/rate_limitGet your current rate limit status.

⁠Demo

Note: You should deploy your own service for production usage.

⁠Technology Stacks

  • Micro⁠: Asynchronous HTTP microservices.
  • Micro-router⁠: A tiny and functional router for Zeit's Micro.
  • Dockerhub⁠: Automatically deploy docker image.
  • Now.sh⁠: Realtime global deployments
  • Pkg⁠: Package your Node.js project into an executable
  • Travis: CI

⁠Developer Guide

⁠Requirements
  • node >= 8.5.0
  • npm >= 5.3.0
  • yarn >= 1.0.2
$ git clone https://github.com/evenchange4/micro-github-latest.git
$ yarn install --pure-lockfile

$ yarn run dev # dev server
$ yarn start   # prod server
$ yarn run pkg # output binary files
⁠Test
$ yarn run format
$ yarn run eslint
$ yarn run test:watch
⁠Docker
$ docker build -t micro-github-latest .

# Push to dockerhub
$ git push

Note: Multi-stage builds are a new feature in Docker 17.05.

⁠Github release / NPM release
$ npm version patch
$ git push

⁠CONTRIBUTING

  • ⇄ Pull requests and ★ Stars are always welcome.
  • For bugs and feature requests, please create an issue.
  • Pull requests must be accompanied by passing automated tests ($ yarn run test).

⁠CHANGELOG⁠

⁠LICENSE⁠

MIT: http://michaelhsu.mit-license.org⁠

Tag summary

Content type

Image

Digest

Size

19.1 MB

Last updated

about 9 years ago

docker pull evenchange4/micro-github-latest