使用YouTrack Rest API将命令应用于字符串类型自定义字段
谢谢你的关注 我有一个YouTrack实例,其中有几个自定义字段,其中一些是字符串类型。我正在实现一个模块,通过YouTrack REST API创建一个新问题,然后使用用户提交的值更新其字段。大多数情况下,这很有效 我知道,通过将多个命令连接到查询字符串中,可以同时对一个问题应用多个命令,如下所示: 输入错误优先级关键添加修复版本5.1标记回归 将导致使用YouTrack Rest API将命令应用于字符串类型自定义字段,rest,youtrack,youtrack-api,Rest,Youtrack,Youtrack Api,谢谢你的关注 我有一个YouTrack实例,其中有几个自定义字段,其中一些是字符串类型。我正在实现一个模块,通过YouTrack REST API创建一个新问题,然后使用用户提交的值更新其字段。大多数情况下,这很有效 我知道,通过将多个命令连接到查询字符串中,可以同时对一个问题应用多个命令,如下所示: 输入错误优先级关键添加修复版本5.1标记回归 将导致 类型:Bug 优先事项:关键 修复版本:5.1 在各自的字段中(以及添加回归标记)。但是,如果我尝试对多个字符串类型自定义字段执行相同的操
- 类型:Bug
- 优先事项:关键
- 修复版本:5.1
- Foo:something-Example-something-Bar P0001
- 例如:
- 酒吧:
再次感谢 这是预期结果,因为
foo
之后的所有字符串都被视为此字段的值,空格也是字符串自定义字段的有效符号
如果您试图通过UI中的命令窗口应用此命令,您将实际看到相同的结果。这是预期结果,因为
foo
之后的所有字符串都被视为此字段的值,空格也是字符串自定义字段的有效符号
如果您试图通过UI中的命令窗口应用此命令,您将实际看到相同的结果。这是一个很好的问题
我遇到了同样的问题,并且在沮丧中度过了不健康的时间。
使用YouTrack UI中的命令窗口,我注意到它留下了尾随的引号,我在文档中找不到任何讨论结束或标识字符串值结尾的内容。在命令参考、语法文档或示例中,我也找不到任何关于设置字符串字段值的内容
对于我的解决方案,我将Python与请求
和urllib
模块一起使用尽管我希望你能将解决方案转换为任何语言
RESTAPI将接受POST
import requests
import urllib
from collections import OrderedDict
URL = 'http://youtrack.your.address:8000/rest/issue/{issue}/execute?'.format(issue='TEST-1234')
params = OrderedDict({
'State': 'New',
'Priority': 'Critical',
'String Field': '"Message to submit"',
'Other Details': '"Fold the toilet paper to a point when you are finished."'
})
str_cmd = ' '.join(' '.join([k, v]) for k, v in params.items())
command_url = URL + urllib.urlencode({'command':str_cmd})
result = requests.post(command_url)
# The command result:
# http://youtrack.your.address:8000/rest/issue/TEST-1234/execute?command=Priority+Critical+State+New+String+Field+%22Message+to+submit%22+Other+Details+%22Fold+the+toilet+paper+to+a+point+when+you+are+finished.%22
我很难过看到这个问题这么长时间没有得到回答希望这有帮助
编辑:
在继续我的工作后,我得出结论,发送所有字段
作为单个POST
更新对YouTrack来说稍微好一点
服务器,但需要付出更多的努力:
1) 了解问题中string
值的所有字段
2) 将所有字符串值预处理为字符串文字
3) 如果将所有字段更新作为单个请求发送,但其中只有一个丢失、设置失败或是意外值,则整个请求将失败,并且可能会丢失所有其他信息
我希望YouTrack文档中提到或讨论
这些考虑
这么好的问题
我遇到了同样的问题,并且在沮丧中度过了不健康的时间。
使用YouTrack UI中的命令窗口,我注意到它留下了尾随的引号,我在文档中找不到任何讨论结束或标识字符串值结尾的内容。在命令参考、语法文档或示例中,我也找不到任何关于设置字符串字段值的内容
对于我的解决方案,我将Python与请求
和urllib
模块一起使用尽管我希望你能将解决方案转换为任何语言
RESTAPI将接受POST
import requests
import urllib
from collections import OrderedDict
URL = 'http://youtrack.your.address:8000/rest/issue/{issue}/execute?'.format(issue='TEST-1234')
params = OrderedDict({
'State': 'New',
'Priority': 'Critical',
'String Field': '"Message to submit"',
'Other Details': '"Fold the toilet paper to a point when you are finished."'
})
str_cmd = ' '.join(' '.join([k, v]) for k, v in params.items())
command_url = URL + urllib.urlencode({'command':str_cmd})
result = requests.post(command_url)
# The command result:
# http://youtrack.your.address:8000/rest/issue/TEST-1234/execute?command=Priority+Critical+State+New+String+Field+%22Message+to+submit%22+Other+Details+%22Fold+the+toilet+paper+to+a+point+when+you+are+finished.%22
我很难过看到这个问题这么长时间没有得到回答希望这有帮助
编辑:
在继续我的工作后,我得出结论,发送所有字段
作为单个POST
更新对YouTrack来说稍微好一点
服务器,但需要付出更多的努力:
1) 了解问题中string
值的所有字段
2) 将所有字符串值预处理为字符串文字
3) 如果将所有字段更新作为单个请求发送,但其中只有一个丢失、设置失败或是意外值,则整个请求将失败,并且可能会丢失所有其他信息
我希望YouTrack文档中提到或讨论
这些考虑