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_changes_project]] ==== `GET /helix_sync/v1/changes/[project]` 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 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. [[post_helix_sync_v1_changes_project]] ==== `POST /helix_sync/v1/changes/[project]` Request to create a changelist for the user and [project] to be used as a shared shelf amongst devices. This is a no-op if no such changelist currently exists, and the existing change will be returned. 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 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_changes_project_pending]] ==== `GET /helix_sync/v1/changes/[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. Will return a 404 (not found) if such a changelist does not exist. 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 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. [[post_helix_sync_v1_changes_project_pending]] ==== `POST /helix_sync/v1/changes/[project]/pending` 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 | |
---|---|---|---|---|---|
#1 | 15741 | ptomiak | Branch HWS for my use. | ||
//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. |