https://github.com/ssube/isolex
Chat bot able to speak natural language and markup, prompt to complete commands, and offer localized help. Configured with schema-validated YAML, features JWT authentication with granular RBAC, and SQL persistence.
https://github.com/ssube/isolex
aws-lex bot chatbot chatops discord-bot github-bot gitlab-bot kubernetes slack-bot typescript
Last synced: 10 months ago
JSON representation
Chat bot able to speak natural language and markup, prompt to complete commands, and offer localized help. Configured with schema-validated YAML, features JWT authentication with granular RBAC, and SQL persistence.
- Host: GitHub
- URL: https://github.com/ssube/isolex
- Owner: ssube
- License: mit
- Created: 2018-04-21T16:41:47.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-05-26T04:05:13.000Z (over 1 year ago)
- Last Synced: 2024-05-27T23:20:17.100Z (over 1 year ago)
- Topics: aws-lex, bot, chatbot, chatops, discord-bot, github-bot, gitlab-bot, kubernetes, slack-bot, typescript
- Language: TypeScript
- Homepage:
- Size: 7.32 MB
- Stars: 17
- Watchers: 4
- Forks: 7
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Roadmap: docs/roadmap.md
Awesome Lists containing this project
README
# isolex
Chat bot able to speak natural language and markup, prompt to complete commands, and offer localized help.
Configured with schema-validated YAML, features JWT authentication with granular RBAC, and SQL persistence.
Listeners for common chat services, controllers for chat functions and devops tools, and inspired by the Kubernetes API.
## Getting Started
The bot interacts through Discord and Slack, Github and Gitlab comments and webhooks, and a GraphQL API.
The [getting started guide](./docs/getting-started.md) has more information on using the bot.
## Contents
- [isolex](#isolex)
- [Getting Started](#getting-started)
- [Contents](#contents)
- [Status](#status)
- [Releases](#releases)
- [Build](#build)
- [Config](#config)
- [Run](#run)
- [Deploy to Kubernetes](#deploy-to-kubernetes)
- [Local in Docker](#local-in-docker)
- [Local from Bundle](#local-from-bundle)
- [License](#license)
## Status
[](https://git.apextoaster.com/ssube/isolex/commits/master)
[](https://sonarcloud.io/dashboard?id=ssube_isolex)
[](https://codeclimate.com/github/ssube/isolex/test_coverage)
[](https://github.com/ssube/isolex/blob/master/LICENSE.md)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fssube%2Fisolex?ref=badge_shield)
[](https://github.com/ssube/isolex/issues?q=is%3Aopen+is%3Aissue+label%3Atype%2Fbug)
[](https://github.com/ssube/isolex/issues?q=is%3Aopen+is%3Aissue)
[](https://github.com/ssube/isolex/issues?q=is%3Aissue+is%3Aclosed)
[](https://renovatebot.com)
[](https://david-dm.org/ssube/isolex)
[](https://david-dm.org/ssube/isolex?type=dev)
[](https://snyk.io/test/github/ssube/isolex)
[](https://codeclimate.com/github/ssube/isolex/maintainability)
[](https://codeclimate.com/github/ssube/isolex/trends/technical_debt)
[](https://codeclimate.com/github/ssube/isolex/issues)
[](https://lgtm.com/projects/g/ssube/isolex/context:javascript)
[](https://lgtm.com/projects/g/ssube/isolex/alerts/)
## Releases
[](https://github.com/ssube/isolex/releases)
[](https://github.com/ssube/isolex/releases)
[](https://github.com/ssube/isolex/compare/v0.10.0...master)
[](https://www.npmjs.com/package/isolex)
[](https://www.npmjs.com/package/isolex)
[](https://www.npmjs.com/package/isolex)
[](https://hub.docker.com/r/ssube/isolex)
[](https://microbadger.com/images/ssube/isolex:master)
## Build
To build and run the bot locally, you will need `make`, `node`, and `yarn` installed globally or a container with the
same.
Clone this repository:
```shell
> git clone git@github.com:ssube/isolex.git
> cd isolex
```
Within the project directory, make the bundle:
```shell
> make local
yarn install
[1/4] Resolving packages...
...
Done in 0.65s
ℹ 「atl」: Using typescript@3.2.2 from typescript
...
starting bot...
```
## Config
An [example config file](./docs/isolex.yml) is provided in [the `docs/` directory](./docs). This enables most of the
core features, but requires [some secrets](./docs/getting-started.md#secrets) to be defined in the environment.
## Run
### Deploy to Kubernetes
To deploy the bot into a Kubernetes cluster:
```shell
> kubectl create namespace isolex
> kubectl apply -n isolex -f deploy/deploy.yml
> kubectl apply -n isolex -f deploy/service.yml
> kubectl create secret generic isolex-config --dry-run --from-file docs/isolex.yml -o json | kubectl apply -n isolex -f -
```
### Local in Docker
To run the bot locally from the Docker image:
```shell
> docker run ssube/isolex:master
```
### Local from Bundle
To run the bot locally from [the build bundle](#build):
```shell
> source docs/isolex.env
> make run-bunyan
```
Logs will be piped through [bunyan](https://github.com/trentm/node-bunyan) and pretty-printed.
## License
Approve this.