##What it is:
A webapp .war
- codebase behind Charles Michaels chatbot. It receives notifications read by this ejb checker and takes
actions according to each of them. Any Github account can be used with this project; it's all dictated by the Github auth token used.
Say @charlesmike hi there
in a Github issue comment and see what happens.
Check out the website for more details on how to use this service.
We are currently looking for contributors. Read this post.
- Open an issue regarding an improvement you thought of, or a bug you noticed, or asked to be assigned to an existing one.
- If the issue is confirmed, fork the repository, do the changes on a sepparate branch and make a Pull Request.
- After review and acceptance, the PR is merged and closed.
- You are automatically listed as a contributor on the project's site
Make sure the maven build
$mvn clean install
passes before making a PR.
- phantom js and [Selenium] (http://www.seleniumhq.org/projects/webdriver/) with GhostDriver
- [Elastic search] (https://www.elastic.co/)
- [Amazon Web Services] (https://aws.amazon.com/)
- [Github API] (https://developer.github.com/v3/) (using jcabi-github)
The .war
should work fine on any Java EE web server. It is not bound by any server-specific property file or other things like that.
Once deployed, it exposes the endpoint POST /api/notifications
which accepts a JsonArray
of format:
[
...,
{
"repoFullName":"owner/repoNameHere",
"issueNumber":123
},
...
]
As it is clear, a pipeline between Github Notifications API and this endpoint is needed. You can setup one of your own (respecting the
above mentioned interface) or use
this ejb .jar
.
You will need to set the following system properties. Pay a lot of attention while configuring these, since everything relies on them.
Name | Value | Description |
---|---|---|
LOG_ROOT | string | Optional. Place where the log files will be stored. Defaults to . (dot) |
charles.rest.logs.endpoint | **domain**/**charles-rest-context-root**/api/logs | Mantadory. Rest endpoint from charles-rest that returns the log of an action. |
github.auth.token | string | Mantadory. Github agent's access token. Must be the same as for the EJB checker |
phantomjsExec | string | Optional. Location of phantomjs executable on the server. Defaults to /usr/local/bin/phantomjs |
aws.es.endpoint | string | Mandatory. Endpoint of AWS elasticsearch service |
aws.es.region | string | Mandatory. Region of AWS elasticsearch service |
aws.accessKeyId | string | Mandatory. AWS access key id |
aws.secretKey | string | Mandatory. AWS secret key |