UNPKG

swgg-github-pulls

Version:

this zero-dependency package will provide a (nodejs-compatible) swagger-client for github-pulls's web-apis, with a working web-demo

413 lines (332 loc) 21.1 kB
# swgg-github-pulls this zero-dependency package will provide a (nodejs-compatible) swagger-client for github-pulls's web-apis, with a working web-demo # live web demo - [https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app) [![travis-ci.org build-status](https://api.travis-ci.org/kaizhu256/node-swgg-github-pulls.svg)](https://travis-ci.org/kaizhu256/node-swgg-github-pulls) [![coverage](https://kaizhu256.github.io/node-swgg-github-pulls/build/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-pulls/build/coverage.html/index.html) [![NPM](https://nodei.co/npm/swgg-github-pulls.png?downloads=true)](https://www.npmjs.com/package/swgg-github-pulls) [![build commit status](https://kaizhu256.github.io/node-swgg-github-pulls/build/build.badge.svg)](https://travis-ci.org/kaizhu256/node-swgg-github-pulls) | git-branch : | [master](https://github.com/kaizhu256/node-swgg-github-pulls/tree/master) | [beta](https://github.com/kaizhu256/node-swgg-github-pulls/tree/beta) | [alpha](https://github.com/kaizhu256/node-swgg-github-pulls/tree/alpha)| |--:|:--|:--|:--| | test-server-github : | [![github.com test-server](https://kaizhu256.github.io/node-swgg-github-pulls/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build..master..travis-ci.org/app) | [![github.com test-server](https://kaizhu256.github.io/node-swgg-github-pulls/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app) | [![github.com test-server](https://kaizhu256.github.io/node-swgg-github-pulls/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build..alpha..travis-ci.org/app)| | test-report : | [![test-report](https://kaizhu256.github.io/node-swgg-github-pulls/build..master..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-swgg-github-pulls/build..master..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-swgg-github-pulls/build..alpha..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-swgg-github-pulls/build..alpha..travis-ci.org/test-report.html)| | coverage : | [![coverage](https://kaizhu256.github.io/node-swgg-github-pulls/build..master..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-pulls/build..master..travis-ci.org/coverage.html/index.html) | [![coverage](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/coverage.html/index.html) | [![coverage](https://kaizhu256.github.io/node-swgg-github-pulls/build..alpha..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-pulls/build..alpha..travis-ci.org/coverage.html/index.html)| | build-artifacts : | [![build-artifacts](https://kaizhu256.github.io/node-swgg-github-pulls/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-swgg-github-pulls/tree/gh-pages/build..master..travis-ci.org) | [![build-artifacts](https://kaizhu256.github.io/node-swgg-github-pulls/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-swgg-github-pulls/tree/gh-pages/build..beta..travis-ci.org) | [![build-artifacts](https://kaizhu256.github.io/node-swgg-github-pulls/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-swgg-github-pulls/tree/gh-pages/build..alpha..travis-ci.org)| [![npmPackageListing](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.npmPackageListing.svg)](https://github.com/kaizhu256/node-swgg-github-pulls) ![npmPackageDependencyTree](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.npmPackageDependencyTree.svg) # table of contents 1. [cdn download](#cdn-download) 1. [documentation](#documentation) 1. [quickstart standalone app](#quickstart-standalone-app) 1. [quickstart example.js](#quickstart-examplejs) 1. [extra screenshots](#extra-screenshots) 1. [package.json](#packagejson) 1. [changelog of last 50 commits](#changelog-of-last-50-commits) 1. [internal build script](#internal-build-script) 1. [misc](#misc) # cdn download - [https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app/assets.swgg.swagger.json](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app/assets.swgg.swagger.json) # documentation #### cli help ![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.npmPackageCliHelp.svg) #### api doc - [https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/apidoc.html](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/apidoc.html) [![apidoc](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/apidoc.html) #### todo - none #### changelog for v2018.4.21 - npm publish v2018.4.21 - update build - none #### this package requires - darwin or linux os # quickstart standalone app #### to run this example, follow the instruction in the script below - [assets.app.js](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app/assets.app.js) ```shell # example.sh # this shell script will download and run a web-demo of swgg-github-pulls as a standalone app # 1. download standalone app curl -O https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/app/assets.app.js # 2. run standalone app PORT=8081 node ./assets.app.js # 3. open a browser to http://127.0.0.1:8081 and play with the web-demo # 4. edit file assets.app.js to suit your needs ``` #### output from browser [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleSh.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/app/assets.example.html) #### output from shell ![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleSh.svg) # quickstart example.js [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/app/assets.example.html) #### to run this example, follow the instruction in the script below - [example.js](https://kaizhu256.github.io/node-swgg-github-pulls/build..beta..travis-ci.org/example.js) ```javascript /* example.js this script will run a web-demo of swgg-github-pulls instruction 1. save this script as example.js 2. run the shell command: $ npm install swgg-github-pulls && PORT=8081 node example.js 3. open a browser to http://127.0.0.1:8081 and play with the web-demo 4. edit this script to suit your needs */ /* istanbul instrument in package swgg_github_pulls */ /* jslint-utility2 */ /*jslint bitwise: true, browser: true, maxerr: 4, maxlen: 100, node: true, nomen: true, regexp: true, stupid: true */ (function () { 'use strict'; var local; // run shared js-env code - init-before (function () { // init local local = {}; // init modeJs local.modeJs = (function () { try { return typeof navigator.userAgent === 'string' && typeof document.querySelector('body') === 'object' && typeof XMLHttpRequest.prototype.open === 'function' && 'browser'; } catch (errorCaughtBrowser) { return module.exports && typeof process.versions.node === 'string' && typeof require('http').createServer === 'function' && 'node'; } }()); // init global local.global = local.modeJs === 'browser' ? window : global; // init utility2_rollup local = local.global.utility2_rollup || (local.modeJs === 'browser' ? local.global.utility2_swgg_github_pulls : require('swgg-github-pulls')); // init exports local.global.local = local; // init assets local.assetsDict['/assets.index.template.html'] = local.assetsDict['/assets.swgg.html']; }()); switch (local.modeJs) { // run browser js-env code - init-test /* istanbul ignore next */ case 'browser': break; // run node js-env code - init-test /* istanbul ignore next */ case 'node': // init exports module.exports = local; // require builtins // local.assert = require('assert'); local.buffer = require('buffer'); local.child_process = require('child_process'); local.cluster = require('cluster'); local.console = require('console'); local.constants = require('constants'); local.crypto = require('crypto'); local.dgram = require('dgram'); local.dns = require('dns'); local.domain = require('domain'); local.events = require('events'); local.fs = require('fs'); local.http = require('http'); local.https = require('https'); local.module = require('module'); local.net = require('net'); local.os = require('os'); local.path = require('path'); local.process = require('process'); local.punycode = require('punycode'); local.querystring = require('querystring'); local.readline = require('readline'); local.repl = require('repl'); local.stream = require('stream'); local.string_decoder = require('string_decoder'); local.timers = require('timers'); local.tls = require('tls'); local.tty = require('tty'); local.url = require('url'); local.util = require('util'); local.v8 = require('v8'); local.vm = require('vm'); local.zlib = require('zlib'); /* validateLineSortedReset */ // init assets local.assetsDict = local.assetsDict || {}; [ 'assets.index.css', 'assets.index.template.html', 'assets.swgg.swagger.json', 'assets.swgg.swagger.server.json' ].forEach(function (file) { file = '/' + file; local.assetsDict[file] = local.assetsDict[file] || ''; if (local.fs.existsSync(local.__dirname + file)) { local.assetsDict[file] = local.fs.readFileSync( local.__dirname + file, 'utf8' ); } }); /* validateLineSortedReset */ // bug-workaround - long $npm_package_buildCustomOrg /* jslint-ignore-begin */ local.assetsDict['/assets.swgg_github_pulls.js'] = local.assetsDict['/assets.swgg_github_pulls.js'] || local.fs.readFileSync(local.__dirname + '/lib.swgg_github_pulls.js', 'utf8' ).replace((/^#!/), '//'); /* validateLineSortedReset */ local.assetsDict['/'] = local.assetsDict['/assets.example.html'] = local.assetsDict['/assets.index.template.html'] .replace((/\{\{env\.(\w+?)\}\}/g), function (match0, match1) { switch (match1) { case 'npm_package_description': return 'the greatest app in the world!'; case 'npm_package_name': return 'swgg-github-pulls'; case 'npm_package_nameLib': return 'swgg_github_pulls'; case 'npm_package_version': return '0.0.1'; default: return match0; } }); // init cli if (module !== require.main || local.global.utility2_rollup) { break; } local.assetsDict['/assets.example.js'] = local.assetsDict['/assets.example.js'] || local.fs.readFileSync(__filename, 'utf8'); /* jslint-ignore-end */ local.assetsDict['/favicon.ico'] = local.assetsDict['/favicon.ico'] || ''; // if $npm_config_timeout_exit exists, // then exit this process after $npm_config_timeout_exit ms if (Number(process.env.npm_config_timeout_exit)) { setTimeout(process.exit, Number(process.env.npm_config_timeout_exit)); } // start server if (local.global.utility2_serverHttp1) { break; } process.env.PORT = process.env.PORT || '8081'; console.error('server starting on port ' + process.env.PORT); local.http.createServer(function (request, response) { request.urlParsed = local.url.parse(request.url); if (local.assetsDict[request.urlParsed.pathname] !== undefined) { response.end(local.assetsDict[request.urlParsed.pathname]); return; } response.statusCode = 404; response.end(); }).listen(process.env.PORT); break; } }()); ``` #### output from browser [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/app/assets.example.html) #### output from shell ![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleJs.svg) # extra screenshots 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp%252Fassets.swgg.html.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp%252Fassets.swgg.html.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp%252Fassets.swgg.html.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp%252Fassets.swgg.html.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-pulls%252Fbuild%252Fapp.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.npmTest.browser.%252F.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.npmTest.browser.%252F.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.npmTest.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.npmTest.browser.%252F.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleJs.browser.%252F.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleJs.browser.%252F.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleJs.browser.%252F.png) 1. [https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleSh.browser.%252F.png](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleSh.browser.%252F.png) [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleSh.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.testExampleSh.browser.%252F.png) # package.json ```json { "author": "kai zhu <kaizhu256@gmail.com>", "description": "this zero-dependency package will provide a (nodejs-compatible) swagger-client for github-pulls's web-apis, with a working web-demo", "devDependencies": { "electron-lite": "kaizhu256/node-electron-lite#alpha", "utility2": "kaizhu256/node-utility2#alpha" }, "engines": { "node": ">=4.0" }, "githubRepoAlias": "swgg-io/node-swgg-github-pulls", "homepage": "https://github.com/kaizhu256/node-swgg-github-pulls", "keywords": [ "github-pulls", "swagger-client" ], "license": "MIT", "main": "lib.swgg_github_pulls.js", "name": "swgg-github-pulls", "nameAliasPublish": "", "nameLib": "swgg_github_pulls", "nameOriginal": "swgg-github-pulls", "os": [ "darwin", "linux" ], "repository": { "type": "git", "url": "https://github.com/kaizhu256/node-swgg-github-pulls.git" }, "scripts": { "apidocRawCreate": "[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptApidocRawCreate", "apidocRawFetch": "[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptApidocRawFetch", "build-ci": "utility2 shReadmeTest build_ci.sh", "env": "env", "heroku-postbuild": "npm install kaizhu256/node-utility2#alpha --prefix . && utility2 shDeployHeroku", "postinstall": "[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptPostinstall", "start": "PORT=${PORT:-8080} utility2 start test.js", "test": "PORT=$(utility2 shServerPortRandom) utility2 test test.js" }, "swggAll": "github-all", "swggTags0": "github-pulls", "version": "2018.4.21" } ``` # changelog of last 50 commits [![screenshot](https://kaizhu256.github.io/node-swgg-github-pulls/build/screenshot.gitLog.svg)](https://github.com/kaizhu256/node-swgg-github-pulls/commits) # internal build script - build_ci.sh ```shell # build_ci.sh # this shell script will run the build for this package shBuildCiAfter () {(set -e # shDeployCustom shDeployGithub # shDeployHeroku shReadmeTest example.sh )} shBuildCiBefore () {(set -e shNpmTestPublished shReadmeTest example.js )} # run shBuildCi eval $(utility2 source) shBuildCi ``` # misc - this package was created with [utility2](https://github.com/kaizhu256/node-utility2)