localFolder: folder or file on the local file system
'codeRepo' short 'nickname' of code repository system. If 'codeRepo' is omitted, user's default is used.
Register folder with code repository, if not already registered.
Commit code.
Create metadata in Synapse, if not already created.
ID of the object created in Synapse
Note: Code version is not recorded.
ID of the object in Synapse
Checks out code from code repository, if not already checked out. Otherwise, updates local copy from code repository.
"Sources" code into R session.
nothing
TODO: What if not all steps are successful?
ID of the object in Synapse
Delete from the code repository.
Delete metadata from Synapse.
Nothing.
TODO: What if not all steps are successful?
These manipulation only the metadata, stored in Synapse.
Note: It is assumed that code versions are represented by refererences.
POST https://repo-staging.sagebase.org/repo/v1/code {"parentId":"1234", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"} |
Note: "parentId" is the ID of a Synapse Project; "codeRepoId" is the ID of a Code Repository object.
Successful Response:
HTTP/1.1 201 Created {"id":"8901", "parentId":"1234", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"} |
GET https://repo-staging.sagebase.org/repo/v1/code/8901 |
Successful Response:
HTTP/1.1 200 OK {"id":"8901", "parentId":"1234", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"} |
PUT https://repo-staging.sagebase.org/repo/v1/code/8901 {"id":"8901", "parentId":"5432", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"} |
Successful Response:
HTTP/1.1 200 OK {"id":"8901", "parentId":"5432", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"} |
DELETE https://repo-staging.sagebase.org/repo/v1/code/8901 |
Successful Response:
HTTP/1.1 204 No Content |
POST https://repo-staging.sagebase.org/repo/v1/codeRepo {"codeRepoType":"svn", "nickname":"sageSvn", "codeRepoURL":"https://sagebionetworks.jira.com/svn"} |
Successful Response:
HTTP/1.1 201 Created {id:"9876", "codeRepoType":"svn", "codeRepoURL":https://sagebionetworks.jira.com/svn} |
TODO: Error response if 'nickname' is already used.
TODO: GET, PUT, DELETE
POST https://repo-staging.sagebase.org/repo/v1/codeRepoCredentials {"codeRepoId:"9876", "username":"foo": "password":"bar"} |
Note: This request must be authenticated and the credentials are created for the authenticated user. The given "username" need not be the same as the user's Synapse username.
Successful Response:
HTTP/1.1 201 Created {"id":"5432", "codeRepoId:"9876", "username":"foo": "password":"bar"} |
TODO: Should the password be 'echoed'?
TODO: GET, PUT, DELETE