Read this project's settings
const url = 'https://beta-api.plune.ai/v1/settings';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://beta-api.plune.ai/v1/settings \ --header 'Authorization: Bearer <token>'No id in the path: routes are user-scoped and the project is the implicit default. A project that has never been configured reads as an empty object, never as absent. The ETag names this version of the document: send it back as If-Match on PATCH to be refused (409) rather than overwrite a save made since.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”The settings
Everything a project owner can configure. Three keys today; the shape makes room for the next without another table.
object
Per source, what each raw status means here. The source key is any string — a team on a runner nobody wrote defaults for can still say what its statuses mean.
object
object
Sources whose discovered tests become cases WITHOUT passing through the review queue. The permission is granted to the source, not to each test: a discovered test already exists in your repository, so approving it one page at a time is a formality that costs ceil(N/200) decisions. Listing a source here answers all of them at once, and every case it creates carries trusted-source as the reason in the audit log.
The six switches of how a manual run is walked (#1253), each decided by the server when a result is written or a case opened. Absent is all off, and redirectAfterResult the next case. failOnStepFail: a failed or blocked step fails the case (ADR 0056).
object
A passed or skipped mark asks for no details: the answer to the mark says skipDetails.
Every step of THIS case marked passed makes the case passed.
A failed or blocked step makes the case failed.
The first to open (or mark) a case nobody holds in the run becomes its executor; a held case is never rewritten.
Only the assignee may mark or change the mark of a case that has one; anybody else gets 409 assignee_locked.
Where the answer to a mark sends the person.
The Bugs section (#1066, ADR 0057), written by the project owner alone (403 for a member). Off until enabled is true. Turning it off while the project has live bugs is a 409 with code: "bugs_exist" and their number in bugs (a bug in the Bin does not count); a document that leaves the key out is the section off.
object
Default false.
How a bug is closed, read by the lifecycle step (#1067): by hand, or after n green runs in a row.
object
Default manual.
Default 3.
Only the runs on this environment count.
The six switches of the proposal queue’s review policy (#1276), each decided by the server and written by the project owner alone (403 for a member). Absent keys are the defaults, which leave the queue as it was. autoMerge needs approvalsRequired of at least 1, and mandatory needs enabled; both are 400 otherwise.
object
Default true. Off, the other five are not looked at.
Default false. Every case reaches the project through the queue: a trusted source is ignored, and trusting one is refused with 409 review is mandatory….
Default true. Off, the person who put an item in the queue cannot approve it (409).
Default false. An item with all its approvals is approved by itself.
Default 0. Approvals of the item’s current revision an approval needs; fewer is a 409 naming the count.
Asked to review every new item. Must be a member who can write (400 otherwise); one who has since lost the right is skipped and named on the item (defaultReviewerSkipped).
The project’s own sub-statuses per status (#1231), the built-ins not among them. Read here; written by PUT /v1/settings/sub-statuses/{status} alone — PATCH /v1/settings keeps what is stored whatever it is sent.
object
Example
{ "statusMapping": { "junit": { "error": "broken", "skipped": "skipped" } }, "trustedDiscoverySources": [ "junit" ], "bugs": { "enabled": true, "close": { "rule": "after_n", "n": 3 } }}Headers
Section titled “Headers ”The version of the document, to send as If-Match