Phabricator Conduit API是什么?能详细介绍一下吗?

2026-04-11 06:112阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1237个文字,预计阅读时间需要5分钟。

Phabricator Conduit API是什么?能详细介绍一下吗?

在Phabricator页面,可以轻松创建和编辑Project、Task等操作。若想实现外部系统自主操作Phabricator,则需要调用Phabricator+Conduit API,实现相应的创建和编辑Project、Task等操作。

在Phabricator页面,可以完成创建和编辑Project、Task等操作。但是如果想实现外部系统可以自主操作Phabricator,那么就需要调用Phabricator Conduit API,实现相应的创建和编辑Project、Task等操作。

创建Token

调用Phabricator Conduit API,需要token认证。点击右上角的用户头像,Settings - Conduit API Tokens - Generate Token,完成后会显示token信息。

Conduit API接口

进入Phabricator首页,选择More Applications,找到Developer Tools部分, 点击Conduit,在Modern Methods 标签下,可以看到所有Conduit API接口方法。

点击进入任意一个API接口,发现关于接口的说明分为三个部分:一是接口的概要介绍和相关参数的说明;二是接口的调用方法,通过填写相应的参数,并执行Call Methos,会真实调用该API接口,并返回API方法的执行结果;三是把API接口调用方法的内容转化为CURL或PHP方式的实例。

Conduit API 示例

Phabricator中的Project包含多个Column,每个Column包含多个Task,每个Task下可以包含多条Comment。下面使用curl命令行实例介绍相关API如何使用。

Project API
  • 创建

其中name是必选的,描述信息、图表icon、成员信息可选。

curl HOSTNAME:PORT/api/project.edit \ -d api.token=api-token \ -d transactions[name][type]=name \ -d transactions[name][value]=testProject

  • 修改

需要指定project的phid编辑已创建的project。

curl HOSTNAME:PORT/api/project.edit \ -d api.token=api-token \ -d transactions[name][type]=name \ -d transactions[name][value]=testNewProject \ -d objectIdentifier=PHID-PROJ-qbht7j3eqmmqlkj2yae6

  • 查询

可以通过queryKey过滤出结果,也可以自定义查询限制,并对结果排序等。

curl HOSTNAME:PORT/api/project.search \ -d api.token=api-token \ -d queryKey=all Column API

官网上只找到Column的查询API,未找到创建和修改的API,因此需要在页面创建和修改Column。

  • 查询

可以通过queryKey过滤出结果,也可以自定义查询限制,并对结果排序等。通过指定project phid可以查询该project的column。

Phabricator Conduit API是什么?能详细介绍一下吗?

curl HOSTNAME:PORT/api/project.column.search \ -d api.token=api-token \ -d constraints[projects][0]=PHID-PROJ-qbht7j3eqmmqlkj2yae6

执行结果:

{ "data": [ { "id": 15, "type": "PCOL", "phid": "PHID-PCOL-qsyhs6ubci6cgyd7f6ne", "fields": { "name": "testColumn", "proxyPHID": null, "project": { "id": 5, "phid": "PHID-PROJ-qbht7j3eqmmqlkj2yae6", "name": "testNewProject" }, "dateCreated": 1657790074, "dateModified": 1657790092, "policy": { "view": "users", "edit": "users" } } } ] ... } Task API

  • 创建

支持多种类型的操作,包括:添加父task,添加子task、添加comment等。需要指定project和column的phid,从而确定在哪个project的哪个column下创建task。

curl HOSTNAME:PORT/api/maniphest.edit \ -d api.token=api-token \ -d transactions[title][type]=title \ -d transactions[title][value]=title-test \ -d transactions[description][type]=description \ -d transactions[description][value]=description-test \ -d transactions[column][type]=column \ -d transactions[column][value][0]=PHID-PCOL-5bsishzsn6bj4egkbkup \ -d transactions[projects.set][type]=projects.set \ -d transactions[projects.set][value][0]=PHID-PROJ-zrz7gbb3lxqji3fnqv6k

执行结果:

{ "result":{ "object":{ "id":293, "phid":"PHID-TASK-upumxxdvq7ah7ery2xab" }, "transactions":[ { "phid":"PHID-XACT-TASK-g5hfx6ogfn3xj3x" }, ... ] }, "error_code":null, "error_info":null }

  • 修改

通过指定task phid来确定修改哪个task。

curl HOSTNAME:PORT/api/maniphest.edit \ -d api.token=api-token \ -d transactions[title][type]=title \ -d transactions[title][value]=new-title-test \ -d transactions[description][type]=description \ -d transactions[description][value]=new-description-test \ -d objectIdentifier=PHID-TASK-upumxxdvq7ah7ery2xab

通过页面查看修改后的task。

  • 查询

可以通过queryKey过滤出结果,也可以自定义查询限制,并对结果排序等。下面实例为查询某个column下的task。

curl HOSTNAME:PORT/api/maniphest.search \ -d api.token=api-token \ -d queryKey=all \ -d constraints[statuses][0]=open \ -d constraints[statuses][1]=closed \ -d constraints[columnPHIDs][0]=PHID-PCOL-qsyhs6ubci6cgyd7f6ne

执行结果:

{ "result":{ "data":[ { "id":293, "type":"TASK", "phid":"PHID-TASK-upumxxdvq7ah7ery2xab", "fields":{ "name":"new-title-test", "description":{ "raw":"new-description-test" }, "authorPHID":"PHID-USER-6sfzp4rmpmuqbt5y5mtp", "ownerPHID":null, "status":{ "value":"open", "name":"Open", "color":null }, "priority":{ "value":90, "name":"Needs Triage", "color":"violet" } ... } } ] }, "error_code":null, "error_info":null } Comment API

官网上只找到Comment的创建API,未找到查询和修改的API,因此可以在页面查询和修改Comment。

  • 创建

comment API方法和task一样,均为maniphest.edit。需要指定task的phid,从而确定为哪个task添加comment。

curl HOSTNAME:PORT/api/maniphest.edit \ -d api.token=api-token \ -d transactions[comment][type]=comment \ -d transactions[comment][value]=comment-test \ -d objectIdentifier=PHID-TASK-upumxxdvq7ah7ery2xab

执行结果:

{ "result":{ "object":{ "id":293, "phid":"PHID-TASK-upumxxdvq7ah7ery2xab" }, "transactions":[ { "phid":"PHID-XACT-TASK-uqhri2bc6e3356n" } ] }, "error_code":null, "error_info":null } 总结

本文主要介绍了如何通过Phabricator Conduit API创建、修改、查询Project、Column、Task、Comment。其它系统通过调用Conduit API,可以非常方便地实现自动化操作Phabricator。

参考资料
  1. Phabricator Conduit API官网文档

  2. Phabricator 的 conduit API 使用说明

本文共计1237个文字,预计阅读时间需要5分钟。

Phabricator Conduit API是什么?能详细介绍一下吗?

在Phabricator页面,可以轻松创建和编辑Project、Task等操作。若想实现外部系统自主操作Phabricator,则需要调用Phabricator+Conduit API,实现相应的创建和编辑Project、Task等操作。

在Phabricator页面,可以完成创建和编辑Project、Task等操作。但是如果想实现外部系统可以自主操作Phabricator,那么就需要调用Phabricator Conduit API,实现相应的创建和编辑Project、Task等操作。

创建Token

调用Phabricator Conduit API,需要token认证。点击右上角的用户头像,Settings - Conduit API Tokens - Generate Token,完成后会显示token信息。

Conduit API接口

进入Phabricator首页,选择More Applications,找到Developer Tools部分, 点击Conduit,在Modern Methods 标签下,可以看到所有Conduit API接口方法。

点击进入任意一个API接口,发现关于接口的说明分为三个部分:一是接口的概要介绍和相关参数的说明;二是接口的调用方法,通过填写相应的参数,并执行Call Methos,会真实调用该API接口,并返回API方法的执行结果;三是把API接口调用方法的内容转化为CURL或PHP方式的实例。

Conduit API 示例

Phabricator中的Project包含多个Column,每个Column包含多个Task,每个Task下可以包含多条Comment。下面使用curl命令行实例介绍相关API如何使用。

Project API
  • 创建

其中name是必选的,描述信息、图表icon、成员信息可选。

curl HOSTNAME:PORT/api/project.edit \ -d api.token=api-token \ -d transactions[name][type]=name \ -d transactions[name][value]=testProject

  • 修改

需要指定project的phid编辑已创建的project。

curl HOSTNAME:PORT/api/project.edit \ -d api.token=api-token \ -d transactions[name][type]=name \ -d transactions[name][value]=testNewProject \ -d objectIdentifier=PHID-PROJ-qbht7j3eqmmqlkj2yae6

  • 查询

可以通过queryKey过滤出结果,也可以自定义查询限制,并对结果排序等。

curl HOSTNAME:PORT/api/project.search \ -d api.token=api-token \ -d queryKey=all Column API

官网上只找到Column的查询API,未找到创建和修改的API,因此需要在页面创建和修改Column。

  • 查询

可以通过queryKey过滤出结果,也可以自定义查询限制,并对结果排序等。通过指定project phid可以查询该project的column。

Phabricator Conduit API是什么?能详细介绍一下吗?

curl HOSTNAME:PORT/api/project.column.search \ -d api.token=api-token \ -d constraints[projects][0]=PHID-PROJ-qbht7j3eqmmqlkj2yae6

执行结果:

{ "data": [ { "id": 15, "type": "PCOL", "phid": "PHID-PCOL-qsyhs6ubci6cgyd7f6ne", "fields": { "name": "testColumn", "proxyPHID": null, "project": { "id": 5, "phid": "PHID-PROJ-qbht7j3eqmmqlkj2yae6", "name": "testNewProject" }, "dateCreated": 1657790074, "dateModified": 1657790092, "policy": { "view": "users", "edit": "users" } } } ] ... } Task API

  • 创建

支持多种类型的操作,包括:添加父task,添加子task、添加comment等。需要指定project和column的phid,从而确定在哪个project的哪个column下创建task。

curl HOSTNAME:PORT/api/maniphest.edit \ -d api.token=api-token \ -d transactions[title][type]=title \ -d transactions[title][value]=title-test \ -d transactions[description][type]=description \ -d transactions[description][value]=description-test \ -d transactions[column][type]=column \ -d transactions[column][value][0]=PHID-PCOL-5bsishzsn6bj4egkbkup \ -d transactions[projects.set][type]=projects.set \ -d transactions[projects.set][value][0]=PHID-PROJ-zrz7gbb3lxqji3fnqv6k

执行结果:

{ "result":{ "object":{ "id":293, "phid":"PHID-TASK-upumxxdvq7ah7ery2xab" }, "transactions":[ { "phid":"PHID-XACT-TASK-g5hfx6ogfn3xj3x" }, ... ] }, "error_code":null, "error_info":null }

  • 修改

通过指定task phid来确定修改哪个task。

curl HOSTNAME:PORT/api/maniphest.edit \ -d api.token=api-token \ -d transactions[title][type]=title \ -d transactions[title][value]=new-title-test \ -d transactions[description][type]=description \ -d transactions[description][value]=new-description-test \ -d objectIdentifier=PHID-TASK-upumxxdvq7ah7ery2xab

通过页面查看修改后的task。

  • 查询

可以通过queryKey过滤出结果,也可以自定义查询限制,并对结果排序等。下面实例为查询某个column下的task。

curl HOSTNAME:PORT/api/maniphest.search \ -d api.token=api-token \ -d queryKey=all \ -d constraints[statuses][0]=open \ -d constraints[statuses][1]=closed \ -d constraints[columnPHIDs][0]=PHID-PCOL-qsyhs6ubci6cgyd7f6ne

执行结果:

{ "result":{ "data":[ { "id":293, "type":"TASK", "phid":"PHID-TASK-upumxxdvq7ah7ery2xab", "fields":{ "name":"new-title-test", "description":{ "raw":"new-description-test" }, "authorPHID":"PHID-USER-6sfzp4rmpmuqbt5y5mtp", "ownerPHID":null, "status":{ "value":"open", "name":"Open", "color":null }, "priority":{ "value":90, "name":"Needs Triage", "color":"violet" } ... } } ] }, "error_code":null, "error_info":null } Comment API

官网上只找到Comment的创建API,未找到查询和修改的API,因此可以在页面查询和修改Comment。

  • 创建

comment API方法和task一样,均为maniphest.edit。需要指定task的phid,从而确定为哪个task添加comment。

curl HOSTNAME:PORT/api/maniphest.edit \ -d api.token=api-token \ -d transactions[comment][type]=comment \ -d transactions[comment][value]=comment-test \ -d objectIdentifier=PHID-TASK-upumxxdvq7ah7ery2xab

执行结果:

{ "result":{ "object":{ "id":293, "phid":"PHID-TASK-upumxxdvq7ah7ery2xab" }, "transactions":[ { "phid":"PHID-XACT-TASK-uqhri2bc6e3356n" } ] }, "error_code":null, "error_info":null } 总结

本文主要介绍了如何通过Phabricator Conduit API创建、修改、查询Project、Column、Task、Comment。其它系统通过调用Conduit API,可以非常方便地实现自动化操作Phabricator。

参考资料
  1. Phabricator Conduit API官网文档

  2. Phabricator 的 conduit API 使用说明