: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
A Powerful, Smart And Simple Userbot In Pyrogram.

Eagle-USERBOT 🇮🇳 A Powerful, Smart And Simple Userbot In Pyrogram. Support 🚑 Inspiration & Credits Userge-X Userge Pokurt Pyrogram Code Owners Mast

Masterolic 1 Nov 28, 2021
A Rich renderable for viewing Multiple Sequence Alignments in the terminal.

rich-msa A simple module to render colorful Multiple Sequence Alignment with rich in the terminal. 🔧 Installing Install the rich-msa package directly

Martin Larralde 64 Dec 04, 2022
Modern Desktop Jellyfin Client written in Python and Vue for the UI [WIP]

JellyPlayer Modern Jellyfin Client Installation Install Requirements: Install Python 3 Install dependencies Install node deps for frontend, go to Jell

Prayag Prajapati 57 Dec 12, 2022
Spore API wrapper written in Python

A wrapper for the Spore API that simplifies and complements its functionality

1 Nov 25, 2021
Netflix Movies and TV Series Downloader Tool including CDM L1 which you guys can Donwload 4K Movies

NFRipper2.0 I could not shared all the code here Because its has lots of files inisde it https://new.gdtot.me/file/86651844 - Downoad File From Here.

Kiran 15 May 06, 2022
This is a tutorial on how to make a Discord Bot using the discord.py library

HowToMakeADiscordBot This Github repository is here to help you code a Discord Bot using the discord.py library! 1 - Setup: Download the code inside t

Baz 1 Oct 31, 2021
tgEasy's Official Assistant Bot and Example Bot

tgEasy Assistant The assistant bot that helps people with tgEasy directly on Telegram. This repository contains the source code of @tgEasyRobot and th

Divide Projects™ 4 Dec 26, 2022
Send to Telegram, Vk, Discord

Triple send Версия для русских: здесь Demo: Telegram: @Triple_project_bot Discord: Triple project#0877 Vkontakte: @dev.santaspeen How to run Install r

2 Sep 27, 2022
Unofficial GoPro API Library for Python - connect to GoPro via WiFi.

GoPro API for Python Unofficial GoPro API Library for Python - connect to GoPro cameras via WiFi. Compatibility: HERO3 HERO3+ HERO4 (including HERO Se

Konrad Iturbe 1.3k Jan 01, 2023
This Server Cloner can clone the server you want with all the perms of roles in every particular channel.

Server-Cloner-with-perms 🚀 This Server Cloner can clone the server you want with all the perms of roles in every particular channel. Features Clone C

Gripz 0 Feb 17, 2022
This is a simple unofficial async Api-wrapper for tio.run

Async-Tio This is a simple unofficial async Api-wrapper for tio.run

Tom-the-Bomb 7 Oct 28, 2022
Async wrapper over hentaichan.live

hentai-chan-api-async is a small asynchronous parser library that will allow you to easily use manga from https://hentaichan.live Recommended to use python3.7+

7 Dec 15, 2022
A collection of discord tools I've made.

Discord A collection of discord tools i've made. What's in here? Basically every discord related project i've worked on can be found here, i'll try an

?? ?? ?? 6 Nov 13, 2021
Recommended AWS CDK project structure for Python applications

Recommended AWS CDK project structure for Python applications The project implements a user management backend component that uses Amazon API Gateway,

AWS Samples 110 Jan 06, 2023
Some examples regarding how to use the Twitter APIs for academic research

Twitter Developer Platform: Using Twitter APIs for Academic Research All the scripts require a config.ini file in which the keys are put. There is a t

Federico Bianchi 6 Feb 13, 2022
And now, for the first time, you can send alerts via action from ArcSight ESM Console to the TheHive when Correlation Rules are triggered.

ArcSight Integration with TheHive And now, for the first time, you can send alerts via action from ArcSight ESM Console to the TheHive when Correlatio

Amir Hossein Zargaran 3 Jan 19, 2022
A collection of automation aids to connect various database systems into Lookout for Metrics

A collection of automation aids to connect various database systems into Lookout for Metrics

AWS Samples 3 Apr 28, 2022
A python crypto trading bot on Binance using RSI in 25 Lines 🚀

RSI Crypto Trading Bot - Binance A Crypto Trading Bot on Binance trading BTCUSDT and ETHUSDT using RSI in 25 Lines of Code Getting Started Note Python

Blankly Finance 10 Dec 26, 2022
Syrax Check User Bot Discord.py

Syrax-Check-User-Bot-Discord.py Guida Italiana il bot nasce con lo scopo di poter caricare il proprio nome utente,tag e foto profilo al forum tramite

Pippoide 0 Feb 04, 2022
A Simple and User-Friendly Google Collab Notebook with UI to transfer your data from Mega to Google Drive.

Mega to Google Drive (UI Added! 😊 ) A Simple and User-Friendly Google Collab Notebook with UI to transfer your data from Mega to Google Drive. ⚙️ How

Dr.Caduceus 18 Aug 16, 2022