Atlassianには、モジュールの使用に関する公式ドキュメントがあります。 モジュール自体は「jira」と呼ばれます。 伝統的に、次のコマンドでモジュールをインストールします。
pip install jira
次に、モジュールをコードに直接インポートします。
from jira import JIRA
サーバー自体に接続するには、必要なパラメーターをサーバーに渡してクライアントを作成する必要があります。
jira_options = {'server': 'https://project-name.atlassian.net'} jira = JIRA(options=jira_options, basic_auth=(login, api_key))
パスワードで認証するために、apiキーの代わりにパスワードを転送できます。 認証が渡されると、アクセス可能なアクティブなAPIクライアントができます。
可能性は確かに無限ではありませんが、かなり広いです。 特定の週のタスクを引き出し、Excellで費やした時間に関するレポートを作成する必要がありました。 プロジェクト自体、タスク番号、またはJQLクエリによってタスクを直接取得できます。 検索ツールは非常に柔軟でシンプルです。 APIクライアントから返されるすべての情報は文字列で送られるため、それを操作するには追加の手順が必要です。
jqlリクエストを作成し、そのタスクをピックアップします。
jql = 'project = ' + project_key + ' AND worklogDate >= ' + work_date issues_list = jira.search_issues(jql)
残念ながら、そのようなリクエストを介して取得されるタスクにworklogプロパティがない理由はまだわかりませんでした。 何が間違っていたかを理解しようといくつか試みた後、私は丁寧にjiraに番号でタスクを尋ねました。
issue = jira.issue(issue_key)
このメソッドによって返されるタスクでは、ワークログのリストを含むワークログフィールドがありました。 その結果、jqlクエリによってタスクを取得し始め、タスク番号を引き出し、その後必要な情報を引き出しました。
worklogs = issue.fields.worklog.worklogs
同様の行を使用すると、特定のタスクからすべての時間記録を引き出すことができます。 各エントリには、秒とテキスト表現(1h、3dなど)の両方で時間に関する情報があります。
その後、すべてが簡単です。期間に合わない廃棄を行ってください。私の場合、週番号は一致しません。
worklog_date_str = re.search(r'(\d{4}-\d{2}-\d{2})', worklog.started) worklog_date = datetime.strptime(worklog_date_str.group(0), '%Y-%m-%d') if worklog_date.isocalendar()[1] == weak_number:
日付は文字列で返されるため、単純な正規表現を使用してそれを取得し、次の行で必要なタイプを取得します。 式worklog_date.isocalendar()[1]を使用すると、週の数を調べることができます。これは、必要なものと比較されます。 一致する場合は、踏みつけて残りのデータを書き込みます。
一般に、上記のモジュールを使用すると、かなり広範なタスクを解決できます。時間と欲求だけが必要です。
UPD
タスクを再度リクエストすることはできませんが、単に必須フィールドを展開してください
github.com/pycontribs/jira/blob/master/jira/client.py#L2371
おかげでHSerg