{"id":26716582,"url":"https://github.com/67p/hubot-incoming-webhook","last_synced_at":"2025-04-14T01:34:55.259Z","repository":{"id":57268996,"uuid":"52167158","full_name":"67P/hubot-incoming-webhook","owner":"67P","description":"Accept incoming Webhooks to write messages to a room/channel","archived":false,"fork":false,"pushed_at":"2019-04-16T15:12:46.000Z","size":57,"stargazers_count":9,"open_issues_count":3,"forks_count":8,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-27T15:51:52.583Z","etag":null,"topics":["hubot","hubot-script","hubot-scripts","kosmos","npm-module","webhooks"],"latest_commit_sha":null,"homepage":"","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/67P.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}},"created_at":"2016-02-20T17:59:12.000Z","updated_at":"2023-04-01T00:47:36.000Z","dependencies_parsed_at":"2022-09-02T02:50:34.522Z","dependency_job_id":null,"html_url":"https://github.com/67P/hubot-incoming-webhook","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/67P%2Fhubot-incoming-webhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/67P%2Fhubot-incoming-webhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/67P%2Fhubot-incoming-webhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/67P%2Fhubot-incoming-webhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/67P","download_url":"https://codeload.github.com/67P/hubot-incoming-webhook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248808620,"owners_count":21164872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["hubot","hubot-script","hubot-scripts","kosmos","npm-module","webhooks"],"created_at":"2025-03-27T15:37:52.024Z","updated_at":"2025-04-14T01:34:55.234Z","avatar_url":"https://github.com/67P.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm](https://img.shields.io/npm/v/hubot-incoming-webhook.svg)](https://www.npmjs.com/package/hubot-incoming-webhook)\n[![Build Status](http://img.shields.io/travis/67P/hubot-incoming-webhook.svg?style=flat)](http://travis-ci.org/67P/hubot-incoming-webhook)\n\n# Hubot Incoming Webhook\n\nA (very simple) hubot script for sending messages to a channel/room via HTTP\nPOST requests to your bot.\n\n## Installation\n\nInstall script package in your bot's repository:\n\n    npm install --save hubot-incoming-webhook\n\nAdd to `external_scripts.json`:\n\n```json\n[\n  \"hubot-incoming-webhook\"\n]\n```\n\nSet the `WEBHOOK_TOKEN` environment variable to a secret string of your choice\nwhen running the bot. It will be used in the incoming webhook URLs.\n\n## Usage\n\n### Generic hooks\n\nThe generic Webhook allows you to send arbitrary messages to a room of your\nchoice, by POSTing a simple JSON body to the webhook URL.\n\nThe URL is constructed as follows: `http(s)://\u003chost\u003e:\u003cport\u003e/incoming/\u003cyour-secret-token\u003e`\n\n| Key | Value |\n| --- | ----- |\n| room | (string) The room/channel you want to post to. |\n| message | (string/array) The message you want to post. Can be an array for multiple lines. |\n\nExample:\n\n```sh\ncurl -X POST -H \"Content-Type: application/json\" \\\n     -d '{\"room\": \"#kosmos\", \"message\": \"ohai\"}' \\\n     http://127.0.0.1:8080/incoming/your-secret-token\n```\n\n### UptimeRobot\n\nThis hook allows you to receive hooks from UptimeRobot, and announce your\naccount's uptime status changes/events in a room of your choice.\n\nThe URL is constructed as follows: `http(s)://\u003chost\u003e:\u003cport\u003e/incoming/uptimerobot/\u003cyour-secret-token\u003e`\n\nIn [UptimeRobot's settings](https://uptimerobot.com/dashboard#mySettings),\nadd the following webhook as an alert contact (you must set the room that you\nwant the bot to send messages to):\n\n```\nhttp(s)://\u003chost\u003e:\u003cport\u003e/incoming/uptimerobot/\u003cyour-secret-token\u003e?room=ops@example.com\u0026\n```\n\nDon't forget the trailing ampersand, this is required so UptimeRobot can add\ntheir query strings to the request for the monitor ID, status, and so on.\n\nEnable the webhook Alert Contact for each monitor. You can perform a\n[bulk action](https://uptimerobot.com/dashboard#bulkActions) to do it for all\nat once.\n\n## Configuration\n\n| Key | Description |\n| --- | ----------- |\n| `WEBHOOK_TOKEN` | A string for building your secret webhook URLs\n\n## Adapter-specific config/hints\n\n### IRC\n\nInclude the hash character for IRC channels in the `room` value.\n\n### Mattermost (tested with hubot-matteruser)\n\nFind the unique ID of the channel (not the display name) and use it for the `room` value.\n\n## Development\n\n### Tests\n\nThe tests are inside of the `test` folder. To run them:\n\n    npm test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F67p%2Fhubot-incoming-webhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F67p%2Fhubot-incoming-webhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F67p%2Fhubot-incoming-webhook/lists"}