Skip to main content

A library for backlog api

Project description

PyBacklogPy

CircleCI

これは何?

BacklogAPI を Python から簡単に呼べるようにラップしたものです。

なんでこんな名前なの?

PyBacklogBacklogPy も既に存在したので、苦肉の策で Py で挟みました。

必須環境

  • Python 3.5 以上
    • typing モジュールを使用しているため
    • 開発およびテスト環境は Python 3.7.3 を使用

使い方

詳細な仕様についてはドキュメントを参照してください

インストール

pip からインストールします。

pip install git+https://github.com/kitadakyou/pybacklogpy

ドメインおよびシークレットキーの登録

使用するプロジェクトの直下に secrets というファイルを作り、以下のように値を入れておいてください。 なお、当プロジェクト直下にある secrets_sample をコピーすると楽です。

なお、このファイルは誤ってリポジトリにあげないよう、 .gitignore に追加しておくことを推奨します

[backlog]
Host = kitadakyou.backlog.com
ApiKey = qwertyuiopasdfghjklzxcvbnmqazwsxedcrfvtgbyhnujmikolp

モジュールを読み込み、インスタンス生成

使用するモジュールをロードします。 それぞれはクラスになっているので、そのインスタンスを生成します。

例として、Wiki の API を呼びたいと考えます。

from pybacklogpy.Wiki import Wiki


wiki_api = Wiki()

API を呼ぶ

どのような API があるかは PyBacklog のドキュメント、もしくは BacklogAPI のドキュメントを参照してください。 また、プロジェクトID や Wiki ID 等の調べ方は…ググればすぐに出てきます

Wiki を追加するサンプル

from pybacklogpy.Wiki import Wiki


wiki_api = Wiki()


response = wiki_api.add_wiki_page(
    project_id=1000,
    name='SampleWikiName',
    content='サンプル Wiki 本文',
    mail_notify=False,
)

Wiki を更新するサンプル

from pybacklogpy.Wiki import Wiki


wiki_api = Wiki()


response = wiki_api.update_wiki_page(
    wiki_id=12345,
    name='TestWikiName',
    content='テスト 本文',
    mail_notify=False,
)

返り値を見る

全ての関数は requestレスポンスオブジェクト を返します。

最低限リクエストが成功しているかを確認するには、 response.ok を見るのが1番早いです。

Wiki の更新が成功しているか確認するサンプル

from pybacklogpy.Wiki import Wiki


wiki_api = Wiki()


response = wiki_api.update_wiki_page(
    wiki_id=12345,
    name='TestWikiName',
    content='テスト 本文',
    mail_notify=False,
)
if not response.ok:
    raise ValueError('Wiki の更新に失敗')

また、レスポンス本文は response.text の中身に生(=テキストの)の JSON が入っています。標準ライブラリ json を使って parse してあげれば、簡単に使えます。

Wiki の内容を取得するサンプル

import json


from pybacklogpy.Wiki import Wiki


wiki_api = Wiki()


response = wiki_api.get_wiki_page(
    wiki_id=12345,
)

if not response.ok:
    raise ValueError('Wiki ページ情報の取得に失敗')

wiki_data = json.loads(response.text)
wiki_name = wiki_data['name']
wiki_content = wiki_data['content']

どのAPIにおいても、基本的に同じだと思います。

ファイルの取得

ファイルを取得する関数を使用する場合は、まずディレクトリを作成する必要があります。 デフォルトではプロジェクト直下の /tmp ディレクトリにファイルがダウンロードされます。(今の所、変更不可)

ファイルを取得する関数は「1番目がファイルのPATH」、「2番目がレスポンスオブジェクト」のタプルを返します。 そのため、一度に受け取るには、以下のように返り値を受け取る変数を2つ用意する必要があります。

from pybacklogpy.Wiki import Wiki


wiki_api = Wiki()


downloaded_file_path, response = self.wiki_attachment.get_wiki_page_attachment(
    wiki_id=12345,
    attachment_id=987654,
)
print(downloaded_file_path)

バグを見つけたら

自由にブランチを切って、 PullRequest を出してください。Issue を上げるだけでも大丈夫です。 一週間に一回くらいは見るようにするので、対応出来たら対応します。(全て対応するとは言っていない)

もし、PR出しても全くリアクションがない場合は Twitter の kitadakyou 、A若しくは作者のメール宛にご連絡ください。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pybacklogpy-0.8-py3.7.egg (3.4 kB view hashes)

Uploaded Source

pybacklogpy-0.8-py3-none-any.whl (39.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page