{"id":13753028,"url":"https://github.com/brianshumate/ansible-hubot","last_synced_at":"2025-10-12T22:30:03.785Z","repository":{"id":14298342,"uuid":"17006870","full_name":"brianshumate/ansible-hubot","owner":"brianshumate","description":":speech_balloon: Ansible role for Hubot","archived":false,"fork":false,"pushed_at":"2016-12-06T21:18:56.000Z","size":134,"stargazers_count":63,"open_issues_count":0,"forks_count":23,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T19:32:58.434Z","etag":null,"topics":["ansible","chatops","hipchat","hubot","slack"],"latest_commit_sha":null,"homepage":"https://galaxy.ansible.com/brianshumate/hubot/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brianshumate.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-20T02:28:40.000Z","updated_at":"2022-09-22T15:29:16.000Z","dependencies_parsed_at":"2022-07-15T18:00:32.897Z","dependency_job_id":null,"html_url":"https://github.com/brianshumate/ansible-hubot","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/brianshumate/ansible-hubot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianshumate%2Fansible-hubot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianshumate%2Fansible-hubot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianshumate%2Fansible-hubot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianshumate%2Fansible-hubot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianshumate","download_url":"https://codeload.github.com/brianshumate/ansible-hubot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianshumate%2Fansible-hubot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013268,"owners_count":26085250,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ansible","chatops","hipchat","hubot","slack"],"created_at":"2024-08-03T09:01:14.840Z","updated_at":"2025-10-12T22:30:03.745Z","avatar_url":"https://github.com/brianshumate.png","language":"Shell","funding_links":[],"categories":["slack"],"sub_categories":[],"readme":"# Ansible Hubot\n\n[![Build Status](https://travis-ci.org/brianshumate/ansible-hubot.svg?branch=master)](https://travis-ci.org/brianshumate/ansible-hubot)\n[![Ansible Galaxy](https://img.shields.io/badge/galaxy-brianshumate.consul-blue.svg)](https://galaxy.ansible.com/brianshumate/hubot/)\n[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/brianshumate/ansible-hubot.svg)](http://isitmaintained.com/project/brianshumate/ansible-hubot \"Average time to resolve an issue\")\n[![Percentage of issues still open](http://isitmaintained.com/badge/open/brianshumate/ansible-hubot.svg)](http://isitmaintained.com/project/brianshumate/ansible-hubot \"Percentage of issues still open\")\n\nThis is an [Ansible](http://www.ansible.com/) role for\n[Hubot](http://hubot.github.com/), the wonderful chatting robot that is sure\nto bring your team much delight and various values of increased productivity\nthroughout the livelong day!\n\nBy default this Hubot role uses the Slack adapter, but you can change the\nrole to work with another adapter like HipChat by editing `defaults/main.yml`,\nupdating the value of *hubot_adapter*, and adding the appropriate environment\nvariables to `defaults.main.yml` file.\n\n## Requirements\n\nThis role requires a Ubuntu or CentOS based Linux host; it's known to function\non Ubuntu and CentOS with the following software versions:\n\n* Ansible: 2.2.0.0\n* Hubot: GitHub Master\n* Node.js: 6.9.1\n* CentOS: 6\n* Ubuntu: 14.04, 13.10, 13.04, 12.10, 12.04\n\n## Works with Ansible Galaxy\n\nYou can install this role with the `ansible-galaxy` command instead of\nrunning directly from the git repository.\n\nInstall it like this:\n\n```\nansible-galaxy install brianshumate.hubot\n```\n\nYou'll want to make sure you have write access to `/etc/ansible/roles/` since\nthat is the default installation path, or define your own Ansible role path by\ncreating a `$HOME/.ansible.cfg` file with these contents:\n\n```\n[defaults]\nroles_path = \u003cpath_to_your_preferred_role_location\u003e\n```\n\nChange `\u003cpath_to_your_preferred_role_location\u003e` to a directory you have write\naccess to.\n\nSee the [ansible-galaxy](http://docs.ansible.com/galaxy.html) documentation\nfor more details.\n\n## Role Variables\n\nAll role variables should be in `defaults/main.yml`.\n\n| Name           | Default Value | Description                        |\n| -------------- | ------------- | -----------------------------------|\n| `hubot_admin`    | vagrant | OS username of Hubot owner/admin |\n| `hubot_adapter`  | slack       | Preferred chat adapter to use |\n| `hubot_node_version` | 0.10.36 | Preferred Node.js version |\n| `hubot_dir`      | path | Hubot base directory |\n| `hubot_nvm_dir`  | path | Node Version Manager (nvm) installation directory |\n| `hubot_node_dir` | path |\n| `hubot_global_node_packages` | list | Node.js dependency packages to install globally |\n| `hubot_all_dirs` | list | Directories owned by Hubot admin user |\n| `hubot_env` | list | Environment variables for Hubot adapters |\n| `hubot_identity` | hubot | Bot user name |\n| `hubot_owner` | \"'Stephie Andretti \u003cstephie@example.com\u003e'\" | Bot owner |\n| `hubot_description` | \"'A helpful chat robot'\" | Bot description|\n| `hubot_node_packages` | list | Node.js dependency packages to install |\n| `hubot_external_scripts` | list | External third-party Hubot scripts to use |\n| `hubot_external_git_scripts` | list | External third-party Hubot scripts to clone from Git repositories |\n| `hubot_custom_scripts` | list | Scripts to use from `files/scripts` directory |\n| `hubot_git_scripts` | list | Scripts to clone from Git repositories |\n| `epel_repo_gpg_key`  | path | EPEL GPG key URL |\n| `epel_repo_url`      | URL | EPEL repository URL |\n\n## Node Packages\n\nThe `hubot_node_packages` defines the following Node.js dependency packages:\n\n* cheerio\n* chrono-node\n* clark\n* htmlparser\n* hubot-ascii-art\n* hubot-coin\n* hubot-calculator\n* hubot-hipchat-emoticons\n* hubot-{{ hubot_adapter }}\n* hubot-redis-brain\n* hubot-scripts\n* hubot-xkcd\n* hubot-youtube\n* lodash\n* moment\n* nodepie\n* soupselect\n* textspark\n\nNote that newer Hubot scripts are now also node modules.\n\nThe `hubot_centos_os_packages` and `hubot_ubuntu_os_packages` variables\ndefine OS packages required by Hubot; they should be fine as-is.\n\nThe `hubot_os_packages` defines following OS dependency packages:\n\n* build-essential\n* curl\n* git-core\n* libssl-dev\n* libexpat1-dev\n* redis-server\n\nRedis required for redis brain functionality.\n\n### Scripts\n\nYou can enable more Hubot scripts by adding them to the \n`hubot_node_packages` and `hubot_external_scripts` variables.\n\n## Configuration\n\nFirst, edit the variables defined in `defaults/main.yml` as necessary.\n\nThen, copy the necessary `templates/hubot_?.env.j2` to\n`templates/_hubot_?.env.j2` where *?* is your hubot_adapter value, and update\nas necessary with the particular environment variables you need\nfor your Hubot instance.\n\nCopy `hosts.example` to `hosts` and edit it to update the values for your\nHubot host. Be sure to change the following values:\n\n* `0.0.0.0`\n* `ubuntu`\n* `~/.ssh/hubot_id`\n\nUpdate the `site.yml` playbook if you plan to use it and set `hubot_identity`\nto the short user name of your bot.\n\n## Example Playbook\n\nAfter configuration a basic Hubot installation and activation is possible\nusing the included `site.yml` playbook:\n\n```\nansible-playbook -i hosts site.yml\n```\n\nYou can also pass variables in using the `--extra-vars` option\nto the `ansible-playbook` command:\n\n```\nansible-playbook -i hosts site.yml --extra-vars \"hubot_admin=penelope hubot_adapter=hipchat hubot_identity=penelope hubot_owner='Penelope \u003cpenelope@example.com\u003e' hubot_description='A stunning mermaid bot'\"\n```\n## Test the role\n\nYou can test the role with [Molecule](http://molecule.readthedocs.org/en/master/).\n\nThe molecule configuration resides at the root of the role in the\n`molecule.yml` file. This role is tested against Ubuntu Trusty 64 and\nCentos 7, but you can add other platforms if needed.\n\nTo setup the test environment run the following commands:\n\n```\nmkvirtualenv -p $(which python2) molecule\npip install molecule ansible\n```\n\nTo test the role run ``molecule test --platform trusty64`` or ``molecule test --platform centos7``.\n\n## Dependencies\n\nNone\n\n## License\n\nApache 2\n\n## Author Information\n\n[Brian Shumate](http://brianshumate.com)\n\n## Contributors\n\nSee CONTIRBUTORS.MD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianshumate%2Fansible-hubot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianshumate%2Fansible-hubot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianshumate%2Fansible-hubot/lists"}