Deliverables Analyzer is a RESTful Web Service that uses the Build Finder library to scan a given URL containing a software distribution and return the list of builds.
The main way to use the service is as follows:
- Perform an HTTP POST passing the
url
of a deliverable to/api/analyze
. A deliverable should be an archive, such as a.zip
or.jar
file, which contains a product version. For example, if your product isjbossfoo
and your version is1.0
, then you might have a file calledjbossfoo-1.0.zip
to analyze. Theurl
must be using protocolhttp
orhttps
. You may also optionally setconfig
to override some of the default configuration settings. Theconfig
is the JSON representation oforg.jboss.pnc.build.finder.core.BuildConfig
. - The
/api/analyze
endpoint will return the status code201 Created
with aLocation
header. The location will be set to/api/analyze/results/<id>
where<id>
is an identifier corresponding to theurl
. The results will be cached, but will eventually expire. You may fetch the configuration used by accessing the/api/analyze/configs/<id>
endpoint. - The
/api/analyze/results/<id>
endpoint will return status code404 Not Found
if<id>
doesn't exist. It will return503 Service Unavailable
if the results exist, but are not yet ready. It will return200 OK
if the results exist and are ready. In case there is an error getting the results, it will return500 Server Error
. - The
/api/analyze/statuses/<id>
endpoint will return the current status (percent done) of the analysis and may be polled once the analysis has started.
The service supports the Micoprofile /health
endpoint (and also
/health/live
and /health/ready
).
The service will reply to /api/version
with a version string in
plaintext containing information about the service as well as the
version of Build Finder
being used.
To build with Maven and run the tests:
$ mvn -Ddistribution.url=<url> clean install
To also build the Docker image, add -Pdocker
to the mvn
arguments.
This is the equivalent of manually running:
$ docker-compose pull
$ docker-compose up --build
$ docker-compose down --rmi --remove-orphans -v