通过SOAP API和PHP创建JIRA问题

时间:2012-08-29 13:59:21

标签: php soap jira

我无法通过PHP中的SOAP API创建问题。我试过这个:

$soapClient = new SoapClient("http://jira:9090/rpc/soap/jirasoapservice-v2?wsdl");
$token = $soapClient->login('user', 'pass');
$issue=array(
    'type'=>3,
    'priority'=>3,
    'project'=>'XXX',
    'duedate'=>time(),
    'components'=>'',
    'versions'=>'',
    'fixVersions'=>'',
    'assignee'=>'user1',
    'reporter'=>'user1',
    'environment'=>'',
    'description'=>'test',
    'summary'=>'test',
    'timetracking'=>'',
    'attachment'=>'',
    'labels'=>''
);
$soapClient->createIssue($token, $issue);

但是当我运行此脚本时,新问题不会在JIRA中创建。有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

确保:

  • 项目名称正确
  • 问题类型编号3存在且包含所有这些字段
  • user1(来自问题字段)有权成为此项目的受让人和记者(尝试手动执行)
  • user(来自身份验证)有权在此项目中创建新问题(与用户手动登录并尝试创建问题)

duedate'=>time()对我来说很好。实际上,我接受了你的代码,改变了项目,记者和助手的名字,它在Jira 4.4.4下为我工作。

奇怪的是,如果出现问题,您认为会出现错误,您是如何尝试执行php文件的?尝试手动运行它以检查错误。为此,使用以下标题创建一个PHP文件:

#!/usr/bin/php

为其提供运行权限chmod +x myscript.php并执行./myscript.php。如果您从Web服务器运行它,请检查/var/log/httpd/error_log是否有错误。确保安装了SOAP:

[root@localhost]# cat /etc/php.d/soap.ini
; Enable soap extension module
extension=soap.so

如果您发现任何错误,请更新问题。

答案 1 :(得分:0)

您的问题查询必须是对象

$issueQuery = new stdClass;

您的所有字段都必须在数组中

$customFields = array();

您的自定义字段必须是对象

$fieldOBJ = new stdClass;
$fieldOBJ->customfieldId = 'customfield_10237';
$fieldOBJ->key = '';
$fieldOBJ->values = array(utf8_encode($value));

将其添加到数组

$customFields[] = $fieldOBJ;

将自定义字段添加到问题查询(和其他主要字段)

$issueQuery->customFieldValues = $customFields;

创建问题($ token是您的连接)

$issueCreated = $soapClient->createIssue($token, $demande);

多数民众赞成! $ issueCreated将是返回的问题Key