github-crud

2019.1.21 • Public • Published

github-crud

this zero-dependency package will provide a simple cli-tool to PUT / GET / DELETE github files

live web demo

  • none

screenshot

travis-ci.org build-status coverage

NPM

build commit status

git-branch : master beta alpha
test-report : test-report test-report test-report
coverage : coverage coverage coverage
build-artifacts : build-artifacts build-artifacts build-artifacts

npmPackageListing

npmPackageDependencyTree

table of contents

  1. cdn download
  2. documentation
  3. quickstart shell example
  4. quickstart example.js
  5. extra screenshots
  6. package.json
  7. changelog of last 50 commits
  8. internal build script
  9. misc

cdn download

documentation

cli help

screenshot

api doc

apidoc

todo

  • add web-demo
  • none

changelog 2019.1.21

  • npm publish 2019.1.21
  • add functions githubRepoCreateList, githubRepoDeleteList
  • rename functions githubBranchCreate -> githubRepoCreate, githubBranchDelete -> githubRepoDelete
  • none

this package requires

  • darwin or linux os

quickstart shell example

to run this example, follow the instruction in the script below

# example.sh 
 
# this shell script will auto-generate documentation for the mysql npm-package with zero-config 
 
# 1. npm install github-crud 
cd /tmp && npm install github-crud
# 2. init env vars 
export BRANCH=gh-pages
export GITHUB_REPO=kaizhu256/node-github-crud
# get $GITHUB_TOKEN from https://github.com/settings/tokens 
export GITHUB_TOKEN="${GITHUB_TOKEN:-xxxxxxxx}"
 
# 3. test github-crud put 
shPrintAndEval () {
    printf "\n\n\n"
    printf "\$ $*\n\n"
    eval "$@"
    return 0
}
printf "hello world\\n" > /tmp/hello.txt
shPrintAndEval \
/tmp/node_modules/.bin/github-crud put "https://github.com/$GITHUB_REPO/blob/$BRANCH/foo/bar/hello.txt /tmp/hello.txt commit-message-1"
 
# 4. test github-crud get 
shPrintAndEval \
/tmp/node_modules/.bin/github-crud get "https://github.com/$GITHUB_REPO/blob/$BRANCH/foo/bar/hello.txt"
 
# 5. test github-crud touch 
shPrintAndEval \
/tmp/node_modules/.bin/github-crud touch "https://github.com/$GITHUB_REPO/blob/$BRANCH/foo/bar/hello.txt commit-message-2"
 
# 6. test github-crud delete 
shPrintAndEval \
/tmp/node_modules/.bin/github-crud delete "https://github.com/$GITHUB_REPO/blob/$BRANCH/foo/bar/hello.txt commit-message-3"

output from shell

screenshot

quickstart example.js

to run this example, follow the instruction in the script below

/*
example.js
 
this script will run a web-demo of github-crud
 
instruction
    1. save this script as example.js
    2. edit env vars below
    3. run the shell command:
        $ npm install github-crud && node example.js
    4. edit this script to suit your needs
*/
 
 
 
/* istanbul instrument in package github_crud */
/* jslint utility2:true */
(function () {
"use strict";
 
 
 
/*
 * edit begin
 * edit env vars below
 */
process.env.BRANCH = "gh-pages";
process.env.GITHUB_REPO = "kaizhu256/node-github-crud";
// get $GITHUB_TOKEN from https://github.com/settings/tokens
process.env.GITHUB_TOKEN = process.env.GITHUB_TOKEN || "xxxxxxxx";
/*
 * edit end
 */
 
 
 
var local;
var modeNext;
var onNext;
modeNext = 0;
/* istanbul ignore next */
onNext = function (error, data) {
    if (error) {
        console.error(error);
    }
    modeNext += 1;
    switch (modeNext) {
    // init
    case 1:
        if (
            typeof window === "object"
            || global.utility2_rollup // jslint ignore:line
        ) {
            return;
        }
        local = require("github-crud");
        module.exports = local;
        if (
            process.env.npm_config_mode_auto_restart
            || process.env.npm_config_mode_test
        ) {
            return;
        }
        onNext();
        break;
    // test github-crud put
    case 2:
        console.error("\n\n\ngithub-crud put /foo/bar/hello.txt\n");
        local.githubCrudContentPut({
            content: "hello world\n",
            message: "commit message 1",
            url: "https://github.com/" + process.env.GITHUB_REPO + "/blob/"
            + process.env.BRANCH + "/foo/bar/hello.txt"
        }, onNext);
        break;
    // test github-crud get
    case 3:
        console.error("\n\n\ngithub-crud get /foo/bar/hello.txt\n");
        local.githubCrudContentGet({
            url: "https://github.com/" + process.env.GITHUB_REPO + "/blob/"
            + process.env.BRANCH + "/foo/bar/hello.txt"
        }, onNext);
        break;
    // test github-crud touch
    case 4:
        console.error(String(data));
        console.error("\n\n\ngithub-crud touch /foo/bar/hello.txt\n");
        local.githubCrudContentTouch({
            message: "commit message 2",
            url: "https://github.com/" + process.env.GITHUB_REPO + "/blob/"
            + process.env.BRANCH + "/foo/bar/hello.txt"
        }, onNext);
        break;
    // test github-crud delete
    case 5:
        console.error("\n\n\ngithub-crud delete /foo/bar/hello.txt\n");
        local.githubCrudContentDelete({
            message: "commit message 3",
            url: "https://github.com/" + process.env.GITHUB_REPO + "/blob/"
            + process.env.BRANCH + "/foo/bar/hello.txt"
        }, onNext);
        break;
    }
};
onNext();
}());

output from shell

screenshot

extra screenshots

  1. https://kaizhu256.github.io/node-github-crud/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png screenshot

  2. https://kaizhu256.github.io/node-github-crud/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png screenshot

  3. https://kaizhu256.github.io/node-github-crud/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png screenshot

package.json

{
    "author": "kai zhu <kaizhu256@gmail.com>",
    "bin": {
        "github-crud": "lib.github_crud.js"
    },
    "description": "this zero-dependency package will provide a simple cli-tool to PUT / GET / DELETE github files",
    "devDependencies": {
        "electron-lite": "kaizhu256/node-electron-lite#alpha",
        "utility2": "kaizhu256/node-utility2#alpha"
    },
    "engines": {
        "node": ">=10.0"
    },
    "homepage": "https://github.com/kaizhu256/node-github-crud",
    "keywords": [
        "github-crud"
    ],
    "license": "MIT",
    "main": "lib.github_crud.js",
    "name": "github-crud",
    "nameAliasPublish": "github-content-api github-content-lite",
    "nameLib": "github_crud",
    "nameOriginal": "github-crud",
    "os": [
        "darwin",
        "linux"
    ],
    "repository": {
        "type": "git",
        "url": "https://github.com/kaizhu256/node-github-crud.git"
    },
    "scripts": {
        "build-ci": "./npm_scripts.sh",
        "env": "env",
        "eval": "./npm_scripts.sh",
        "heroku-postbuild": "./npm_scripts.sh",
        "postinstall": "./npm_scripts.sh",
        "start": "./npm_scripts.sh",
        "test": "./npm_scripts.sh",
        "utility2": "./npm_scripts.sh"
    },
    "version": "2019.1.21"
}

changelog of last 50 commits

screenshot

internal build script

  • build_ci.sh
# build_ci.sh 
 
# this shell script will run the build for this package 
 
shBuildCiAfter () {(set -e
    shDeployCustom
    # shDeployGithub 
    # shDeployHeroku 
    shReadmeTest example.sh
    rm -fr /tmp/node_modules
)}
 
shBuildCiBefore () {(set -e
    shNpmTestPublished
    shReadmeTest example.js
)}
 
# run shBuildCi 
eval "$(utility2 source)"
shBuildCi

misc

  • this package was created with utility2

Readme

Keywords

Package Sidebar

Install

npm i github-crud

Weekly Downloads

0

Version

2019.1.21

License

MIT

Unpacked Size

71.8 kB

Total Files

6

Last publish

Collaborators

  • kaizhu