SubmitShelf(project, change ID) === Helix Sync Changes Many operations for Helix Sync are related to manipulating changelists in order to share state across devices. [[get_helix_sync_v1_project_last_change]] ==== `GET /helix-sync/v1/[project]/last-change` Return the latest change number available for a project. This method can have multiple implementations. To use a "Helix Versioning Engine Project" as defined in <<appendix_hve_project_json>>, you will need to ensure the `HVE_PROJECT_PATH` is set. This can be set on a request, or on the system as a whole. ===== Request URL Path Parameters [cols="2*", options="header"] |=== | Parameter | Description | `project` | The project ID, see <<appendix_project_json>> |=== ===== Request URL Query Parameters [cols="3*", options="header"] |=== | Parameter | Required? | Description | `default` | No | If set, we will return this value instead of issuing a 404 reply in place of the nonexisting changelist number. |=== ===== Request Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Authorization` | See <<authentication>> | `Accept` | `application/json` | `Content-Type` | `application/json` | `X-Perforce-Helix_Web_Services-*` | See <<per_request_configuration>> |=== ===== Response Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Content-Type` | `application/json` |=== ===== Response Body JSON See <<error_responses>> for the format of failures. The response of this method is a single JSON object with a single property, called `change`, which indicates the latest changelist number. [[get_helix_sync_v1_project_pending]] ==== `GET /helix-sync/v1/[project]/pending` Returns the pending changelist to be used as the primary shelf for this project for the authenticated user. If such a changelist does not exist, you can use <<post_helix_sync_v1_changes_project>> to create one. By default, will return a 404 (not found) if such a changelist does not exist. If you have set a `default` value via the URL request query parameter, that value will be returned instead, and you should receive an HTTP 200 status. This method can have multiple implementations. To use a "Helix Versioning Engine Project" as defined in <<appendix_hve_project_json>>, you will need to ensure the `HVE_PROJECT_PATH` is set. This can be set on a request, or on the system as a whole. ===== Request URL Path Parameters [cols="2*", options="header"] |=== | Parameter | Description | `project` | The project ID, see <<appendix_project_json>> |=== ===== Request URL Query Parameters [cols="3*", options="header"] |=== | Parameter | Required? | Description | `default` | No | If set, we will return this value instead of issuing a 404 reply in place of the nonexisting changelist number. |=== ===== Request Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Authorization` | See <<authentication>> | `Accept` | `application/json` | `Content-Type` | `application/json` | `X-Perforce-Helix_Web_Services-*` | See <<per_request_configuration>> |=== ===== Response Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Content-Type` | `application/json` |=== ===== Response Body JSON See <<error_responses>> for the format of failures. The response of this method is a single JSON object with a single property, called `change`, which indicates the latest changelist number. In the case no change exists, there will be no response body, and a 404 response code will be returned instead. [[delete_helix_sync_v1_project_pending]] ==== `DELETE /helix-sync/v1/:project_id/pending` Deletes the pending changelist for project. ===== Request URL Path Parameters [cols="2*", options="header"] |=== | Parameter | Description | `project` | The project ID, see <<appendix_project_json>> |=== ===== Request Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Authorization` | See <<authentication>> | `Accept` | `application/json` | `Content-Type` | `application/json` | `X-Perforce-Helix_Web_Services-*` | See <<per_request_configuration>> |=== ===== Response Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Content-Type` | `application/json` |=== ===== Response Body JSON See <<error_responses>> for the format of failures. [[get_helix_sync_v1_project_preview]] ==== `GET /helix-sync/v1/[project]/preview` Generates the "resolve plan" for what the Helix Sync method would implement for the method <<post_helix_sync_v1_changes_project_pending>>. The resolve plan is an array of resolution tasks to handle. ===== Request URL Path Parameters [cols="2*", options="header"] |=== | Parameter | Description | `project` | The project ID, see <<appendix_project_json>> |=== ===== Request Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Authorization` | See <<authentication>> | `Accept` | `application/json` | `Content-Type` | `application/json` | `X-Perforce-Helix_Web_Services-*` | See <<per_request_configuration>> |=== ===== Response Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Content-Type` | `application/json` |=== ===== Response Body JSON See <<error_responses>> for the format of failures. WARNING: The details of the resolve plan JSON are not yet finalized. [[post_helix_sync_v1_project_submit]] ==== `POST /helix-sync/v1/[project]/submit` Requests to submit the particular pending changelist for the project. It's assumed that what you want to submit has been shelved, and no open files remain on your local clients. There is no response body when this method succeeds, only in failure. This method can have multiple implementations. To use a "Helix Versioning Engine Project" as defined in <<appendix_hve_project_json>>, you will need to ensure the `HVE_PROJECT_PATH` is set. This can be set on a request, or on the system as a whole. This implementation only runs a submit -e on the pending changelist. No resolution is currently performed. ===== Request URL Path Parameters [cols="2*", options="header"] |=== | Parameter | Description | `project` | The project ID, see <<appendix_project_json>> |=== ===== Request Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Authorization` | See <<authentication>> | `Accept` | `application/json` | `Content-Type` | `application/json` | `X-Perforce-Helix_Web_Services-*` | See <<per_request_configuration>> |=== ===== Response Headers [cols="2*", options="header"] |=== | Header Name | Notes | `Content-Type` | `application/json` |=== ===== Response Body JSON See <<error_responses>> for the format of failures.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#4 | 16114 | Doug Scheirer | Merge from main | ||
#3 | 16014 | Doug Scheirer | Merge down from main | ||
#2 | 15845 | Doug Scheirer | Integ from main | ||
#1 | 15688 | Doug Scheirer |
Populate -o //guest/perforce_software/helix-web-services/... //guest/doug_scheirer/helix-web-services/.... |
||
//guest/perforce_software/helix-web-services/main/source/doc/helix_sync/changes.asc | |||||
#1 | 15622 | tjuricek |
Move source code to 'source/' subdirectory of branch. build/ will remain where it is. |
||
//guest/perforce_software/helix-web-services/main/doc/helix_sync/changes.asc | |||||
#5 | 15517 | tjuricek | Do not require changelist ID for submitting Helix Sync pending changelists. | ||
#4 | 15499 | tjuricek | Naive implementation of helix sync project submit for "helix versioning engine projects". | ||
#3 | 15496 | tjuricek |
Revise GET /helix_sync/v1/changes/[project] to /helix_sync/v1/changes/[project]/pending The base method is really intended for the latest changelist number. Meh. |
||
#2 | 15487 | tjuricek | Add basic ability to create pending changelists for helix sync projects. | ||
#1 | 15435 | tjuricek |
Add proposed HTTP methods for Helix Sync. It's a little unclear to me why you would need a local root directory to create the shared shelving changelist for a particular project (and user). So I didn't add that. |