{"id":21969608,"url":"https://github.com/cinderblock/webhookd","last_synced_at":"2026-04-17T15:31:27.093Z","repository":{"id":143531493,"uuid":"71038483","full_name":"cinderblock/webhookd","owner":"cinderblock","description":"Another simple server to host webhook endpoints","archived":false,"fork":false,"pushed_at":"2016-10-16T23:19:06.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T22:36:39.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cinderblock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-16T08:25:37.000Z","updated_at":"2016-10-16T08:48:45.000Z","dependencies_parsed_at":"2023-03-27T14:19:34.546Z","dependency_job_id":null,"html_url":"https://github.com/cinderblock/webhookd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cinderblock/webhookd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fwebhookd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fwebhookd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fwebhookd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fwebhookd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cinderblock","download_url":"https://codeload.github.com/cinderblock/webhookd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fwebhookd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31934328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T12:37:54.787Z","status":"ssl_error","status_checked_at":"2026-04-17T12:37:25.095Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T14:22:49.304Z","updated_at":"2026-04-17T15:31:27.077Z","avatar_url":"https://github.com/cinderblock.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Webhookd\nAnother simple server to host webhook endpoints\n\n***Work in Progress:*** *This readme currently describes the intended interface. It's not done yet.*\n\n## Install\n\n```\ngit clone git@github.com:cinderblock/webhookd.git\ncd webhookd\nnpm install\n```\n\n## Config\n\nWe use the npm package [config](https://www.npmjs.com/package/config) to parse configuration files.\nFiles are loaded from `config/` based on hostname or other parameters in [this order](https://github.com/lorenwest/node-config/wiki/Configuration-Files#file-load-order).\n\n### `server.listen` `Integer|String`\nSets the port or path for a unix socket to listen on.\n\n### `server.hostname` `String` *optional*\nSets the hostname to listen on when listening over IP.\n\n### `server.socketMode` *optional*\nSets the socket file permissions with fs.chmod().\n\n### `hooks` `String|Object` *optional*\nTechnically optional, but this is required for this program to do anything.\n\n#### `hooks` `String` File Notation\nIf hooks is a `String`, we will load that file and expect to load an object that has the properties of the `Object` notation.\n\nThe leading `./` is important if using a relative path.\n\n#### `hooks` `Object` Notation\nIf hooks is an `Object`, each property is a hook path.\n```\n{\n  \"hook/path\": hook\n}\n```\n\n### `hooks.*` `Object|String|Array`\nEach hook will follow the following object format.\nIf a `String` is passed, it is shorthand for the `namespace` `type` loading a file.\nIf a `Array` is passed, it is shorthand for the `sequence` `type`.\n\n### `hooks.*.type` `String`\nDefines the type of hook this is.\n\n#### `namespace` type\nRequires a `hooks` parameter and loads new hooks in a sub-path.\nHandled like the root level `hooks`.\n\n#### `echo` type\nTwo optional parameters\n\n##### `response` `String` *optional*\nSend a response to the client\n\n##### `log` `String` *optional*\nPrint to `console.log`\n\n#### `git-pull` type\nRuns a `git pull` on the specified working directory.\n\n##### `localBranch` `String`\n##### `remoteBranch` `String`\n##### `localWorkDir` `String`\n\n#### `sequence` type\n\n##### `sequence` `Array`\nA list of actions to make in order.\nThis is an `Array` of `hook` `Objects`.\nCannot contain a `namespace` `type` hook.\n\n### `key` `String`\nIf a `key` is specified for the hook, it must be found in one of a couple places:\n - The last part of the path, before the query string\n - Be the entire query string\n - Match the `key` of the query string\n - Match a header specified with `keyHeader`\n\n### `keyHeader` `String`\nThe name of the header that should match the key\n\n### `name` `String`\nHuman readable name for the hook for use in logs\n\n## Update\n\n```\ngit pull\nnpm install\n```\n\nNodegit needs to be built locally to work on some machines.\nRun this to install nodegit correctly: `BUILD_ONLY=true npm install nodegit`.\nThis only needs to be run when first installing or when updating nodegit.\n\n## Run\n\n```\nnpm run server\n```\n\n## Dev Server\n\nFor development, we use nodemon to automatically watch for file changes and reload the server as appropriate.\n\n```\nnpm run server-dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2Fwebhookd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcinderblock%2Fwebhookd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2Fwebhookd/lists"}