description |
---|
API Reference - Projects resource |
This is an object representing your Currents project. You can retrieve the list of projects for your organization, get specific project details, and retrieve the list of runs for a project.
GET
v1/projects
Name | Type | Description |
---|---|---|
limit | 1-100 | Pagination limit 1-50. Default 10. |
starting_before | String | Pagination cursor. See pagination.md |
ending_after | String | Pagination cursor. See pagination.md |
{% tabs %} {% tab title="200: OK Project Items" %}
{
"status": "OK",
"has_more": false,
"data": [{
"projectId": "emdaGd", // project id
"name": "Hello Currents", // project name
"createdAt": "2022-01-14T16:15:18.852Z", // creation date
"inactivityTimeoutSeconds": 7200, // timeout value
"cursor": "61e1a196954ca800138aae97", // pagination cursor
"failFast": true // enable fail-fast strategy
}]
}
{% endtab %} {% endtabs %}
GET
v1/projects/:projectId
Name | Type | Description |
---|---|---|
projectId* | String | Project ID |
{% tabs %} {% tab title="200: OK " %}
{
"status": "OK",
"data": {
"projectId": "emdaGd", // project id
"name": "Hello Currents", // project name
"createdAt": "2022-01-14T16:15:18.852Z", // creation date
"inactivityTimeoutSeconds": 7200, // timeout value
"failFast": true // enable fail-fast strategy
}
}
{% endtab %} {% endtabs %}
GET
v1/projects/:projectId/runs
Name | Type | Description |
---|---|---|
projectId* | String | Project ID |
Name | Type | Description |
---|---|---|
limit | 1-50 | Pagination limit 1-50. Default 10. |
starting_before | String | Pagination cursor. See pagination.md |
ending_after | String | Pagination cursor. See pagination.md |
{% tabs %} {% tab title="200: OK " %}
{
"status": "OK",
"has_more": true,
"data": [
{
"runId": "0a91f41ed60abfab9ea509e866ba9d6d", // run id
"cursor": "62c5468c239c55bd1a1a97ce", // pagination cursor
"projectId": "bAYZ4a", // run's project ID
"createdAt": "2022-07-06T08:23:40.939Z", // creation time
"completionState": "COMPLETE", // "CANCELED" | "COMPLETE" | "IN_PROGRESS" | "TIMEOUT"
"status": "FAILED", // "FAILED" | "FAILING" | "PASSED" | "RUNNING"
"tags": ["tagA", "tagB"], // tags
"durationMs": 2443644, // run duration in ms
// timeout data
"timeout": {
"isTimeout": true, // whether the run timed out
"timeoutValueMs": 3600000 // value used for timeout
},
// cancellation data
"cancellation": {
"actor": "api-request",
"canceledAt": "2022-06-28T07:24:58.948Z",
"reason": "apiRequest"
},
// Groups progress within the run
"groups": [
{
"groupId": "regression-c64c5c2b976aa5047507cb8badc889aac7539a3b-2621389820-1",
"platform": {
"osName": "linux",
"osVersion": "Debian - 10.11",
"browserName": "Chrome",
"browserVersion": "97.0.4692.71"
},
// Instances / specs progress
"instances": {
"overall": 73,
"claimed": 73,
"complete": 73,
"passes": 62,
"failures": 11
},
// Tests progress
"tests": {
"overall": 264,
"passes": 230,
"failures": 16,
"pending": 12,
"skipped": 6,
"retries": 3,
"flaky": 3
}
}
],
"meta": {
// CI Build ID associated with the run
"ciBuildId": "regression-c64c5c2b976aa5047507cb8badc889aac7539a3b-2621389820-1",
// Git commit data for the run
"commit": {
"sha": "c64c5c2b976aa5047507cb8badc889aac7539a3b",
"branch": "feat/branch",
"authorName": "John Doe",
"authorEmail": "john@users.noreply.github.com",
"message": "Commit message",
"remoteOrigin": "https://github.com/nasa/monorepo",
"defaultBranch": null
},
// Framework details
"framework": {
"type": "pw" | "cypress" | "jest" | "postman" | "vitest",
"version": "1.52.0", // test runner version
"clientVersion": "1.12.0" // currents client version
}
}
}
]
}
{% endtab %} {% endtabs %}
GET
v1/projects/:projectId/insights
Name | Type | Description |
---|---|---|
projectId* | String | Project ID |
Name | Type | Description |
---|---|---|
date_start* | String | ISO Date format indicating the start date for the query |
date_end* | String | ISO Date format indicating the end date for the query |
resolution | 1w | 1d | Aggregation resolution. Valid values are "1w" or "1d" |
tags[] | String | List of tags for filtering the query. To provide multiple values, use tags[]=valueA&tags[]=valueB |
branches[] | String | List of branches for filtering the query. branches[]=valueA&branches[]=valueB |
{% tabs %} {% tab title="200: OK Successful Response" %}
type ResponsePayload = {
status: "OK";
data: ProjectInsights;
};
type ProjectInsights = {
projectId: string;
orgId: string;
dateStart: string; // ISO date string
dateEnd: string; // ISO date string
resolution: string[];
tags: string[];
authors: string[];
branches: string[];
results: {
overall: {
runs: RunMetric;
tests: TestMetric;
};
timeline: {
[timestamp: number]: {
runs: RunMetric;
tests: TestMetric;
};
};
};
};
type RunMetric = {
total: number; // overall # of runs for the period
cancelled: number; // # of runs for the period
timeouts: number; // # of timed-out runs for the period
completed: number; // # of completed runs for the period
failed: number; // # of failed runs for the period
passed: number; // # of passed runs for the period
avgDurationSeconds: number; // avg duration of completed runs for the period
};
type TestMetric = {
total: number; // overall # of tests for the period
failed: number; // # of failed tests for the period
passed: number; // # of passed tests for the period
pending: number; // # of pending tests for the period
skipped: number; // # of skipped tests for the period
flaky: number; // # of flaky tests for the period
};
{% endtab %} {% endtabs %}