2012-11-21 13 views
5

Tamam, hiçbir şey bulamadım araştırdı, bir süre daha durulama ve birkaç hafta sonra tekrar denedim denedim ve birkaç hafta sonra Jiras API erişimi almak için daha yakın değilim Umarım harika insanlar bana yardım edebilir.Access Atlassian Jira REST API bir filtrede süper basit bir rapor çalıştırmak için

Tek istediğim temelde giriş yapmak, basit bir filtreden tüm açık hatalar gibi bir kilometre taşı bilgisini görüntülemek. Bir keresinde bu kadar çok hasta hastalığa yakalanabileceğinden emin olmak için

Basit PHP'yi kullanmayı umuyorum, çünkü PHP için yeni bir şey olduğu için kodlamanın daha karmaşık olması benim için daha zor olacaktır.

Bu komut başarılı olmanın gelmek ive en yakın olan:

<?php 

define('JIRA_URL', 'https://mysite.atlassian.net'); 
define('USERNAME', '[email protected]'); 
define('PASSWORD', '11111'); 

function post_to($resource, $data) { 
     $jdata = json_encode($data); 
     $ch = curl_init(); 
     curl_setopt_array($ch, array(
       CURLOPT_POST => 1, 
       CURLOPT_URL => JIRA_URL . '/rest/api/2/' . $resource, 
       CURLOPT_USERPWD => USERNAME . ':' . PASSWORD, 
       CURLOPT_POSTFIELDS => $jdata, 
       CURLOPT_HTTPHEADER => array('Content-type: application/json'), 
       CURLOPT_RETURNTRANSFER => true 
     )); 
     $result = curl_exec($ch); 
     curl_close($ch); 
     return json_decode($result); 
} 

function create_issue($issue) { 
     return post_to('issue', $issue); 
} 

$new_issue = array(
     'fields' => array(
       'project' => array('key' => 'FOO'), 
       'summary' => 'Test via REST', 
       'description' => 'Description of issue goes here.', 
       'issuetype' => array('name' => 'Story') 
     ) 
); 

$result = create_issue($new_issue); 
if (property_exists($result, 'errors')) { 
     echo "Error(s) creating issue:\n"; 
     var_dump($result); 
} else { 
     echo "New issue created at " . JIRA_URL ."/browse/{$result->key}\n"; 
     var_dump($result); 
} 
?> 

O http://mysite.atlassian.net/browse/

de oluşturulan yeni sorunu döndürür Ama orada var_dump ($ sonuç) koyduğunuzda bu sadece boş böylece döner jira url'nin yanlış mı yoksa şifrem mi yoksa yeni dinlenme api'si için eski kodu mu bilmiyorum.

Yalnızca API için basit bir sorgu yapabilir ve php sayfamda döndürülen herhangi bir şey görürsem mutlu bir kampçı olurdum. Yukarıdaki örnek yeni bir sorun yaratıyor, bu sadece benim kullandığım örnek, ancak herhangi bir veriyi geri döndürmekle yeteri kadar iyi değil, bu yüzden benim ana meselem geçerli bir bağlantıya kavuşuyor ve bazı bilgileri geri getiriyor, böylece çalışmasını biliyorum ve bazı farklı şeyleri denemeye başlayamıyorum. sonra.

Yönetici erişimine sahibim, ancak yönetici tarafında bir şey etkinleştirmem gerekirse açık olmadım.

cevap

14

Ben, net örnekler bir sürü yapmak için gerekli anladım ama yani Umarım

$username = 'xxx'; 
$password = 'xxx'; 

$url = 'https://xxx.atlassian.net/rest/api/2/Issue/Bug-5555'; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password"); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); 

$issue_list = (curl_exec($curl)); 
echo $issue_list; 
+0

güzel iş :) İsterseniz kendi cevabınızı kabul edebilirsiniz;) – Ben

4

i daha değerli bir şey var başkası yardımcı olur böyle bir basit bulamadım ve bu kütüphaneyi kontrol etmek için kolay.yaşıma zaman kazandıran tek ve tek şeydi. Hatta kodunuzu kullandım ama kod benim için zordu. ancak bu kütüphane bunu great.try olduğunu .. :)

https://github.com/FayP/JIRA-php

Bunu nasıl kullanılacağına ilişkin herhangi bir yardıma ihtiyacın olursa bana bildirin.

3

bu sayfayı ardından ...

https://developer.atlassian.com/jiradev/api-reference/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-basic-authentication

Biz başlık kimlik doğrulamasını kullanmak gerekir

görünüyor bu gün - bu lastik sırtında örnek değiştirerek - benzeri:

$username = 'user'; 
$password = 'pass'; 

$url = 'https://www.jiradomain.com/rest/api/2/issue/PROJECT-321/worklog'; 

$curl = curl_init(); 

curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Basic ' . base64_encode("$username:$password")));** 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($curl, CURLOPT_VERBOSE, true); 

$verbose = fopen('php://temp', 'rw+'); 
curl_setopt($curl, CURLOPT_STDERR, $verbose); 

$issue_list = (curl_exec($curl)); 
echo $issue_list; 

$result = curl_exec($curl); 
if ($result === FALSE) { 
    printf("cUrl error (#%d): %s<br>\n", curl_errno($curlHandle), 
      htmlspecialchars(curl_error($curlHandle))); 
} 

rewind($verbose); 
$verboseLog = stream_get_contents($verbose); 

echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog), "</pre>\n"; 
İlgili konular