:evergreen_tree: Python module for communicating with the Taiga API

Overview
Comments
  • Preliminary pagination support API

    Preliminary pagination support API

    This implements support for pagination Fix #59

    By default list method retrieves all the objects navigating the pages returned by the API all argument allows to disable pagination and return all the results (implementing current behavior) lazy_pagination argument allows to load a single page

    opened by yakky 21
  • Package for Debian (.deb)

    Package for Debian (.deb)

    I've added a basic configuration to build .deb packages of the module for Debian-based systems.

    The configurations is not complete enough to get accepted into the official Debian repository, but it ought to suffice if someone wanted to set up a PPA, for example. Personally, I need the .deb-packaged version to be able to distribute the module in a particularly Debian-centric environment.

    Pybuild does the heavy lifting based on your existing setup.py file. A single command, which I've encapsulated in the Makefile, is enough to build the packages for both Python 2 and 3.

    If this is merged, the Maintainer field (line 4 in debian/control) should probably be changed to (one of) the repository maintainers from here.

    opened by rgson 15
  • bugfixes

    bugfixes

    This will add the ability to set existing custom attributes (fixes #18). Adds version to allowed_params in class UserStory and Task (maybe needs in Issue too?) (fixes #17). Forwards **attrs in UserStory add_task (fixes #16 )

    opened by dionysiusmarquis 8
  • AttributeError: 'History' object has no attribute 'id'

    AttributeError: 'History' object has no attribute 'id'

    Hi,

    I think one of the latest taiga-back commits broke python-taiga if not entirely but quite badly. I see they made changes to the history management in taiga-back (they fixed something with timeline history loops on fresh projects) and I suppose it had some effect on this tool.

    This gets raised when I'm trying to get a project by its slug: AttributeError: 'History' object has no attribute 'id'

    Got no idea where to fix it yet.

    type: bug status: approved 
    opened by theriverman 6
  • extend models (us, task, issue) and add epic model (init)

    extend models (us, task, issue) and add epic model (init)

    Hi @nephilaweb, thanks for the python-taiga api.

    This is my first time writing some python scripts and I would love to have some guidance of how to test my changes well.

    I extended some models so it's more usable in tools and also added an epic-support.

    Can you guide me along the way? I will update this pull request with the changes necessary to get this merged.

    Thanks! Cheers

    opened by sopitz 6
  • Request was throttled.Expected available in 86097 seconds.

    Request was throttled.Expected available in 86097 seconds.

    I was using this API to send out a massive amount of invites for a class to create public projects and adding members. It throttled at adding members. For some reason, my connection to Taiga Server is extremely slow. I have 100mbps at home and it takes 5 secs to load the website. I am not sure if it has anything to do with it. Thoughts? Thank you!

    type: bug status: feedback needed 
    opened by Bowenislandsong 5
  • LDAP auth not provided

    LDAP auth not provided

    Hi,

    As an LDAP user, I would like to have an ldap auth provided by python-taiga. I can't use python-taiga as long as ldap auth is not supported.

    Thanks in advance.

    opened by bzhtux 5
  • Added stats for Projects and Milestones

    Added stats for Projects and Milestones

    First of all: wonderful project, I like working with python-taiga!

    I want to fetch out some project stats but the stats API calls for Projects and Milestones were missing. I added these two calls and associated test cases with them.

    API doc: http://taigaio.github.io/taiga-doc/dist/api.html#projects-stats http://taigaio.github.io/taiga-doc/dist/api.html#milestones-stats

    opened by erikw 4
  • How to get project slug?

    How to get project slug?

    Description

    Hi, I want to get project slug. I need project slug to create full front-end link (eg. https://mytaigahost.com/project/<project_slug>/us/<userstory_id>) of user stories and tasks. Sorry, but I don't understand how to get it. Can you help me?

    Steps to reproduce

    projects = api.projects.list() not return project slug.

    Versions

    python-taiga 1.0.0 taiga 6.0.0

    type: bug 
    opened by menteora 3
  • Project listing agains taiga.io fails: too many projects

    Project listing agains taiga.io fails: too many projects

    Hello,

    I noticed that if you use python-taiga against https://api.taiga.io/ to list projects it fails.

    api.projects.list()
    (Traceback (most recent call last):
      File "./taiga-stats", line 175, in cmd_list_projects
        for proj in api.projects.list():
      File "/home/erikw/.virtualenvs/taiga-stats/lib/python3.6/site-packages/taiga/models/base.py", line 41, in list
        objects = self.parse_list(result.json())
      File "/home/erikw/.virtualenvs/taiga-stats/lib/python3.6/site-packages/requests/models.py", line 892, in json
        return complexjson.loads(self.text, **kwargs)
      File "/usr/lib64/python3.6/json/__init__.py", line 354, in loads
        return _default_decoder.decode(s)
      File "/usr/lib64/python3.6/json/decoder.py", line 339, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "/usr/lib64/python3.6/json/decoder.py", line 357, in raw_decode
        raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    

    No output fed in to the JSON decoding? So I decided to get down to my friend command line, and this works as expected:

    $ curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer ${AUTH_TOKEN}" -s https://api.taiga.io/api/v1/projects
    ...
    <project JSON>
    

    So I drilled down the code and noticed that python-taiga always send the header

    x-disable-pagination: True
    

    to disable pagination and get everything at once.

    So I plugged this in to the the previous command line

    $ curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer ${AUTH_TOKEN}" -H "x-disable-pagination: True" -s https://api.taiga.io/api/v1/projects
    <html>
    <head><title>504 Gateway Time-out</title></head>
    <body bgcolor="white">
    <center><h1>504 Gateway Time-out</h1></center>
    <hr><center>nginx/1.10.3 (Ubuntu)</center>
    </body>
    </html>
    

    and now it it also fails like when called with pyhon-taiga.

    I simply think this is the situation: now the number of public projects at taiga.io has recently grown too large to be included in one GET request to the project listing API endpoint. But before it was small enough to work.

    A user of my project taiga-stats reported this last week.

    I guess python-taiga should be adapted to use pagination for requests, so it can handle large taiga instances, like taiga.io now is. And I think this is prioritized to to, as I guess taiga.io is the most used instance of Taiga of them all!

    type: feature 
    opened by erikw 3
  • Unsecure login and auth_type

    Unsecure login and auth_type

    Allow the connection to a Taiga host using a self-signed certificate (also ignore the InsecureWarning triggered by urllib3).

    Taiga offers other types of authentication (LDAP, github, ...), so the key 'type' in the payload for the auth request can't be hard coded to 'normal'.

    opened by MaxenceAdnot 3
  • Update models.py

    Update models.py

    Add Epic Custom Attributes

    Description

    Describe:

    • Content of the pull request
    • Feature added / Problem fixed

    References

    Provide any github issue fixed (as in Fix #XYZ)

    Checklist

    • [ ] I have read the contribution guide
    • [ ] Code lint checked via inv lint
    • [ ] changes file included (see docs)
    • [ ] Usage documentation added in case of new features
    • [ ] Tests added
    opened by seraf167 0
  • Update __init__.py

    Update __init__.py

    Add EpicAttribute and EpicAttributes

    Description

    Describe:

    • Content of the pull request
    • Feature added / Problem fixed

    References

    Provide any github issue fixed (as in Fix #XYZ)

    Checklist

    • [ ] I have read the contribution guide
    • [ ] Code lint checked via inv lint
    • [ ] changes file included (see docs)
    • [ ] Usage documentation added in case of new features
    • [ ] Tests added
    opened by seraf167 0
  • [pre-commit.ci] pre-commit autoupdate

    [pre-commit.ci] pre-commit autoupdate

    opened by pre-commit-ci[bot] 2
  • Improve models documentation

    Improve models documentation

    Clarify that description is not available in the list responses

    References

    Fix #105

    Checklist

    • [x] I have read the contribution guide
    • [x] Code lint checked via inv lint
    • [x] changes file included (see docs)
    • [x] Usage documentation added in case of new features
    • [ ] Tests added
    type: bug 
    opened by yakky 2
  • Fix pagination

    Fix pagination

    Description

    Page parameter was not passed to querystring, thus pagination failed

    Ensure page parameter is actually passed to query parameters

    References

    Fix #116

    Checklist

    • [x] I have read the contribution guide
    • [x] Code lint checked via inv lint
    • [x] changes file included (see docs)
    • [ ] Usage documentation added in case of new features
    • [x] Tests added
    type: bug 
    opened by yakky 2
  • pagination, page always returns the first page

    pagination, page always returns the first page

    Description

    when you have more than 300 User stories (2071 in the one I'm working with) setting page=y will return the same results no matter the value of y

    Steps to reproduce

        the_page_size = 100
    
        for y in range(1,10):
            stories = api.user_stories.list(project=44, page=y, page_size=the_page_size)
            for x in stories:
                print(x.subject)
            print("*** Page *** ", y, "Len: ",len(stories))
    

    Versions

    Expected behaviour

    when incrementing "page" and re calling I would expect the next page of results to be returned

    Actual behaviour

    whatever value is set the first page is returned

    Additional information

    type: bug 
    opened by wadoadi 2
Releases(1.0.0)
Owner
Nephila
The Open source & Django web company based in Firenze, London and Zürich - https://gitter.im/nephila/applications
Nephila
Microsoft Azure Storage Library for Python

Microsoft Azure Storage Library for Python

Microsoft Azure 329 Dec 16, 2022
Super simple anti-spam Discord bot

AutoAntiRaidBot Super simple anti-spam Discord bot. Will automatically kick any member with an account made under 1 day ago, and will ban any member w

Kainoa Kanter 6 Jun 27, 2022
A part of HyRiver software stack for accessing hydrology data through web services

Package Description Status PyNHD Navigate and subset NHDPlus (MR and HR) using web services Py3DEP Access topographic data through National Map's 3DEP

Taher Chegini 51 Dec 10, 2022
A code that can make your 5 accounts stay 24/7 in a discord voice channel!

Voicecord A code that can make your 5 accounts stay 24/7 in a discord voice channel! Usage ・Fork the repo ・Clone it to replit ・Install the required pa

DraKenCodeZ 3 Jan 09, 2022
A simple Telegram bot that can add caption to any media on your channel

Channel Auto Caption This bot can add a caption for any media/document sent to a channel. Just deploy bot and add bot as admin to a channel. Deploy to

22 Nov 14, 2022
Automation that uses Github Actions, Google Drive API, YouTube Data API and youtube-dl together to feed BackJam app with new music

Automation that uses Github Actions, Google Drive API, YouTube Data API and youtube-dl together to feed BackJam app with new music

Antônio Oliveira 1 Nov 21, 2021
Azure free vpn for students only! (Self hosted/No sketchy services/Fast and free)

Azpn-Azure-Free-VPN Azure free vpn for students only! (Self hosted/No sketchy services/Fast and free) This is an alternative secure way of accessing f

Harishankar Kumar 6 Mar 19, 2022
An unofficial python wrapper for the comdirect API for private consumers.

An unofficial python wrapper for the comdirect API for private consumers.

Alexander Knittel 18 Nov 30, 2022
UniHub API is my solution to bringing students and their universities closer

🎓 UniHub API UniHub API is my solution to bringing students and their universities closer... By joining UniHub, students will be able to join their r

Abdelbaki Boukerche 5 Nov 21, 2021
Satoshi is a discord bot template in python using discord.py that allow you to track some live crypto prices with your own discord bot.

Satoshi ~ DiscordCryptoBot Satoshi is a simple python discord bot using discord.py that allow you to track your favorites cryptos prices with your own

Théo 2 Sep 15, 2022
Python library for generating sequences with uniform stimulus history

Sampling Euler tours for uniform stimulus history Table of Contents About Examples Experiment 1 Experiment 2 Experiment 3 Experiment 4 Experiment 5 Co

5 Nov 11, 2021
Automate UCheck COVID-19 self-assessment form submission

ucheck Automate UCheck COVID-19 self-assessment form submission. Disclaimer ucheck automatically completes the University of Tornto's UCheck COVID-19

Ira Horecka 15 Nov 30, 2022
Aula-API - a school system widely used in Denmark, as you can see and read about in the python file

Information : Hello, thank you for reading this first of all. This is a Aula-API

Binary.club 2 May 28, 2022
A free, minimal, lightweight, cross-platform, easily expandable Twitch IRC/API bot.

parky's twitch bot A free, minimal, lightweight, cross-platform, easily expandable Twitch IRC/API bot. Features 🔌 Connect to Twitch IRC chat! 🔌 Conn

Andreas Schneider 10 Dec 30, 2022
A cut down version of QUANT containing just the model in Python (QUANTPy)

A cut down version of QUANT containing just the model in Python (QUANTPy)

2 Apr 15, 2022
A Telegram Bot written in Python for mirroring files on the Internet to your Google Drive or Telegram

Original Repo mirror-leech-telegram-bot This is a Telegram Bot written in Python for mirroring files on the Internet to your Google Drive or Telegram.

0 Jan 03, 2022
Python client library for Bigcommerce API

Bigcommerce API Python Client Wrapper over the requests library for communicating with the Bigcommerce v2 API. Install with pip install bigcommerce or

BigCommerce 81 Dec 26, 2022
Discord bot for Shran development

shranbot A discord bot named Herbert West that will monitor the Shran development discord server. Using dotenv shranbot uses a .env file to load secre

Matt Williams 1 Jul 29, 2022
This is a very easy to use tool developed in python that will search for free courses from multiple sites including youtube and enroll in the ones in which it can.

Free-Course-Hunter-and-Enroller This is a very easy to use tool developed in python that will search for free courses from multiple sites including yo

Zain 12 Nov 12, 2022
AWS Workmail Migration Tool

WMigrate A tool for migrating AWS Workmail Users and Groups cross region and cross accounts. It also creates user and group aliases and adds the users

NK 1 Oct 27, 2021