簡體   English   中英

訪問 Atlassian Jira REST API 以在過濾器上運行超級簡單的報告

[英]Access Atlassian Jira REST API to run super simple report on a filter

我想要的基本上就是登錄,顯示來自一個簡單過濾器的信息,比如里程碑中的所有打開的錯誤。 一旦我病得那么厲害就可以處理文檔

我希望使用簡單的 PHP,那是因為我是 PHP 新手,所以編碼越復雜,我就越難弄清楚。

這個腳本是我最接近成功的腳本:

    <?php

define('JIRA_URL', 'https://mysite.atlassian.net');
define('USERNAME', 'me@gmail.com');
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);
}
?>

它返回在http://mysite.atlassian.net/browse/創建的新問題

但是當我將 var_dump ($result) 放在那里時,它只返回 null,所以我不知道 jira URL 是否錯誤,或者我的密碼是否錯誤,或者它是否為新的 rest API 的過時代碼。

如果我可以對 API 進行 1 個簡單的查詢並查看我的 PHP 頁面上返回的任何內容,我將成為一個快樂的露營者。 上面的示例創建了一個新問題,這只是我使用的示例,但我可以只返回任何類型的數據,因此我的主要問題是獲取有效連接並返回一些信息,因此我知道它正在工作並且無法啟動然后嘗試一些不同的東西。

我有管理員訪問權限,但我不清楚是否需要在管理員端啟用某些功能。

我想出了我需要做什么,網上有很多例子,但我找不到這樣的簡單,所以希望它可以幫助別人

$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;

我有一些更有價值的東西,你可以檢查這個庫。這是唯一能節省我時間的東西。我甚至使用了你的代碼,但代碼對我來說很難。 但這個圖書館很棒。它... .. :)

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

如果您需要任何有關如何使用此功能的幫助,請與我們聯系。

關注此頁面......

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

這些天我們需要使用標頭身份驗證 - 在此步驟中修改示例 - 如:

$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";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM