{"id":19748869,"url":"https://github.com/project-ncl/deliverables-analyzer","last_synced_at":"2025-04-30T08:34:04.420Z","repository":{"id":37407088,"uuid":"246616840","full_name":"project-ncl/deliverables-analyzer","owner":"project-ncl","description":"Analyzes deliverables","archived":false,"fork":false,"pushed_at":"2024-11-09T21:37:12.000Z","size":1232,"stargazers_count":0,"open_issues_count":1,"forks_count":7,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-09T22:27:53.225Z","etag":null,"topics":["bootstrap3","html","jquery","quarkus","resteasy"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-ncl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-11T16:02:07.000Z","updated_at":"2024-11-09T21:37:16.000Z","dependencies_parsed_at":"2024-02-06T01:27:54.649Z","dependency_job_id":"a69b1149-f6ab-48d9-b6f5-412da6931e10","html_url":"https://github.com/project-ncl/deliverables-analyzer","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-ncl%2Fdeliverables-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-ncl%2Fdeliverables-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-ncl%2Fdeliverables-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-ncl%2Fdeliverables-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-ncl","download_url":"https://codeload.github.com/project-ncl/deliverables-analyzer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224204128,"owners_count":17273059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap3","html","jquery","quarkus","resteasy"],"created_at":"2024-11-12T02:24:02.227Z","updated_at":"2025-04-30T08:34:04.407Z","avatar_url":"https://github.com/project-ncl.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deliverables Analyzer\n\nDeliverables Analyzer is a RESTful Web Service that uses the\n[Build Finder](https://github.com/project-ncl/build-finder) library to\nscan a given URL containing a software distribution and return the list\nof builds.\n\n## Endpoints\n\n### Analyze\n\nThe main way to use the service is as follows:\n\n- Perform an HTTP POST passing the `url` of a *deliverable* to\n  `/api/analyze`. A *deliverable* should be an archive, such as a `.zip`\n  or `.jar` file, which contains a product version. For example, if your\n  product is `jbossfoo` and your version is `1.0`, then you might have a\n  file called `jbossfoo-1.0.zip` to analyze. The `url` must be using\n  protocol `http` or `https`. You may also optionally set `config` to\n  override some of the default configuration settings. The `config` is\n  the JSON representation of\n  `org.jboss.pnc.build.finder.core.BuildConfig`.\n- The `/api/analyze` endpoint will return the status code `201 Created`\n  with a `Location` header. The location will be set to\n  `/api/analyze/results/\u003cid\u003e` where `\u003cid\u003e` is an identifier\n  corresponding to the `url`. The results will be cached, but will\n  eventually expire. You may fetch the configuration used by accessing\n  the `/api/analyze/configs/\u003cid\u003e` endpoint.\n- The `/api/analyze/results/\u003cid\u003e` endpoint will return status code `404\n  Not Found` if `\u003cid\u003e` doesn't exist. It will return `503 Service\n  Unavailable` if the results exist, but are not yet ready. It will\n  return `200 OK` if the results exist and are ready. In case there is\n  an error getting the results, it will return `500 Server Error`.\n- The `/api/analyze/statuses/\u003cid\u003e` endpoint will return the current\n  status (percent done) of the analysis and may be polled once the\n  analysis has started.\n\n### Health\n\nThe service supports the MicroProfile `/q/health` endpoint (and also\n`/q/health/live` and `/q/health/ready`).\n\n### Version\n\nThe service will reply to `/api/version` with a version string in\nplaintext containing information about the service as well as the\nversion of [Build Finder](https://github.com/project-ncl/build-finder)\nbeing used.\n\n## Building with Maven\n\nTo build with Maven and run the tests:\n\n```\n$ mvn -Ddistribution.url=\u003curl\u003e clean install\n```\n\n## Configuration\n\nDeliverables Analyzer can be configured by setting the various configuration\nkeys listed below. They can be defined by setting the configuration key in:\n\n- system property (`-Dkey=value`)\n- environment variable\n- `.env` file in the working directory\n- `application.properties` file\n\n| Configuration Key | Description                                                          | Example                          |\n|-------------------|----------------------------------------------------------------------|----------------------------------|\n| koji.hub.url      | The Koji Hub URL to find builds                                      | http://brewhub.localhost/brewhub |\n| koji.web.url      | The Koji Web URL                                                     | http://brewweb.localhost/brew    |\n| pnc.url           | The PNC URL to find builds                                           | http://pnc.localhost             |\n| infinispan.mode   | Define whether to use Infinispan in `EMBEDDED` (default) or `REMOTE` | `EMBEDDED`                       |\n\n### Remote Infinispan\n\nIf the `infinispan.mode` is set to `REMOTE`, the following configuration keys need to be defined:\n\n| Configuration Key                  | Description                                                    | Example         |\n|------------------------------------|----------------------------------------------------------------|-----------------|\n| quarkus.infinispan-client.hosts    | Comma-delimited Infinispan server list (\\\u003chostname\u003e[:\\\u003cport\u003e]) | localhost:11222 |\n| quarkus.infinispan-client.username | Username for the Infinispan server                             | admin           |\n| quarkus.infinispan-client.password | Password for the Infinispan server                             | password        |\n\nThe following caches also need to be present in the Infinispan server:\n\n- builds\n- builds-pnc\n- checksums-md5\n- checksums-pnc-md5\n- checksums-pnc-sha1\n- checksums-pnc-sha256\n- checksums-sha1\n- checksums-sha256\n- files-md5\n- files-sha1\n- files-sha256\n- rpms-md5\n- rpms-sha1\n- rpms-sha256\n\n### OpenTelemetry\n\n| Configuration Key                   | Description                             | Example                                                                |\n|-------------------------------------|-----------------------------------------|------------------------------------------------------------------------|\n| quarkus.otel.exporter.otlp.endpoint | OTLP endpoint to send telemetry data to | http://localhost:4317                                                  |\n| quarkus.otel.resource.attributes    | Attributes to add to the exported trace | \"service.name=pnc-deliverable-analyzer,deployment.environment=staging\" |\n\n## Creating Docker Images with Docker Compose\n\nTo also build the Docker image, add `-Pdocker` to the `mvn` arguments.\n\nThis is the equivalent of manually running:\n\n```\n$ docker-compose pull\n$ docker-compose up --build\n$ docker-compose down --rmi --remove-orphans -v\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-ncl%2Fdeliverables-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproject-ncl%2Fdeliverables-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-ncl%2Fdeliverables-analyzer/lists"}