All Projects → quarkiverse → quarkus-github-app

quarkiverse / quarkus-github-app

Licence: Apache-2.0 License
Develop your GitHub Apps in Java with Quarkus.

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to quarkus-github-app

quarkus-rabbitmq-client
Quarkus extension supporting RabbitMQ
Stars: ✭ 33 (+17.86%)
Mutual labels:  quarkus-extension
quarkus-resteasy-problem
Unified error responses for Quarkus REST APIs via Problem Details for HTTP APIs (RFC7807). Supports Quarkus 2.0+ and 1.4+
Stars: ✭ 36 (+28.57%)
Mutual labels:  quarkus-extension
quarkus-jberet
Quarkus Extension for Batch Applications.
Stars: ✭ 26 (-7.14%)
Mutual labels:  quarkus-extension
quarkus-google-cloud-services
Google Cloud Services Quarkus Extensions
Stars: ✭ 42 (+50%)
Mutual labels:  quarkus-extension
quarkus-freemarker
Quarkus Freemarker Extension
Stars: ✭ 13 (-53.57%)
Mutual labels:  quarkus-extension
quarkus-mybatis
Quarkus MyBatis Extension
Stars: ✭ 45 (+60.71%)
Mutual labels:  quarkus-extension
quarkus-logging-manager
Quarkus extension that allows you to view the log online and change log levels using a UI
Stars: ✭ 25 (-10.71%)
Mutual labels:  quarkus-extension

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 supports the GitHub REST API, execution of GraphQL queries, YAML or JSON config files in your repository...

It relies on a Smee.io proxy during the development of the app to redirect GitHub events towards your local instance with no hassle.

Finally, it comes with a nice and searchable Replay UI:

Replay UI

Documentation

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

Anything unclear or missing in the documentation? Please open an issue.

Examples

How?

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

It can also execute GraphQL queries towards the GitHub GraphQL API via the SmallRye GraphQL Client.

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.

Architecture

Status

This extension is considered stable and is used in production.

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

💻

jtama

💻

Joël Marty

💻

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].