diff --git a/pom.xml b/pom.xml
index a9acab6..83453dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
UTF-8
quarkus-bom
io.quarkus.platform
- 3.1.2.Final
+ 3.1.3.Final
true
3.0.0
@@ -87,6 +87,24 @@
io.quarkus
quarkus-kubernetes-config
+
+ org.jboss.pnc
+ common
+ 2.5.1
+
+
+ org.jboss.pnc
+ rest-client
+ 2.5.1
+
+
+ io.quarkus
+ quarkus-rest-client-reactive-jackson
+
+
+ io.quarkus
+ quarkus-rest-client-reactive
+
io.quarkus
quarkus-junit5
diff --git a/src/main/java/com/redhat/pctsec/model/PNCBuild.java b/src/main/java/com/redhat/pctsec/model/PNCBuild.java
index 36f9b55..a6f2f88 100644
--- a/src/main/java/com/redhat/pctsec/model/PNCBuild.java
+++ b/src/main/java/com/redhat/pctsec/model/PNCBuild.java
@@ -1,15 +1,48 @@
package com.redhat.pctsec.model;
+import com.redhat.pctsec.model.api.service.AltPncService;
+//import com.redhat.pctsec.model.api.service.PncService;
+import io.quarkus.rest.client.reactive.QuarkusRestClientBuilder;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import jakarta.persistence.Entity;
+import jakarta.persistence.Transient;
+import org.eclipse.microprofile.config.ConfigProvider;
+import org.eclipse.microprofile.config.inject.ConfigProperty;
+import org.jboss.pnc.dto.Build;
import java.net.URI;
import java.net.URL;
@Entity
public class PNCBuild extends BuildType{
+
+
+ @Transient
+ public static final String apiUrl = ConfigProvider.getConfig().getValue("pnc.api-url",String.class);
+ @Transient
+ private static final AltPncService pnc = QuarkusRestClientBuilder.newBuilder().baseUri(URI.create(apiUrl)).build(AltPncService.class);
+
+
+ /*
+ @Transient
+ PncService pnc;
+ */
+
+ @Transient
+ Build build;
+
+ private URI SCMURL;
+ private String revision;
+
public PNCBuild() {
super();
}
+ public Build getBuild() {
+ if(build == null)
+ build = pnc.getBuild(this.buildRef);
+ return build;
+ }
public PNCBuild(String buildRef) {
super(buildRef);
@@ -17,7 +50,10 @@ public class PNCBuild extends BuildType{
@Override
public URI SCMURL() {
- return null;
+ if(SCMURL == null)
+ SCMURL = URI.create(getBuild().getScmUrl());
+
+ return this.SCMURL;
}
@Override
@@ -27,7 +63,9 @@ public class PNCBuild extends BuildType{
@Override
public String revision() {
- return null;
+ if(revision == null)
+ revision = getBuild().getScmTag();
+ return revision;
}
public static boolean isValidRef(String ref){
diff --git a/src/main/java/com/redhat/pctsec/model/api/service/AltPncService.java b/src/main/java/com/redhat/pctsec/model/api/service/AltPncService.java
new file mode 100644
index 0000000..2f09a58
--- /dev/null
+++ b/src/main/java/com/redhat/pctsec/model/api/service/AltPncService.java
@@ -0,0 +1,12 @@
+package com.redhat.pctsec.model.api.service;
+import jakarta.ws.rs.*;
+import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
+import org.jboss.pnc.dto.Build;
+
+@Path("pnc-rest/v2/builds")
+@RegisterRestClient
+public interface AltPncService {
+ @GET
+ @Path("{id}")
+ Build getBuild(@PathParam("id") String id);
+}
diff --git a/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestsResource.java b/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestsResource.java
index 6b26743..5564b64 100644
--- a/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestsResource.java
+++ b/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestsResource.java
@@ -9,7 +9,7 @@ import io.quarkus.security.Authenticated;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.*;
-import org.jboss.resteasy.reactive.common.NotImplementedYet;
+//import org.jboss.resteasy.reactive.common.NotImplementedYet;
import java.util.UUID;
@@ -35,7 +35,7 @@ public class ScanRequestsResource {
@Authenticated
public ScanRequests addScanRequest(String id, ScanRequest scanRequest)
{
- throw new NotImplementedYet();
+ throw new WebApplicationException("Not implemented");
}
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index a2748bb..750c602 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -57,6 +57,7 @@ quarkus.arc.remove-unused-beans=false
%stage.quarkus.openshift.route.target-port=https
%stage.quarkus.openshift.route.tls.insecure-edge-termination-policy=redirect
%stage.quarkus.openshift.namespace=pct-security-tooling
+quarkus.openshift.namespace=pct-security-tooling
##########################################
# Kerberos Specifics #
@@ -80,5 +81,10 @@ tekton.pipeline.ref=osh-client-from-source
tekton.task.ref=osh-scan-task
tekton.service-account=${quarkus.openshift.service-account}
+##########################################
+# PNC Settings #
+##########################################
+pnc.api-url=http://orch.psi.redhat.com
+
diff --git a/src/test/java/com/redhat/pctsec/model/test/PNCBuildTest.java b/src/test/java/com/redhat/pctsec/model/test/PNCBuildTest.java
new file mode 100644
index 0000000..76a571b
--- /dev/null
+++ b/src/test/java/com/redhat/pctsec/model/test/PNCBuildTest.java
@@ -0,0 +1,19 @@
+package com.redhat.pctsec.model.test;
+
+import com.redhat.pctsec.model.PNCBuild;
+import io.quarkus.test.junit.QuarkusTest;
+import jakarta.inject.Inject;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+public class PNCBuildTest {
+
+
+
+ @Test
+ public void testBuildFetch(){
+ PNCBuild pb = new PNCBuild("AZAQZSPFDRQAA");
+ System.out.println(pb.SCMURL());
+ System.out.println(pb.revision());
+ }
+}
diff --git a/src/test/java/com/redhat/pctsec/model/osh/paramMapperTest.java b/src/test/java/com/redhat/pctsec/model/test/paramMapperTest.java
similarity index 83%
rename from src/test/java/com/redhat/pctsec/model/osh/paramMapperTest.java
rename to src/test/java/com/redhat/pctsec/model/test/paramMapperTest.java
index f24ee8c..f376e8f 100644
--- a/src/test/java/com/redhat/pctsec/model/osh/paramMapperTest.java
+++ b/src/test/java/com/redhat/pctsec/model/test/paramMapperTest.java
@@ -1,5 +1,6 @@
-package com.redhat.pctsec.model.osh;
+package com.redhat.pctsec.model.test;
+import com.redhat.pctsec.model.osh.paramMapper;
import io.quarkus.test.junit.QuarkusTest;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;