Os nomes de anexos da API JIRA contêm todos os caminhos dos arquivos postados

Eu tenho trabalhado com a Jira API e tenho visto resultados inconsistentes para os meus pedidos. Às vezes funciona e às vezes não. Na semana passada, consegui publicar anexos em problemas, mas agora ocorreu um problema antigo: os nomes dos anexos contêm todo o caminho do arquivo postado, portanto, os anexos não podem ser abertos. Eu uso a representação json para publicar arquivos:

$array = array("file"=>"@filename"); json_encode($array); ... 

Isso obtém o arquivo postado, mas o problema é quando é postado os nomes dos arquivos no JIRA são assim:

/var/www/user/text.text

Escusado será dizer que não pode ser aberto no JIRA. Eu tive esse problema antes, então de repente desapareceu, agora ocorreu novamente. Eu realmente não entendi. Por sinal, não estou usando curl para esta solicitação, embora possa ser recomendada na documentação.

Eu percebo que esta questão é um pouco antiga, mas eu tive um problema semelhante. Parece que Jira não necessariamente corta o nome do arquivo conforme o esperado. Eu consegui corrigi-lo com o seguinte. Se você estiver usando PHP> = 5.5.0:

 $url = "http://example.com/jira/rest/api/2/issue/123456/attachments"; $headers = array("X-Atlassian-Token: nocheck"); $attachmentPath = "/full/path/to/file"; $filename = array_pop(explode('/', $attachmentPath)); $cfile = new CURLFile($attachmentPath); $cfile->setPostFilename($filename); $data = array('file'=>$cfile); $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $result = curl_exec($ch); $ch_error = curl_error($ch); if ($ch_error){ echo "cURL Error: $ch_error"; exit(); } else { print_r($result); } 

Para PHP <5.5.0 mas> 5.2.10 (veja este erro ):

 $data = array('file'=>"@{$attachmentPath};filename={$filename}"); 

Sim, coloquei um problema sobre isso em https://jira.atlassian.com/browse/JRA-30765 A adição de anexos ao JIRA por REST não é, infelizmente, tão útil como poderia ser.

Interessante que o problema tenha desaparecido – talvez você estivesse executando seu script a partir de um local diferente?