如何通过REST API跨组织关联工作项与提交/构建?
跨组织关联工作项与提交/构建的REST API替代方案
默认的vstfs://格式ArtifactLink URL仅能解析当前组织内的资源,以下是几种可行的跨组织关联方案:
方案一:自定义工作项字段
- 在工作项类型中新增自定义URL/文本字段(比如命名为
CrossOrgCommitLink),直接存储跨组织提交/构建的完整外部访问地址(如对方Git仓库的提交详情页、构建结果页) - 优点:实现简单,无需依赖VSTS的内置解析逻辑,用户点击字段值即可直接跳转到目标资源
方案二:通用类型ArtifactLink
- 放弃使用
Fixed in Commit这类特定关联类型,改用通用型ArtifactLink,直接填写跨组织资源的完整可访问URL - 修改后的请求体示例:
{ "rel": "ArtifactLink", "url": "https://dev.azure.com/otherorg/target-proj/_git/target-repo/commit/6afcfe889c6f7858d85c93b1ed9fd0d0c8711f23", "attributes": { "authorizedDate": "2023-10-18T13:59:56.18Z", "id": 23918127, "resourceCreatedDate": "2023-10-18T13:59:56.18Z", "resourceModifiedDate": "2023-10-18T13:59:56.18Z", "revisedDate": "9999-01-01T00:00:00Z", "name": "跨组织提交关联" } }
- 说明:这种方式不会自动解析提交的详情信息,但能完整保留关联关系,用户点击URL即可访问跨组织资源
方案三:自定义中转服务
- 搭建一个中间服务,接收跨组织资源的标识参数(组织ID、项目ID、提交哈希等),返回格式化的预览信息
- 在ArtifactLink中填写中转服务的URL并携带参数,示例:
{ "rel": "ArtifactLink", "url": "https://your-middle-service.com/api/cross-org/commit?orgId=83c6cf52-c501-4095-b5a0-b1c61d1308b4&projId=fa2069dc-d5da-41cf-ac69-b90be7dface4&commitHash=6afcfe889c6f7858d85c93b1ed9fd0d0c8711f23", "attributes": { "authorizedDate": "2023-10-18T13:59:56.18Z", "id": 23918127, "resourceCreatedDate": "2023-10-18T13:59:56.18Z", "resourceModifiedDate": "2023-10-18T13:59:56.18Z", "revisedDate": "9999-01-01T00:00:00Z", "name": "跨组织提交关联" } }
- 优点:中转服务可以模拟VSTS的内置解析逻辑,展示提交的基本信息(如提交消息、作者、时间),提升用户体验
内容的提问来源于stack exchange,提问作者Jan Erik Karlsen
相关产品推荐
相关产品推荐

