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

# live web demo
- [https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/app](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/app)

[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/app)



[![travis-ci.org build-status](https://api.travis-ci.org/kaizhu256/node-swgg-github-activity.svg)](https://travis-ci.org/kaizhu256/node-swgg-github-activity) [![coverage](https://kaizhu256.github.io/node-swgg-github-activity/build/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-activity/build/coverage.html/index.html)

[![NPM](https://nodei.co/npm/swgg-github-activity.png?downloads=true)](https://www.npmjs.com/package/swgg-github-activity)

[![build commit status](https://kaizhu256.github.io/node-swgg-github-activity/build/build.badge.svg)](https://travis-ci.org/kaizhu256/node-swgg-github-activity)

| git-branch : | [master](https://github.com/kaizhu256/node-swgg-github-activity/tree/master) | [beta](https://github.com/kaizhu256/node-swgg-github-activity/tree/beta) | [alpha](https://github.com/kaizhu256/node-swgg-github-activity/tree/alpha)|
|--:|:--|:--|:--|
| test-server-github : | [![github.com test-server](https://kaizhu256.github.io/node-swgg-github-activity/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-swgg-github-activity/build..master..travis-ci.org/app) | [![github.com test-server](https://kaizhu256.github.io/node-swgg-github-activity/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/app) | [![github.com test-server](https://kaizhu256.github.io/node-swgg-github-activity/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-swgg-github-activity/build..alpha..travis-ci.org/app)|
| test-report : | [![test-report](https://kaizhu256.github.io/node-swgg-github-activity/build..master..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-swgg-github-activity/build..master..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-swgg-github-activity/build..alpha..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-swgg-github-activity/build..alpha..travis-ci.org/test-report.html)|
| coverage : | [![coverage](https://kaizhu256.github.io/node-swgg-github-activity/build..master..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-activity/build..master..travis-ci.org/coverage.html/index.html) | [![coverage](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/coverage.html/index.html) | [![coverage](https://kaizhu256.github.io/node-swgg-github-activity/build..alpha..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-swgg-github-activity/build..alpha..travis-ci.org/coverage.html/index.html)|
| build-artifacts : | [![build-artifacts](https://kaizhu256.github.io/node-swgg-github-activity/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-swgg-github-activity/tree/gh-pages/build..master..travis-ci.org) | [![build-artifacts](https://kaizhu256.github.io/node-swgg-github-activity/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-swgg-github-activity/tree/gh-pages/build..beta..travis-ci.org) | [![build-artifacts](https://kaizhu256.github.io/node-swgg-github-activity/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-swgg-github-activity/tree/gh-pages/build..alpha..travis-ci.org)|

[![npmPackageListing](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.npmPackageListing.svg)](https://github.com/kaizhu256/node-swgg-github-activity)

![npmPackageDependencyTree](https://kaizhu256.github.io/node-swgg-github-activity/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-activity/build..beta..travis-ci.org/app/assets.swgg.swagger.json](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/app/assets.swgg.swagger.json)



# documentation
#### cli help
![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.npmPackageCliHelp.svg)

#### api doc
- [https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/apidoc.html](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/apidoc.html)

[![apidoc](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)](https://kaizhu256.github.io/node-swgg-github-activity/build..beta..travis-ci.org/apidoc.html)

#### todo
- none

#### changelog for v2018.4.23
- npm publish v2018.4.23
- 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-activity/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-activity as a standalone app

# 1. download standalone app
curl -O https://kaizhu256.github.io/node-swgg-github-activity/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-activity/build/screenshot.testExampleSh.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/app/assets.example.html)

#### output from shell
![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleSh.svg)



# quickstart example.js
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-activity/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-activity/build..beta..travis-ci.org/example.js)
```javascript
/*
example.js

this script will run a web-demo of swgg-github-activity

instruction
    1. save this script as example.js
    2. run the shell command:
        $ npm install swgg-github-activity && 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_activity */
/* 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_activity
            : require('swgg-github-activity'));
        // 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_activity.js'] = local.assetsDict['/assets.swgg_github_activity.js'] ||
            local.fs.readFileSync(local.__dirname + '/lib.swgg_github_activity.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-activity';
                case 'npm_package_nameLib':
                    return 'swgg_github_activity';
                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-activity/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/app/assets.example.html)

#### output from shell
![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleJs.svg)



# extra screenshots
1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)

1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png)

1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png)

1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp%252Fassets.swgg.html.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp%252Fassets.swgg.html.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp%252Fassets.swgg.html.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp%252Fassets.swgg.html.png)

1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithub.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png)

1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.deployGithubTest.browser.%252Fnode-swgg-github-activity%252Fbuild%252Fapp.png)



1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.npmTest.browser.%252F.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.npmTest.browser.%252F.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.npmTest.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.npmTest.browser.%252F.png)

1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleJs.browser.%252F.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleJs.browser.%252F.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleJs.browser.%252F.png)

1. [https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleSh.browser.%252F.png](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleSh.browser.%252F.png)
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.testExampleSh.browser.%252F.png)](https://kaizhu256.github.io/node-swgg-github-activity/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-activity'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-activity",
    "homepage": "https://github.com/kaizhu256/node-swgg-github-activity",
    "keywords": [
        "github-activity",
        "swagger-client"
    ],
    "license": "MIT",
    "main": "lib.swgg_github_activity.js",
    "name": "swgg-github-activity",
    "nameAliasPublish": "",
    "nameLib": "swgg_github_activity",
    "nameOriginal": "swgg-github-activity",
    "os": [
        "darwin",
        "linux"
    ],
    "repository": {
        "type": "git",
        "url": "https://github.com/kaizhu256/node-swgg-github-activity.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 uninstall utility2 2>/dev/null; npm install kaizhu256/node-utility2#alpha && utility2 shDeployHeroku",
        "nameAliasPublish": "",
        "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-activity",
    "version": "2018.4.23"
}
```



# changelog of last 50 commits
[![screenshot](https://kaizhu256.github.io/node-swgg-github-activity/build/screenshot.gitLog.svg)](https://github.com/kaizhu256/node-swgg-github-activity/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)
