charles-rest

Github chatbot codebase

License

License

GroupId

GroupId

com.amihaiemil.web
ArtifactId

ArtifactId

charles-rest
Last Version

Last Version

1.2.2
Release Date

Release Date

Type

Type

war
Description

Description

charles-rest
Github chatbot codebase
Project URL

Project URL

http://charles.amihaiemil.com
Source Code Management

Source Code Management

https://github.com/opencharles/charles-rest

Download charles-rest

How to add to project

<!-- https://jarcasting.com/artifacts/com.amihaiemil.web/charles-rest/ -->
<dependency>
    <groupId>com.amihaiemil.web</groupId>
    <artifactId>charles-rest</artifactId>
    <version>1.2.2</version>
    <type>war</type>
</dependency>
// https://jarcasting.com/artifacts/com.amihaiemil.web/charles-rest/
implementation 'com.amihaiemil.web:charles-rest:1.2.2'
// https://jarcasting.com/artifacts/com.amihaiemil.web/charles-rest/
implementation ("com.amihaiemil.web:charles-rest:1.2.2")
'com.amihaiemil.web:charles-rest:war:1.2.2'
<dependency org="com.amihaiemil.web" name="charles-rest" rev="1.2.2">
  <artifact name="charles-rest" type="war" />
</dependency>
@Grapes(
@Grab(group='com.amihaiemil.web', module='charles-rest', version='1.2.2')
)
libraryDependencies += "com.amihaiemil.web" % "charles-rest" % "1.2.2"
[com.amihaiemil.web/charles-rest "1.2.2"]

Dependencies

compile (8)

Group / Artifact Type Version
com.amazonaws : aws-java-sdk-core jar 1.11.91
org.slf4j : slf4j-log4j12 jar 1.7.21
com.fasterxml.jackson.core : jackson-databind jar 2.8.3
com.amihaiemil.web : charles jar 1.1.1
com.jcabi : jcabi-github jar 0.28
com.jcabi : jcabi-email jar 1.8
com.github.detro : phantomjsdriver jar 1.2.0
com.amihaiemil.web : camel jar 1.0.1

provided (1)

Group / Artifact Type Version
javax : javaee-api jar 7.0

test (5)

Group / Artifact Type Version
junit : junit jar 4.12
com.icegreen : greenmail jar 1.5.0
org.glassfish.jersey.core : jersey-common jar 2.22.2
com.sun.grizzly : grizzly-servlet-webserver jar 1.9.64
org.mockito : mockito-all jar 1.9.5

Project Modules

There are no modules declared in this project.

logo

charles-rest

Build Status PDD status Coverage Status Status badge

DevOps By Rultor.com We recommend IntelliJ IDEA

What it is:

A webapp .war - codebase behind Charles Michaels chatbot. More details here.

Say @charlesmike hello in a Github issue comment and see what happens. This blog post and the website provide more details on how to use this service.

Contribute

We are currently looking for contributors. Read this post.

  1. Open an issue regarding an improvement you thought of, or a bug you noticed, or asked to be assigned to an existing one.
  2. If the issue is confirmed, fork the repository, do the changes on a sepparate branch and make a Pull Request.
  3. After review and acceptance, the PR is merged and closed.
  4. 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.

Key technologies

If you wish to install it on your own infrastructure:

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 can also set a webhook (do not forget to modify the endpoint so that it points to your domain).

You will need to set the following system properties. Pay a lot of attention while configuring these, since everything relies on them.

Rest api sys props

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
com.amihaiemil.web

OpenCharles

Organization that holds together the charles-family projects.

Versions

Version
1.2.2
1.2.1
1.2.0
1.0.1