2.0.0-beta • Published 3 years ago

git-webhook-ci v2.0.0-beta

Weekly downloads
-
License
WTFPL
Repository
-
Last release
3 years ago

git-webhook-ci

A Git (github/gitee) webhook callback server to fetch new code (poor man CI)

This little tool is born out of real projects. Keep having to deploy and setup demo site etc. Why bother if you own the git account? You just need a new cert from github, add this to your project, and setup accordingly, and Viola, you get your own poor man CI :)

Installation

  $ npm install --save git-webhook-ci

or

  $ yarn add git-webhook-ci

Configuration and usage

Create a js file (normally on your project root directory). Let's call it webhook.js.

const gitWebhook = require('git-webhook-ci')
const config = {
  "provider": "github", // from version 2 you MUST provide this
  "secret": "your-github-webhook-secret",
  "path": "/webhook",
  "port": 8081,
  "branch": "refs/heads/master", // New in 0.4.1 you can pass * wildcard to listen to all branches
  "cmd": "git pull origin master --no-edit",
  "error": (err) => {
    // do thing with your error
  }
}

gitWebhook(config)

Full configuration properties

Property nameDescriptionDefaultType
cwdWhere the git root directory is, default to where it gets callprocess.cwd()String
envThe node environment variableprocess.envObject
secretA secret key pass to encrypt data between github and your server''String
pathThe path where the web hook call to your server/webhookString
portThe port number where this callback server running on8081Integer
branchThe branch where you will trigger action when received event from github. You can pass * wildcard to listen to all the branchesrefs/heads/masterString
cmdThe command to execute when callback happens. You can also pass this as a function (see above for signature) and especially useful when you use * for branchgit pull origin master --no-editString
errorexpect a function and you can handle the error yourself. Or enable DEBUG=git-webhook-ci:error to see the error() => {}Function
initedonly available for wechat providerfalseBoolean

Debug option

Internally we use debug to track what's going on. So you can just pass the env during the start up of the script to debug your setup.

  DEBUG=* node ./webhook.js

If you do that, you will see a huge amount of info. All our debug flags are prefixed with git-webhook-ci, and here is the list of all the keys we use in this npm.

  • git-webhook-ci:error - This is the most likely you will use, to see the error message
  • git-webhook-ci:main - You will see the configuration option being pass to the main method
  • git-webhook-ci:gitlab
  • git-webhook-ci:github
  • git-webhook-ci:gitee
  • git-webhook-ci:wechat

For example:

  DEBUG=git-webhook-ci:main,git-webhook-ci:error node ./webhook.js

Then you will only see the main (top interface) and the Wechat internal debug messages.

CLI

We drop the cli support since V.2 due to the large amount of configuration options. You can try to write your own follow this example

License

WTFPL - TO1SOURCE / Joel Chu (c) 2021

2.0.0-beta

3 years ago

1.0.0

6 years ago

0.9.2

6 years ago

0.9.1

6 years ago

0.8.1

6 years ago

0.8.0

6 years ago

0.7.2

6 years ago

0.7.0

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago

0.5.1

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.0

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago