Uploading custom data to the API
Upload metrics data by using an external client to access API endpoints.
Uploading data to the API
HCL™ Accelerate provides numerous plug-ins that you can use to integrate data into your releases and values streams. If a plug-in is not available for your environment, or if you prefer to manage your own data integration, you can use an external client to upload data to REST API endpoints or GraphQL™. A tutorial that describes how to upload custom metrics is available.
The following examples use the Curl command line tool for typical POST use cases. You authorize requests with user access keys that you create in HCL™ Accelerate.
You can find GraphQL at
https://my_velocity:port/release-events-api/graphiql
.
Normalized metrics example
The following example provides a Curl POST request that sends metrics data to the
https://my_velocity:port/api/v1/metrics
endpoint.
curl -k -request POST \
-url https://my_velocity:port/api/v1/metrics \
-H "content-type: application/json" \
-H "Authorization: UserAccessKey my_access_key" \
--data '{
"tenantId": "my_tenant_ID",
"dataSet": "Homegrown",
"record": {
"metricDefinitionId": "Unit Tests",
"recordName": "UT on ABC",
"pluginType": "plugin",
"executionDate": "2019-05-01T21:09:00.000Z",
"dataFormat": "custom",
"value":
{ "passed": 38, "failed": 1 }
},
"application":
{ "name": "my-app" }
}'
Metrics file upload example
The following example provides a Curl POST request that uploads a file at the
https://my_velocity:port/api/v1/upload
endpoint:
curl --request POST \
--url https://my_velocity:port/api/v1/metrics/upload \
-H "Authorization: UserAccessKey my_access_key" \
-F file=@junit.xml \
-F 'payload={
"tenantId": "my_tenant_ID",
"dataSet": "Feb",
"application":
{ "name": "my App22" }
,
"environment": "Prod",
"record":
{ "metricDefinitionId": "Functional Tests", "pluginType": "junitXML", "dataFormat": "junitXML" }
}
' \
-k
Deployment data example
The following example provides a Curl POST request that sends Jenkins deployment data to the
https://my_velocity:port/api/v1/deployments
endpoint:
curl --request POST \
-H "Authorization: UserAccessKey my_access_key" \
-H 'content-type: application/json' \
-k --url https://my_velocity:port/api/v1/deployments \
--data '{
"id_external": 8888,
"tenant_id": "my_tenant_ID",
"version_name": "1.2.3",
"version_id_external": "V1.2.3",
"result": "Succeeded",
"description" : "Application API Release Failed",
"by_user": "username",
"application":
{ "name": "cool-Jenkins-App" }
,
"start_time": "2019-02-02 00:10:58.856+00:00",
"end_time": "2019-02-02 00:12:58.856+00:00",
"type": "Jenkins",
"environment_id": "my_environmant_ID",
"environment_name": "QA"
}'
Build data example
The following example provides a Curl POST request that sends build data to the
https://my_velocity:port/api/v1/builds
endpoint:
curl -k --request POST \
--url https://my_velocity/api/v1/builds \
-H "content-type: application/json" \
-H "Authorization: UserAccessKey my_access_key" \
--data '{
"id": "131",
"source": "Jenkins",
"tenantId": "my_tenant_ID",
"name": "IBM Build",
"status": "failure",
"application":
{ "name": "Velocity SE" }
,
"url": "https:/12.34.20.45/job/VSE/master/5",
"number": 5,
"labels": ["Everything"],
"startTime": "2019-03-14 20:10:58.856+00:00",
"endTime": "2019-03-14 20:10:58.856+00:00",
"requestor": "admin"
}'