Quarkiverse - GitHub Application - Deployment

Parent POM for Quarkiverse projects that includes the default release and artifact publishing related configuration

License

License

Categories

Categories

Github Development Tools Version Controls
GroupId

GroupId

io.quarkiverse.githubapp
ArtifactId

ArtifactId

quarkiverse-github-app-deployment
Last Version

Last Version

0.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

Quarkiverse - GitHub Application - Deployment
Parent POM for Quarkiverse projects that includes the default release and artifact publishing related configuration
Project Organization

Project Organization

JBoss by Red Hat

Download quarkiverse-github-app-deployment

How to add to project

<!-- https://jarcasting.com/artifacts/io.quarkiverse.githubapp/quarkiverse-github-app-deployment/ -->
<dependency>
    <groupId>io.quarkiverse.githubapp</groupId>
    <artifactId>quarkiverse-github-app-deployment</artifactId>
    <version>0.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/io.quarkiverse.githubapp/quarkiverse-github-app-deployment/
implementation 'io.quarkiverse.githubapp:quarkiverse-github-app-deployment:0.0.1'
// https://jarcasting.com/artifacts/io.quarkiverse.githubapp/quarkiverse-github-app-deployment/
implementation ("io.quarkiverse.githubapp:quarkiverse-github-app-deployment:0.0.1")
'io.quarkiverse.githubapp:quarkiverse-github-app-deployment:jar:0.0.1'
<dependency org="io.quarkiverse.githubapp" name="quarkiverse-github-app-deployment" rev="0.0.1">
  <artifact name="quarkiverse-github-app-deployment" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.quarkiverse.githubapp', module='quarkiverse-github-app-deployment', version='0.0.1')
)
libraryDependencies += "io.quarkiverse.githubapp" % "quarkiverse-github-app-deployment" % "0.0.1"
[io.quarkiverse.githubapp/quarkiverse-github-app-deployment "0.0.1"]

Dependencies

compile (8)

Group / Artifact Type Version
io.quarkus : quarkus-arc-deployment jar
io.quarkus : quarkus-core-deployment jar
io.quarkus : quarkus-vertx-web-deployment jar
io.quarkus : quarkus-jackson-deployment jar
io.quarkus : quarkus-caffeine-deployment jar
io.quarkiverse.githubapi : quarkiverse-github-api-deployment jar 0.0.1
io.quarkiverse.jjwtjackson : quarkiverse-jjwt-jackson-deployment jar 0.0.2
io.quarkiverse.githubapp : quarkiverse-github-app jar 0.0.1

test (2)

Group / Artifact Type Version
io.quarkus : quarkus-junit5-internal jar
org.assertj : assertj-core jar

Project Modules

There are no modules declared in this project.

Quarkus GitHub App

Version

All Contributors

Develop your GitHub Apps in Java with Quarkus.

Quarkus GitHub App is a Quarkus extension that allows to create GitHub Apps in Java with very little boilerplate.

Think of it as Probot for Java.

And yes, it supports generating native executables with GraalVM or Mandrel.

Your application will look like:

class MyGitHubApp {

	void onOpen(@Issue.Opened GHEventPayload.Issue issuePayload) throws IOException {
		issuePayload.getIssue().comment("Hello from MyGitHubApp");
	}
}

And that's it.

The code above listens to the issues.opened GitHub event and posts a comment in each opened issue.

That's for the basics but it also supports YAML or JSON config files in your repository.

Finally, it supports using a Smee.io proxy during the development of the app.

Documentation

To get you started (and more!), please refer to the documentation.

Anything missing in the documentation? Please open an issue.

How?

The Quarkus GitHub App extension uses the Hub4j GitHub API to parse the webhook payloads and handle the GitHub REST API calls.

The rest of the extension is Quarkus magic - mostly code generation with Gizmo - to get everything wired.

It also leverages Reactive Routes, CDI events (both sync and async), and Caffeine.

Status

The extension is already well polished and stable.

Work is still needed on the test infrastructure though.

We are making steady progress on it.

License

This project is licensed under the Apache License Version 2.0.

Contributors

Thanks goes to these wonderful people (emoji key):


Guillaume Smet

💻 🚧

Yoann Rodière

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

io.quarkiverse.githubapp

Quarkiverse Hub

A place to host and build Quarkus extensions

Versions

Version
0.0.1