This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 5a21002556 Fixes #8685. Add github2 extension
5a21002556 is described below
commit 5a21002556edac60da0d7f7d0081d5592884147c
Author: Jomin Mathew <[email protected]>
AuthorDate: Thu Jun 18 07:11:32 2026 +0100
Fixes #8685. Add github2 extension
Add Camel Quarkus extension for the camel-github2 component backed by
the kohsuke github-api library.
- Extension with native support (runtime + deployment modules)
- GraalVM substitution for DefaultGitHubConnector to remove OkHttp
class references when OkHttp is absent from the classpath
- Integration tests with WireMock covering GETCOMMITFILE, GHRepository
and GHCommit model deserialization
- BOM, catalog, and documentation entries
Co-authored-by: jomin mathew <>
---
catalog/pom.xml | 13 +++
docs/modules/ROOT/examples/components/github2.yml | 13 +++
docs/modules/ROOT/nav.adoc | 1 +
.../ROOT/pages/reference/extensions/github2.adoc | 52 +++++++++
extensions/github2/deployment/pom.xml | 63 +++++++++++
.../github2/deployment/Github2Processor.java | 43 ++++++++
extensions/github2/pom.xml | 39 +++++++
extensions/github2/runtime/pom.xml | 106 +++++++++++++++++++
.../graal/DefaultGitHubConnectorSubstitutions.java | 61 +++++++++++
.../main/resources/META-INF/quarkus-extension.yaml | 36 +++++++
extensions/pom.xml | 1 +
integration-tests/github2/README.adoc | 22 ++++
integration-tests/github2/pom.xml | 117 +++++++++++++++++++++
.../component/github2/it/Github2Resource.java | 88 ++++++++++++++++
.../quarkus/component/github2/it/Github2IT.java | 24 +++++
.../quarkus/component/github2/it/Github2Test.java | 54 ++++++++++
.../component/github2/it/Github2TestResource.java | 34 ++++++
.../test/resources/mappings/github2GetBlob.json | 18 ++++
.../test/resources/mappings/github2GetCommit.json | 18 ++++
.../resources/mappings/github2GetRepository.json | 18 ++++
integration-tests/pom.xml | 1 +
poms/bom/pom.xml | 15 +++
poms/bom/src/main/generated/flattened-full-pom.xml | 15 +++
.../src/main/generated/flattened-reduced-pom.xml | 15 +++
.../generated/flattened-reduced-verbose-pom.xml | 15 +++
tooling/scripts/test-categories.yaml | 1 +
26 files changed, 883 insertions(+)
diff --git a/catalog/pom.xml b/catalog/pom.xml
index 64c1aca3cc..5c7af0307f 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -1527,6 +1527,19 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-google-bigquery</artifactId>
diff --git a/docs/modules/ROOT/examples/components/github2.yml
b/docs/modules/ROOT/examples/components/github2.yml
new file mode 100644
index 0000000000..6165f2f4ae
--- /dev/null
+++ b/docs/modules/ROOT/examples/components/github2.yml
@@ -0,0 +1,13 @@
+# Do not edit directly!
+# This file was generated by
camel-quarkus-maven-plugin:update-extension-doc-page
+cqArtifactId: camel-quarkus-github2
+cqArtifactIdBase: github2
+cqNativeSupported: true
+cqStatus: Stable
+cqDeprecated: false
+cqJvmSince: 3.37.0
+cqNativeSince: 3.37.0
+cqCamelPartName: github2
+cqCamelPartTitle: GitHub2
+cqCamelPartDescription: Interact with the GitHub API.
+cqExtensionPageTitle: GitHub2
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 605bf9bf5e..f1a2232e41 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -140,6 +140,7 @@
*** xref:reference/extensions/geocoder.adoc[Geocoder]
*** xref:reference/extensions/git.adoc[Git]
*** xref:reference/extensions/github.adoc[GitHub]
+*** xref:reference/extensions/github2.adoc[GitHub2]
*** xref:reference/extensions/google-bigquery.adoc[Google BigQuery]
*** xref:reference/extensions/google-calendar.adoc[Google Calendar]
*** xref:reference/extensions/google-drive.adoc[Google Drive]
diff --git a/docs/modules/ROOT/pages/reference/extensions/github2.adoc
b/docs/modules/ROOT/pages/reference/extensions/github2.adoc
new file mode 100644
index 0000000000..741b73c3b7
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/github2.adoc
@@ -0,0 +1,52 @@
+// Do not edit directly!
+// This file was generated by
camel-quarkus-maven-plugin:update-extension-doc-page
+[id="extensions-github2"]
+= GitHub2
+:linkattrs:
+:cq-artifact-id: camel-quarkus-github2
+:cq-native-supported: true
+:cq-status: Stable
+:cq-status-deprecation: Stable
+:cq-description: Interact with the GitHub API.
+:cq-deprecated: false
+:cq-jvm-since: 3.37.0
+:cq-native-since: 3.37.0
+
+ifeval::[{doc-show-badges} == true]
+[.badges]
+[.badge-key]##JVM since##[.badge-supported]##3.37.0## [.badge-key]##Native
since##[.badge-supported]##3.37.0##
+endif::[]
+
+Interact with the GitHub API.
+
+[id="extensions-github2-whats-inside"]
+== What's inside
+
+* xref:{cq-camel-components}::github2-component.adoc[GitHub2 component], URI
syntax: `github2:type/branchName`
+
+Please refer to the above link for usage and configuration details.
+
+[id="extensions-github2-maven-coordinates"]
+== Maven coordinates
+
+https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-github2[Create
a new project with this extension on {link-quarkus-code-generator},
window="_blank"]
+
+Or add the coordinates to your existing project:
+
+[source,xml]
+----
+<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2</artifactId>
+</dependency>
+----
+ifeval::[{doc-show-user-guide-link} == true]
+Check the xref:user-guide/index.adoc[User guide] for more information about
writing Camel Quarkus applications.
+endif::[]
+
+[id="extensions-github2-ssl-in-native-mode"]
+== SSL in native mode
+
+This extension auto-enables SSL support in native mode. Hence you do not need
to add
+`quarkus.ssl.native=true` to your `application.properties` yourself. See also
+https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].
diff --git a/extensions/github2/deployment/pom.xml
b/extensions/github2/deployment/pom.xml
new file mode 100644
index 0000000000..93fbb822bb
--- /dev/null
+++ b/extensions/github2/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2-parent</artifactId>
+ <version>3.37.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-github2-deployment</artifactId>
+ <name>Camel Quarkus :: GitHub2 :: Deployment</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-core-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>io.quarkus</groupId>
+
<artifactId>quarkus-extension-processor</artifactId>
+ <version>${quarkus.version}</version>
+ </path>
+ </annotationProcessorPaths>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git
a/extensions/github2/deployment/src/main/java/org/apache/camel/quarkus/component/github2/deployment/Github2Processor.java
b/extensions/github2/deployment/src/main/java/org/apache/camel/quarkus/component/github2/deployment/Github2Processor.java
new file mode 100644
index 0000000000..0668d40f65
--- /dev/null
+++
b/extensions/github2/deployment/src/main/java/org/apache/camel/quarkus/component/github2/deployment/Github2Processor.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.github2.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import org.kohsuke.github.connector.GitHubConnector;
+
+class Github2Processor {
+
+ private static final String FEATURE = "camel-github2";
+
+ @BuildStep
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
+ }
+
+ @BuildStep
+ ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
+ return new ExtensionSslNativeSupportBuildItem(FEATURE);
+ }
+
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitGitHubConnector() {
+ return new
RuntimeInitializedClassBuildItem(GitHubConnector.class.getName());
+ }
+}
diff --git a/extensions/github2/pom.xml b/extensions/github2/pom.xml
new file mode 100644
index 0000000000..5b8ac90e9c
--- /dev/null
+++ b/extensions/github2/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-extensions</artifactId>
+ <version>3.37.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-github2-parent</artifactId>
+ <name>Camel Quarkus :: GitHub2</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>deployment</module>
+ <module>runtime</module>
+ </modules>
+</project>
diff --git a/extensions/github2/runtime/pom.xml
b/extensions/github2/runtime/pom.xml
new file mode 100644
index 0000000000..e13ad88fe3
--- /dev/null
+++ b/extensions/github2/runtime/pom.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2-parent</artifactId>
+ <version>3.37.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-github2</artifactId>
+ <name>Camel Quarkus :: GitHub2 :: Runtime</name>
+ <description>Interact with the GitHub API.</description>
+
+ <properties>
+ <camel.quarkus.jvmSince>3.37.0</camel.quarkus.jvmSince>
+ <camel.quarkus.nativeSince>3.37.0</camel.quarkus.nativeSince>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-github2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.graalvm.sdk</groupId>
+ <artifactId>nativeimage</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-extension-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>io.quarkus</groupId>
+
<artifactId>quarkus-extension-processor</artifactId>
+ <version>${quarkus.version}</version>
+ </path>
+ </annotationProcessorPaths>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <profiles>
+ <profile>
+ <id>full</id>
+ <activation>
+ <property>
+ <name>!quickly</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>update-extension-doc-page</id>
+ <goals>
+ <goal>update-extension-doc-page</goal>
+ </goals>
+ <phase>process-classes</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git
a/extensions/github2/runtime/src/main/java/org/apache/camel/quarkus/component/github2/graal/DefaultGitHubConnectorSubstitutions.java
b/extensions/github2/runtime/src/main/java/org/apache/camel/quarkus/component/github2/graal/DefaultGitHubConnectorSubstitutions.java
new file mode 100644
index 0000000000..6a4a26de6a
--- /dev/null
+++
b/extensions/github2/runtime/src/main/java/org/apache/camel/quarkus/component/github2/graal/DefaultGitHubConnectorSubstitutions.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.github2.graal;
+
+import java.util.function.BooleanSupplier;
+
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.kohsuke.github.HttpConnector;
+import org.kohsuke.github.connector.GitHubConnector;
+import org.kohsuke.github.extras.HttpClientGitHubConnector;
+import org.kohsuke.github.internal.DefaultGitHubConnector;
+import org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter;
+
+@TargetClass(value = DefaultGitHubConnector.class, onlyWith =
DefaultGitHubConnectorSubstitutions.OkHttpIsAbsent.class)
+final class DefaultGitHubConnectorSubstitutions {
+
+ @Substitute
+ static GitHubConnector create(String connectorSpec) {
+ if ("httpclient".equalsIgnoreCase(connectorSpec)) {
+ return new HttpClientGitHubConnector();
+ } else if ("default".equalsIgnoreCase(connectorSpec)) {
+ try {
+ return new HttpClientGitHubConnector();
+ } catch (UnsupportedOperationException | LinkageError e) {
+ return new
GitHubConnectorHttpConnectorAdapter(HttpConnector.DEFAULT);
+ }
+ } else if ("urlconnection".equalsIgnoreCase(connectorSpec)) {
+ return new
GitHubConnectorHttpConnectorAdapter(HttpConnector.DEFAULT);
+ }
+ throw new IllegalStateException(
+ "Property 'test.github.connector' must reference a valid
built-in connector - httpclient, urlconnection, or default."
+ + " (okhttp and okhttpconnector require the OkHttp
library on the classpath.)");
+ }
+
+ static final class OkHttpIsAbsent implements BooleanSupplier {
+ @Override
+ public boolean getAsBoolean() {
+ try {
+
Thread.currentThread().getContextClassLoader().loadClass("okhttp3.OkHttpClient");
+ return false;
+ } catch (ClassNotFoundException e) {
+ return true;
+ }
+ }
+ }
+}
diff --git
a/extensions/github2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
b/extensions/github2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000000..ab7f7ced81
--- /dev/null
+++
b/extensions/github2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,36 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+# mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel GitHub2"
+description: "Interact with the GitHub API"
+metadata:
+ icon-url:
"https://raw.githubusercontent.com/apache/camel-website/main/antora-ui-camel/src/img/logo-d.svg"
+ sponsor: "Apache Software Foundation"
+ guide:
"https://camel.apache.org/camel-quarkus/latest/reference/extensions/github2.html"
+ categories:
+ - "integration"
+ status: "stable"
+ integrates:
+ - name: "Camel"
+ artifact: "org.apache.camel:camel-base"
+ version: "${camel.version}"
\ No newline at end of file
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 7516fe9884..52cc62ea66 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -121,6 +121,7 @@
<module>geocoder</module>
<module>git</module>
<module>github</module>
+ <module>github2</module>
<module>google-bigquery</module>
<module>google-calendar</module>
<module>google-drive</module>
diff --git a/integration-tests/github2/README.adoc
b/integration-tests/github2/README.adoc
new file mode 100644
index 0000000000..3b6ad6ed1a
--- /dev/null
+++ b/integration-tests/github2/README.adoc
@@ -0,0 +1,22 @@
+== Camel Quarkus GitHub2 Integration Tests
+
+By default the GitHub2 integration tests use WireMock to stub the API
interactions.
+
+To run the `camel-quarkus-github2` integration tests against the real API, you
must first create a GitHub personal access
+token.
+
+Then set the following environment variable:
+
+[source,shell]
+----
+export GITHUB_TOKEN=your-token
+----
+
+If the WireMock stub recordings need updating, then remove the existing files
from `src/test/resources/mappings` and run
+tests with either:
+
+System property `-Dwiremock.record=true`
+
+Or
+
+Set environment variable `WIREMOCK_RECORD=true`
diff --git a/integration-tests/github2/pom.xml
b/integration-tests/github2/pom.xml
new file mode 100644
index 0000000000..f74d1128f8
--- /dev/null
+++ b/integration-tests/github2/pom.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-build-parent-it</artifactId>
+ <version>3.37.0-SNAPSHOT</version>
+ <relativePath>../../poms/build-parent-it/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-integration-test-github2</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: GitHub2</name>
+ <description>Integration tests for Camel Quarkus GitHub2
extension</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-resteasy</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-integration-wiremock-support</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.rest-assured</groupId>
+ <artifactId>rest-assured</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>native</id>
+ <activation>
+ <property>
+ <name>native</name>
+ </property>
+ </activation>
+ <properties>
+ <quarkus.native.enabled>true</quarkus.native.enabled>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>virtualDependencies</id>
+ <activation>
+ <property>
+ <name>!noVirtualDependencies</name>
+ </property>
+ </activation>
+ <dependencies>
+ <!-- The following dependencies guarantee that this module is
built after them. You can update them by running `mvn process-resources
-Pformat -N` from the source tree root directory -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
+
+</project>
diff --git
a/integration-tests/github2/src/main/java/org/apache/camel/quarkus/component/github2/it/Github2Resource.java
b/integration-tests/github2/src/main/java/org/apache/camel/quarkus/component/github2/it/Github2Resource.java
new file mode 100644
index 0000000000..8d41e6c2dd
--- /dev/null
+++
b/integration-tests/github2/src/main/java/org/apache/camel/quarkus/component/github2/it/Github2Resource.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.github2.it;
+
+import java.util.Optional;
+
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import org.apache.camel.ProducerTemplate;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+import org.kohsuke.github.GHCommit;
+import org.kohsuke.github.GHRepository;
+import org.kohsuke.github.GitHub;
+import org.kohsuke.github.GitHubBuilder;
+
+@Path("/github2")
+public class Github2Resource {
+
+ // Upstream GetCommitFileProducer uses the same SHA for both getCommit()
and getBlob() calls
+ private static final String COMMIT_SHA =
"6195efafd0a8100795247e35942b5c61fea79267";
+ private static final String GITHUB_AUTH_PARAMS =
"oauthToken={{env:GITHUB_TOKEN:}}";
+
+ @Inject
+ ProducerTemplate producerTemplate;
+
+ @Path("/get")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String getCamelQuarkusReadme() throws Exception {
+ Config config = ConfigProvider.getConfig();
+ Optional<String> wireMockUrl = config.getOptionalValue("wiremock.url",
String.class);
+
+ StringBuilder uri = new
StringBuilder("github2:GETCOMMITFILE?repoOwner=apache&repoName=camel-quarkus&");
+ uri.append(GITHUB_AUTH_PARAMS);
+ wireMockUrl.ifPresent(url -> uri.append("&apiUrl=").append(url));
+
+ return producerTemplate.requestBody(
+ uri.toString(),
+ COMMIT_SHA,
+ String.class);
+ }
+
+ @Path("/repository")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String getRepositoryFullName() throws Exception {
+ GHRepository repo =
createGitHubClient().getRepository("apache/camel-quarkus");
+ return repo.getFullName();
+ }
+
+ @Path("/commit/author")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String getCommitAuthor() throws Exception {
+ GHRepository repo =
createGitHubClient().getRepository("apache/camel-quarkus");
+ GHCommit commit = repo.getCommit(COMMIT_SHA);
+ return commit.getCommitShortInfo().getAuthor().getName();
+ }
+
+ private GitHub createGitHubClient() throws Exception {
+ Config config = ConfigProvider.getConfig();
+ Optional<String> wireMockUrl = config.getOptionalValue("wiremock.url",
String.class);
+ String token = System.getenv("GITHUB_TOKEN");
+
+ GitHubBuilder builder = new GitHubBuilder()
+ .withOAuthToken(token != null ? token : "");
+ wireMockUrl.ifPresent(url -> builder.withEndpoint(url));
+ return builder.build();
+ }
+}
diff --git
a/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2IT.java
b/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2IT.java
new file mode 100644
index 0000000000..170ac34c35
--- /dev/null
+++
b/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2IT.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.github2.it;
+
+import io.quarkus.test.junit.QuarkusIntegrationTest;
+
+@QuarkusIntegrationTest
+class Github2IT extends Github2Test {
+
+}
diff --git
a/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2Test.java
b/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2Test.java
new file mode 100644
index 0000000000..c94ea0b115
--- /dev/null
+++
b/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2Test.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.github2.it;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+
+@QuarkusTest
+@QuarkusTestResource(Github2TestResource.class)
+class Github2Test {
+
+ @Test
+ public void testGetCommitFile() {
+ RestAssured.get("/github2/get")
+ .then()
+ .statusCode(200)
+ .body(containsString("Apache Camel extensions for Quarkus"));
+ }
+
+ @Test
+ public void testRepositoryDeserialization() {
+ RestAssured.get("/github2/repository")
+ .then()
+ .statusCode(200)
+ .body(is("apache/camel-quarkus"));
+ }
+
+ @Test
+ public void testCommitDeserialization() {
+ RestAssured.get("/github2/commit/author")
+ .then()
+ .statusCode(200)
+ .body(is("test"));
+ }
+}
diff --git
a/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2TestResource.java
b/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2TestResource.java
new file mode 100644
index 0000000000..149859346f
--- /dev/null
+++
b/integration-tests/github2/src/test/java/org/apache/camel/quarkus/component/github2/it/Github2TestResource.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.github2.it;
+
+import
org.apache.camel.quarkus.test.wiremock.WireMockTestResourceLifecycleManager;
+
+public class Github2TestResource extends WireMockTestResourceLifecycleManager {
+
+ private static final String GITHUB_ENV_TOKEN = "GITHUB_TOKEN";
+
+ @Override
+ protected String getRecordTargetBaseUrl() {
+ return "https://api.github.com";
+ }
+
+ @Override
+ protected boolean isMockingEnabled() {
+ return !envVarsPresent(GITHUB_ENV_TOKEN);
+ }
+}
diff --git
a/integration-tests/github2/src/test/resources/mappings/github2GetBlob.json
b/integration-tests/github2/src/test/resources/mappings/github2GetBlob.json
new file mode 100644
index 0000000000..57d400b97d
--- /dev/null
+++ b/integration-tests/github2/src/test/resources/mappings/github2GetBlob.json
@@ -0,0 +1,18 @@
+{
+ "id" : "a1b2c3d4-aaaa-bbbb-cccc-ddddeeeeffff",
+ "name" :
"repos_apache_camel-quarkus_git_blobs_6195efafd0a8100795247e35942b5c61fea79267",
+ "request" : {
+ "url" :
"/repos/apache/camel-quarkus/git/blobs/6195efafd0a8100795247e35942b5c61fea79267",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" :
"{\"sha\":\"6195efafd0a8100795247e35942b5c61fea79267\",\"node_id\":\"MDQ6QmxvYjE5MzA2NTM3Njo2MTk1ZWZhZmQwYTgxMDA3OTUyNDdlMzU5NDJiNWM2MWZlYTc5MjY3\",\"size\":520,\"url\":\"https://api.github.com/repos/apache/camel-quarkus/git/blobs/6195efafd0a8100795247e35942b5c61fea79267\",\"content\":\"PSBBcGFjaGUgQ2FtZWwgZXh0ZW5zaW9ucyBmb3IgUXVhcmt1cwoKVGhpcyBwcm9qZWN0IGhvc3RzIHRoZSBlZmZvcnRzIHRvIHBvcnQgYW5kIHBhY2thZ2UgdGhlIDI4MCsgQ2FtZWwgY29tcG9uZW50cyBhcyBRdWFya3VzIGV4dGVuc2lvbnMuCgpodHR
[...]
+ "headers" : {
+ "Content-Type" : "application/json; charset=utf-8"
+ }
+ },
+ "uuid" : "a1b2c3d4-aaaa-bbbb-cccc-ddddeeeeffff",
+ "persistent" : true,
+ "insertionIndex" : 3
+}
diff --git
a/integration-tests/github2/src/test/resources/mappings/github2GetCommit.json
b/integration-tests/github2/src/test/resources/mappings/github2GetCommit.json
new file mode 100644
index 0000000000..7782630eee
--- /dev/null
+++
b/integration-tests/github2/src/test/resources/mappings/github2GetCommit.json
@@ -0,0 +1,18 @@
+{
+ "id" : "a1b2c3d4-5555-6666-7777-888899990000",
+ "name" :
"repos_apache_camel-quarkus_commits_6195efafd0a8100795247e35942b5c61fea79267",
+ "request" : {
+ "url" :
"/repos/apache/camel-quarkus/commits/6195efafd0a8100795247e35942b5c61fea79267",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" :
"{\"sha\":\"6195efafd0a8100795247e35942b5c61fea79267\",\"node_id\":\"MDQ6Q29tbWl0MTkzMDY1Mzc2OjYxOTVlZmFmZDBhODEwMDc5NTI0N2UzNTk0MmI1YzYxZmVhNzkyNjc=\",\"commit\":{\"author\":{\"name\":\"test\",\"email\":\"[email protected]\",\"date\":\"2021-05-20T07:17:36Z\"},\"committer\":{\"name\":\"test\",\"email\":\"[email protected]\",\"date\":\"2021-05-20T07:17:36Z\"},\"message\":\"test
commit\",\"tree\":{\"sha\":\"abc123\",\"url\":\"https://api.github.com/repos/apache/camel-quarkus/git
[...]
+ "headers" : {
+ "Content-Type" : "application/json; charset=utf-8"
+ }
+ },
+ "uuid" : "a1b2c3d4-5555-6666-7777-888899990000",
+ "persistent" : true,
+ "insertionIndex" : 2
+}
diff --git
a/integration-tests/github2/src/test/resources/mappings/github2GetRepository.json
b/integration-tests/github2/src/test/resources/mappings/github2GetRepository.json
new file mode 100644
index 0000000000..a1ca50dab5
--- /dev/null
+++
b/integration-tests/github2/src/test/resources/mappings/github2GetRepository.json
@@ -0,0 +1,18 @@
+{
+ "id" : "a1b2c3d4-1111-2222-3333-444455556666",
+ "name" : "repos_apache_camel-quarkus",
+ "request" : {
+ "url" : "/repos/apache/camel-quarkus",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" :
"{\"id\":193065376,\"node_id\":\"MDEwOlJlcG9zaXRvcnkxOTMwNjUzNzY=\",\"name\":\"camel-quarkus\",\"full_name\":\"apache/camel-quarkus\",\"private\":false,\"owner\":{\"login\":\"apache\",\"id\":47359,\"node_id\":\"MDEyOk9yZ2FuaXphdGlvbjQ3MzU5\",\"avatar_url\":\"https://avatars.githubusercontent.com/u/47359?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/apache\",\"html_url\":\"https://github.com/apache\",\"type\":\"Organization\",\"site_admin\":false},\"html_u
[...]
+ "headers" : {
+ "Content-Type" : "application/json; charset=utf-8"
+ }
+ },
+ "uuid" : "a1b2c3d4-1111-2222-3333-444455556666",
+ "persistent" : true,
+ "insertionIndex" : 1
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index cccbb2b8c2..c39d21acfe 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -98,6 +98,7 @@
<module>geocoder</module>
<module>git</module>
<module>github</module>
+ <module>github2</module>
<module>google</module>
<module>google-bigquery</module>
<module>google-pubsub</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 024dfa3bee..ae4d9d1945 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1316,6 +1316,11 @@
<artifactId>camel-github</artifactId>
<version>${camel.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-github2</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-bigquery</artifactId>
@@ -4540,6 +4545,16 @@
<artifactId>camel-quarkus-github-deployment</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2-deployment</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-google-bigquery</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml
b/poms/bom/src/main/generated/flattened-full-pom.xml
index 75b221414a..dd6634311f 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -1229,6 +1229,11 @@
<artifactId>camel-github</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.20.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-github2</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>4.20.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-google-bigquery</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -4425,6 +4430,16 @@
<artifactId>camel-quarkus-github-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.37.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-github2</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.37.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-github2-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.37.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-quarkus-google-bigquery</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index ebdf08b640..3faeea767b 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -1224,6 +1224,11 @@
<artifactId>camel-github</artifactId>
<version>4.20.0</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-github2</artifactId>
+ <version>4.20.0</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-bigquery</artifactId>
@@ -4404,6 +4409,16 @@
<artifactId>camel-quarkus-github-deployment</artifactId>
<version>3.37.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2</artifactId>
+ <version>3.37.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-github2-deployment</artifactId>
+ <version>3.37.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-google-bigquery</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index 71d81ce05a..1609a257d9 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -1224,6 +1224,11 @@
<artifactId>camel-github</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.20.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-github2</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>4.20.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-google-bigquery</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -4404,6 +4409,16 @@
<artifactId>camel-quarkus-github-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.37.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-github2</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.37.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-github2-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.37.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-quarkus-google-bigquery</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/tooling/scripts/test-categories.yaml
b/tooling/scripts/test-categories.yaml
index fe0e4e24d0..5b138001e2 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -229,6 +229,7 @@ group-11:
group-12:
- aws2-grouped
- csimple
+ - github2
- quartz-clustered
- knative
- langchain4j-web-search