GithubHelp home page GithubHelp logo

backloglib's Introduction

What's backloglib

(英語の下に日本文が記載されています)

backloglib is a simple Backlog API wrapper for python and offers types for return value of each API call (like Issue or Project). This helps you to use Backlog API in that

  • it enables method completion by IDE like Pydev or PyCharm
  • it secures your code with type validation before calling API

Update

For more details, refer to Release Notes.

Install

$ pip install backloglib

How to use

Basically you should follow the steps below

  1. Initialize Backlog object with your space, username and password
  2. call API method with the Backlog object

Information about API method is provided here. Here's an example how to call Backlog API with backloglib. Method names in Backlog API are converted from camel case to snake case in backloglib.

import backloglib

# ----- 1. initialize backlog object -----

# for backlog.jp users
backlog = backloglib.Backlog("spacename","username","password")
# for backlogtool.com users
backlog = backloglib.Backlog("spacename","username","password", domain="backlogtool.com")

# ----- 2. API call -----

# get projects
projects = backlog.get_projects()
project = backlog.get_project("YOUR_PROJECT")
project = backlog.get_project(1) # YOUR_PROJECT's ID

# get categories
components = backlog.get_components(project.id)

# get versions (milestones)
versions = backlog.get_versions(project.id)

# get users
users = backlog.get_users(project.id)

# get issue types
issue_types = backlog.get_issue_types(project.id)

# get issues
issue = backlog.get_issue("ISSUE_NAME")
issue = backlog.get_issue(1) # ISSUE_NAME's ID

# get comments
comments = backlog.get_comments(issue.id)

# get number of issues that matche given condition
count = backlog.count_issue({
                            "projectId":project.id
                            })

# find issues that matche given condition
issues = backlog.find_issue({
                            "projectId":project.id
                            })

# create an issue
issue = backlog.create_issue({
                             "projectId":project.id,
                             "summary":u"Issue summary"
                             })

# update an issue
updated = backlog.update_issue({
                               "key":issue.key,
                               "summary":u"Update issue summary"
                               })

# update issue status
updated = backlog.switch_status({
                               "key":issue.key,
                               "statusId":backloglib.Status.COMPLETED
                               })

To use administrator's API, you have to initialize a BacklogAdmin object instead Backlog object.

import backloglib

# ----- 1. initialize backlog object -----

backlog = backloglib.BacklogAdmin("spacename","username","password")

# ----- 2. API call -----

# get users which belongs to projects
project_users = backlog.get_project_users()

For Developers

Test

To run test class

$ PYTHONPATH=src:test python -m unittest -v backloglibtest.test_Backlog

To run single method

$ PYTHONPATH=src:test python -m unittest -v backloglibtest.test_Backlog.BacklogTest.test_get_projects1

backloglib とは

backloglib は Backlog の API にアクセスするための python のクライアントライブラリです。

更新情報

リリースの詳細については リリースノート を参照ください。

利点

ライブラリを使うメリットとしては、

  • Pydev などの IDE を使うと、メソッドの補完をしてくれる事
  • 実際の API コールの前に、引数の名前チェックをする事 (= 引数に不足あればエラーが出ます)

といった辺りです。非常にシンプルなラッパーという位置づけです。

インストール

前提条件

0.2.1 より python 2.5 以上でのご利用を前提としています。2.5 と 2.6 にて動作を確認しています。標準で提供されている xmlrpclib 以外に依存しているライブラリはありません。

pip を利用する場合

$ pip install backloglib

setup.py を利用する場合

# ダウンロードしたアーカイブを展開
$ tar zxvf backloglib-<ver>.tar.gz
# setup.py を実行
$ cd backloglib-<ver>
$ python setup.py install

easy_install を利用する場合

easy_install を利用する場合は、まずお手元の環境に setuptools をインストールした後に以下を実行してください。

# easy_install を実行
$ easy_install backloglib

使い方

基本的な使い方は以下の 2 ステップとなります。

  • backlog オブジェクトを生成
  • API に従ったメソッド呼び出し

例としては以下のようになります。各メソッドの詳細については上記の API のページの詳細をご覧ください。backloglib で呼び出すメソッド名は、基本的に Backlog API のキャメル記法をアンダースコアに、大文字を全て小文字に置き換えたものになっています。

import backloglib

# ----- 1. backlog オブジェクトを生成 -----

backlog = backloglib.Backlog("spacename","username","password")

# ----- 2. API に従ったメソッド呼び出し -----

# プロジェクトの取得
projects = backlog.get_projects()
project = backlog.get_project("YOUR_PROJECT")
project = backlog.get_project(1) # YOUR_PROJECT's ID

# コンポーネントの取得
components = backlog.get_components(project.id)

# バージョンの取得
versions = backlog.get_versions(project.id)

# ユーザの取得
users = backlog.get_users(project.id)

# 課題タイプの取得
issue_types = backlog.get_issue_types(project.id)

# 課題の取得
issue = backlog.get_issue("ISSUE_NAME")
issue = backlog.get_issue(1) # ISSUE_NAME's ID

# コメントの取得
comments = backlog.get_comments(issue.id)

# 課題数の取得
count = backlog.count_issue({
                            "projectId":project.id
                            })

# 課題の検索
issues = backlog.find_issue({
                            "projectId":project.id
                            })

# 課題の作成
issue = backlog.create_issue({
                             "projectId":project.id,
                             "summary":u"課題のサマリ"
                             })

# 課題の更新
updated = backlog.update_issue({
                               "key":issue.key,
                               "summary":u"サマリの更新"
                               })

# ステータスの更新
updated = backlog.switch_status({
                               "key":issue.key,
                               "statusId":backloglib.Status.COMPLETED
                               })

管理者用 API (backlog.admin ではじまるもの) は以下のように !BacklogAdmin オブジェクトを利用します。利用方法は上記と変わりません。

import backloglib

# ----- 1. backlog オブジェクトを生成 -----

backlog = backloglib.BacklogAdmin("spacename","username","password")

# ----- 2. API に従ったメソッド呼び出し -----

# プロジェクトユーザの取得
project_users = backlog.get_project_users()

参考

0.2.2 以前の情報については http://code.google.com/p/backloglib/ をご覧ください

backloglib's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

attakei netmarkjp

backloglib's Issues

create_issue tries to send inappropriate type for priority or other complementary attributes

度々で恐縮です。
create_issueをコールする際の"priority"などを指定する際のフォーマットについてご教授いただければうれしいです。
issue = backlog.create_issue({
"projectId":project.id,
"summary":u"テスト",
"priority":{ここ}
})
すみません。きちんとソースをみれば良いのですが、もし、回答いただけましたら助かります。
よろしくお願いします。

getComponents

以下のようにgetComponentsをコールするとxmlrpclibのエラーが発生します。

<コード>
components = backlog.get_components({"projectId":project.id})

<エラー>
Traceback (most recent call last):
File "test_backlog.py", line 24, in
caseComponent = CaceComponent(project)
File "test_backlog.py", line 9, in init
self.components = backlog.get_components({"projectId":project.id})
File "/Library/Python/2.7/site-packages/backloglib/init.py", line 61, in get_components
components = self.server.backlog.getComponents(project_id)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1224, in call
return self.__send(self.__name, args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1578, in __request
verbose=self.__verbose
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1297, in single_request
return self.parse_response(response)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1473, in parse_response
return u.close()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 793, in close
raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 0: 'No method matching arguments: java.util.HashMap'>

Models.pyの不具合でしょうか?
ご確認いただければ幸いです。

よろしくお願いします。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.