v4.166.0:REST API 将跨产品的关联提取为全局资源

更新时间:2023年7月10日

更新内容

  1. 将跨产品的关联提取为全局资源
  2. 优化发布资源的属性,开放发布的分类和分组资源
  3. 支持获取项目进度
  4. 工时资源开放创建时间属性

将跨产品的关联提取为全局资源

新增了一个全局资源“关联”,提供了两个API:

获取一个跨产品的关联
GET /v1/relations/{relation_id}
删除一个跨产品的关联
DELETE /v1/relations/{relation_id}

对应的“关联”资源是:

{
    "id": "fa1125cb06305edca524cad2",
    "url": "https://rest_api_root/v1/relations/fa1125cb06305edca524cad2",
    "principal_type": "test_plan",
    "principal": {
        "id": "5eb6a70571487623fea47000",
        "url": "https://rest_api_root/v1/testhub/libraries/5eb623f6a70571487ea47000/plans/5eb6a70571487623fea47000",
        "name": "测试计划",
        "status": "in_progress",
        "start_at": 1589791860,
        "end_at": 1589791870
    },
    "target_type": "work_item",
    "target": {
        "id": "5edca524cad2fa1125cb0630",
        "url": "https://rest_api_root/v1/project/work_items/5edca524cad2fa1125cb0630",
        "identifier": "SCR-5",
        "type": "bug",
        "title": "这是一个缺陷",
        "start_at": 1583290309,
        "end_at": 1583290347,
        "parent_id": "5edca524cad2fa112b06105c"
    }
}

其中 principal 表示关联的主体,target 表示被关联的主体。principal_type 和 target_type 分别表示它们的类型,比如 work_item 表示工作项、test_plan 表示测试计划、test_case 表示测试用例等,您可以根据 type 来识别 principle 和 target。

另外,因为跨产品关联的变化,新增下列 API 覆盖原来的场景:

原 API 不再文档中显示,但是它们将被继续支持一段时间

获取测试计划关联缺陷列表
GET /v1/testhub/plans/{plan_id}/bug_relations // 返回全局关联资源

创建一个执行用例关联缺陷
POST /v1/testhub/runs/{run_id}/bug_relations // 创建全局关联资源
获取执行用例关联缺陷列表
GET /v1/testhub/runs/{run_id}/bug_relations // 返回全局关联资源

测试用例关联故事、测试用例关联缺陷 -> 测试用例关联工作项
创建一个测试用例关联工作项
POST /v1/testhub/cases/{case_id}/work_item_relations
批量创建测试用例关联工作项
POST /v1/testhub/cases/{case_id}/work_item_relations/bulk
获取测试用例关联工作项列表
GET /v1/testhub/cases/{case_id}/work_item_relations
批量删除测试用例关联工作项
DELETE /v1/testhub/cases/{case_id}/work_item_relations/bulk

优化发布资源的属性,开放发布的分类和分组资源

优化发布资源的属性,新增了进度属性(progress),扩展了所有阶段属性(stages),新增了分类属性(categories):

{
    ……
    "progress": 0,
    "operate_at": 1565255712,
    "stage": {
        "id": "5f44a8f8bb347b14b49624a1",
        "url": "https://rest_api_root/v1/project/stages/5f44a8f8bb347b14b49624a1",
        "name": "未开始",
        "type": "pending",
        "color": "#FA8888"
    },
    "stages": [
        {
            "id": "5f44a8f8bb347b14b49624a1",
            "url": "https://rest_api_root/v1/project/stages/5f44a8f8bb347b14b49624a1",
            "name": "未开始",
            "operate_at": 1565255712
        },
        {
            "id": "5f44a8f8bb347b14b49624a2",
            "url": "https://rest_api_root/v1/project/stages/5f44a8f8bb347b14b49624a2",
            "name": "进行中",
            "operate_at": null
        },
        {
            "id": "5f44a8f8bb347b14b49624a3",
            "url": "https://rest_api_root/v1/project/stages/5f44a8f8bb347b14b49624a3",
            "name": "已发布",
            "operate_at": 1565255879
        }
    ],
    "categories": [
        {
            "id": "676a460a0fd987b7ea320889",
            "url": "https://rest_api_root/v1/project/projects/5eb623f6a70571487ea47000/version_categories/676a460a0fd987b7ea320889",
            "name": "私有部署发布"
        }
    ],
    ……
}

开放了发布的分类和分组资源:

创建一个发布分组
POST /v1/project/projects/{project_id}/version_sections
部分更新一个发布分组
PATCH /v1/project/projects/{project_id}/version_sections/{section_id}
获取一个发布分组
GET /v1/project/projects/{project_id}/version_sections/{section_id}
获取发布分组列表
GET /v1/project/projects/{project_id}/version_sections
删除一个发布分组
DELETE /v1/project/projects/{project_id}/version_sections/{section_id}

创建一个发布类别
POST /v1/project/projects/{project_id}/version_categories
部分更新一个发布类别
PATCH /v1/project/projects/{project_id}/version_categories/{version_category_id}
获取一个发布类别
GET /v1/project/projects/{project_id}/version_categories/{version_category_id}
获取发布类别列表
GET /v1/project/projects/{project_id}/version_categories
删除一个发布类别
DELETE /v1/project/projects/{project_id}/version_categories/{version_category_id}

支持获取项目进度

在项目资源下,新增了一个API,用来获取当前项目的进度:

获取一个项目的进度
GET /v1/project/projects/{project_id}/progress
{
    "work_item": {
        "total": 4,
        "pending_count": 1,
        "in_progress_count": 2,
        "completed_count": 1
    }
}

工时资源开放创建时间属性

工时资源开放了创建时间属性,便于您的系统知晓该工时的实际创建时间:

{
    ……
    "created_at": 1593290347,
    ……
}

另外,我们还修复了若干已知缺陷,更多修改欢迎直接查看 REST API 官方文档