Changes : API controller providing a service for changes

From P4 Code Review 2022.2, P4 Code Review no longer supports APIs older than v9.

Get projects and branches affected by a given change id

Summary

Get projects, and branches, affected by a given change id.

GET /api/v9/changes/{change}/affectsprojects

Description

All authenticated users are able to use this API.

  • Private projects: when a project is made private, only the project owners, moderators, and members, plus users with super-level privileges in the P4 Server, can see the project, its activity streams, and ongoing reviews. API responses honor these private project restrictions. For more information about private project restrictions, see Private projects.
  • Permissions: if a public review contains files that the user does not have permission to view, the review is returned but the restricted files are not displayed.

Example response

Successful Response:

HTTP/1.1 200 OK

{
    "change": {
        "id":"1050",
        "projects": {
            "jam": [
                "live",
                "main"
            ]
        }
    }
}

Get default reviewers for a given change id

Summary

Get default reviewers for a given change id.

GET /api/v9/changes/{change}/defaultreviewers

Description

All authenticated users are able to use this API.

  • Private projects: when a project is made private, only the project owners, moderators, and members, plus users with super-level privileges in the P4 Server, can see the project, its activity streams, and ongoing reviews. API responses honor these private project restrictions. For more information about private project restrictions, see Private projects.
  • Permissions: if a public review contains files that the user does not have permission to view, the review is returned but the restricted files are not displayed.

Example response

Successful Response:

HTTP/1.1 200 OK

{
"change": {
    "id": "1050",
    "defaultReviewers": {
        "groups": {
            "group1": {"required": "1"},
            "group2": {}
        },
        "users": {
            "user1": {},
            "user2": {"required": "true"}
        }
    }
}
}

Perform checks on a change if enabled

Summary

Performs checks on the change if enabled

GET /api/v9/changes/{id}/check

Description

Performs checks on the change if workflow configuration requires it.

  • Private projects: when a project is made private, only the project owners, moderators, and members, plus users with super-level privileges in the P4 Server, can see the project, its activity streams, and ongoing reviews. API responses honor these private project restrictions. For more information about private project restrictions, see Private projects.
  • Permissions: if a public review contains files that the user does not have permission to view, the review is returned but the restricted files are not displayed.

Parameters

Parameter Description Type Parameter Type Required

id

Change to check

string

form

Yes

type

The type of check. Must have a value of enforced, strict or shelve

string

form

Yes

Example response

Successful Response:

HTTP/1.1 200 OK

{
  "status":   "OK",
  "isValid":  "true",
  "messages": []
}

Examples of usage

Carry out enforced checks on a change if configured

To check change 42:

curl -u "username:password" "https://my-swarm-host/api/v9/changes/42/check?type=enforced"

JSON Response:

HTTP/1.1 200 OK

{
  "status":   "OK",
  "isValid":  "true",
  "messages": []
}

Carry out enforced checks on a change if configured. Example of a failed 'requires review'

To check change 42:

curl -u "username:password" "https://my-swarm-host/api/v9/changes/42/check?type=enforced"

JSON Response:

HTTP/1.1 200 OK

{
  "status":   "NO_REVIEW",
  "isValid":  "false",
  "messages": ["Change [42] must be associated with a review"]
}

Carry out strict checks on a change if configured

To check change 42:

curl -u "username:password" "https://my-swarm-host/api/v9/changes/42/check?type=strict"

JSON Response:

HTTP/1.1 200 OK

{
  "status":   "OK",
  "isValid":  "true",
  "messages": []
}