Build API
API to report builds and test results to Ketryx
Ketryx exposes an API to report builds and test results programmatically. There is also a formal OpenAPI specification defining this API, and a separate page about authentication and API keys. You can also take a look at the implementation of the Ketryx GitHub Action for how this API can be interacted with.
Builds
You should either pass in the version
parameter to associate the build with a particular version, or set the commitSha
parameter so the build will be associated with any version whose release ref pattern (as configured in the Ketryx project settings) resolves to that commit. The version
parameter can be the Ketryx version ID (KXVSN...
) or the full version name (e.g. App v1.0.0
). Either way, automated tests need to be associated with a particular version (not the Current state), so they will not show up in Ketryx test management unless you create a version.
You can combine the reporting of test results with one or more checks (checkDependenciesStatus
, checkReleaseStatus
), or make separate requests. Typically, test results will be reported for all release candidate builds, while the final check for checkReleaseStatus
would happen in the deployment script to production (before actually triggering the deployment).
Build artifacts
Configure required build documents
A particular set of uploaded build artifacts may be detected as required build documents to either block the release of a Ketryx version, or help gathering important build documents for a release in an automated way.
To enable tracking for required build documents on the release / Git commit level, please refer to the relevant Advanced settings section for more details.
Examples
Reporting a Cucumber test result
Upload a Cucumber JSON build artifact to Ketryx:
with an attached file (e.g., cucumber.json
) as multipart form data. This returns a JSON response of the following form:
Using the id
from the response, make another request to report a build that produced this build artifact:
Ketryx will parse the Cucumber JSON file and create corresponding automatic test executions, based on annotations in the test file as described in MAN-06 Test Management.
Reporting individual test results directly
As an alternative to uploading Cucumber JSON or JUnit XML files to Ketryx, you can report individual test results directly, using the tests
property:
Each test may optionally reference one or more artifacts
as well.
Uploading an SPDX file
Upload an SPDX build artifact to Ketryx:
with an attached file (e.g., spdx.json
) as multipart form data. This returns a JSON response of the following form:
Using the id
from the response, make another request to report a build that produced this build artifact:
Ketryx will parse the SPDX JSON file and create corresponding dependencies as defined within these files. It extracts crucial information about software packages, including version, license, and advisory information (introduced in SPDX version 2.3), which pertains to any vulnerabilities associated with the software packages.
Uploading a CycloneDX file
Upload a CycloneDX build artifact to Ketryx:
with an attached file (e.g., cyclonedx.json
) as multipart form data. This returns a JSON response of the following form:
Using the id
from the response, make another request to report a build that produced this build artifact:
Ketryx will parse the CycloneDX JSON file and create corresponding dependencies as defined within these files. It extracts crucial information about software packages, including version, license, and vulnerability information, which pertains to any vulnerabilities associated with the software packages.
Check the approval status of dependencies
To check whether all SOUP dependencies in a particular version of a project are controlled:
This returns a JSON response containing an ok
property which will be true
if all dependencies are accepted and fully approved, or false
otherwise. If ok
is false
, the error
property provides more details about what is missing.
Check the release status of a version
To check whether a version has been released in Ketryx (e.g., to block the deployment of an unreleased version to production):
This returns a JSON response containing an ok
property which will be true
if the version has been fully released in Ketryx, or false
otherwise.
Last updated