1

SOAP APIを使用して、特定のJIRA問題のすべてのカスタムフィールドの値を取得したいと思います。JIRAの問題JIRA-123に対して決定保留中の値を持つ「フェーズ」という名前のカスタムフィールドがあります。

私はを使用してJIRA 5.1.3います。

上記の問題のカスタムフィールドの値を除いて、SOAPAPIを使用してJIRA問題のすべてのプロパティを取得できます。

次のコードを試しましたが、コードでComponentManagerを使用できません

IssueManager issueManager = ComponentManager.getInstance().getIssueManager();
CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager();
Issue issue = issueManager.getIssueObject("JIRA-123");
CustomField customField = customFieldManager.getCustomFieldObjectByName("Phase");
Object customFieldValue = issue.getCustomFieldValue(customField);

誰かが正しいアプローチを提供できれば幸いです。

4

2 に答える 2

2

SOAPAPIは5.1.3で非推奨になりました。RESTAPIを使用することをお勧めします。RESTAPIの方が使いやすく実装も簡単です。

RESTとは何ですか?: ここを読んでください。基本的な考え方は、HTTPリクエストタイプをアクションにバインドすることです。これは非常に明白です。この表を確認して、すばやく実行してください。

Jiraには、使用できる強力なRESTAPIがあります。これは、現在のリリースのメインドキュメントです。

いくつかの高レベルのステップで何をする必要がありますか?:

  1. JIRAインスタンスを使用してある種の認証を設定します。それである:

  2. APIを介してすべてのフィールドのリストを取得します。

    / /rest/api/2/field' [method returns a list of all fields][6] - both System and Custom. Then when you identify the exact field userest / api / 2 / customFieldOption / {id} `を使用して、カスタムフィールドオプションの完全な
    表現を取得します。

APIを理解するには、 Chrome REST Consoleなどのツール、または簡単にリクエストできる類似のツールを使用することをお勧めします。ボーナスは、同じブラウザからログインしている場合は、認証を設定する必要がないことです。ただし、ユーザーには完全な管理者アクセスが必要です。

これは、すべてのJIRARESTAPIドキュメントのルートです。見てみな。

PHPでこれを行う場合は、個人的に何らかのライブラリを使用することをお勧めします。私は この正確なタスクに(CakePHP環境で) Guzzleを使用しましたが、非常にうまくいきました。

于 2012-10-09T09:41:31.817 に答える
1

SOAP APIをどのように使用するかわかりません。これは、PHP-SOAPを介した使用例です。

#!/usr/bin/php -q
<?php
   $soapClient = new SoapClient("https://jira.com/rpc/soap/jirasoapservice-v2?wsdl");
   $token = $soapClient->login('user', 'password');
   $myIssue = $soapClient->getIssue($token,"TES-13");
   print_r($myIssue); // all of the issue details
   print_r($myIssue->customFieldValues); // get all custom fields
   foreach ($myIssue->customFieldValues as $customFieldValue) {
        // search for the right custom field
        if ($customFieldValue->customfieldId == 'customfield_10402') {
                echo $customFieldValue->values[0];
                die();
        }
   }
?>

他のAPIを使用する場合は、JIRAリモートAPIリファレンスをご覧ください。

RESTおよびSOAPAPIに関するコメント-JiraのサイトからSOAPAPIを引用するには、「サポートされていますが、将来の開発はありません」。Rest APIはまだ少し新しく、REST APIではまだ実行できないことがあり()、SOAPAPIを使用して簡単に実行できます。

于 2012-10-07T10:24:49.820 に答える