A module for using the Taiga REST API. Documentation: http://python-taiga.github.io/
pip install python-taiga
- If you want to contribute to python-taiga with small fixes or updates please open a PR on Github
- If you want to start working on a big feature please let's discuss it together, opening a new issue
- If you want to contribute to python-taiga's documentation use the
generate_docs.sh
script to build the official documentation and send a PR (We use sphinx http://sphinx-doc.org/)
Getting started with the Taiga API couldn't be easier. Create a
TaigaAPI
and you're ready to go.
The TaigaAPI
needs your Taiga credentials. You can pass these
directly to the auth method (see the code below).
from taiga import TaigaAPI
api = TaigaAPI()
api.auth(
username='user',
password='psw'
)
Alternately, you can pass a token to the constructor TaigaAPI
constructor.
from taiga import TaigaAPI
api = TaigaAPI(token='mytoken')
You can also specify a different host if you use Taiga somewhere else
from taiga import TaigaAPI
api = TaigaAPI(
host='http://taiga.my.host.org'
)
You can get projects, user stories, tasks and issues using the primary key or using slug/ref
new_project = api.projects.get_by_slug('nephila')
print (new_project.get_issue_by_ref(1036))
print (new_project.get_userstory_by_ref(1111))
print (new_project.get_task_by_ref(1112))
new_project = api.projects.create('TEST PROJECT', 'TESTING API')
userstory = new_project.add_user_story(
'New Story', description='Blablablabla'
)
You can also create a milestone and pass it to a story
jan_feb_milestone = new_project.add_milestone(
'MILESTONE 1', '2015-01-26', '2015-02-26'
)
userstory = new_project.add_user_story(
'New Story', description='Blablablabla',
milestone=jan_feb_milestone.id
)
To add a task to your user story just run
userstory.add_task(
'New Task 2',
new_project.task_statuses[0].id
)
newissue = new_project.add_issue(
'New Issue',
new_project.priorities.get(name='High').id,
new_project.issue_statuses.get(name='New').id,
new_project.issue_types.get(name='Bug').id,
new_project.severities.get(name='Minor').id,
description='Bug #5'
)
new_project.add_issue_attribute(
'Device', description='(iPad, iPod, iPhone, Desktop, etc.)'
)
newissue.set_attribute('1', 'Desktop')
projects = api.projects.list()
stories = api.user_stories.list()
You can also specify filters
tasks = api.tasks.list(project=1)
You can attach files to issues, user stories and tasks
newissue.attach('README.md', description='Read the README in Issue')
Instances can have actions, for example you can star a project just calling
new_project = api.projects.create('TEST PROJECT', 'TESTING API')
new_project.star()
Any instance can be updated and deleted
new_project.name = 'New name for my project'
new_project.update()
new_project.delete()
Search function returns a SearchResult object, containing tasks, user stories and issues:
projects = api.projects.list()
search_result = api.search(projects[0].id, 'NEW')
for user_story in search_result.user_stories:
print (user_story)
You can access the history of issues, tasks, userstories and wiki pages:
history = api.history.user_story.get(user_story.id)
You can find a complete example in demo.py.