: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
Telegram 聊天機器人,追蹤momo降價、重新上架

簡介 price-tracker-bot is a telegram bot that can trace the price on momoshop. 功能 降價通知 上架通知 收藏商品 清空已收藏商品 顯示目前已收藏商品 Demo Bot Telegram bot search @momo_pr

92 Dec 28, 2022
Tesseract Open Source OCR Engine (main repository)

Tesseract OCR About This package contains an OCR engine - libtesseract and a command line program - tesseract. Tesseract 4 adds a new neural net (LSTM

48.3k Jan 05, 2023
Script que envia e-mails de denúncia para desativar número de WhatsApp.

SpamReport (Alpha) Este script foi feito apenas para uso educacional, não me responsabilizo por qualquer uso indevido. Version: 1.0 Alpha Ative essa o

Kiny-Kiny 83 Dec 20, 2022
A quick way to verify your Climate Hack.AI (2022) submission locally!

Climate Hack.AI (2022) Submission Validator This repository contains code that allows you to quickly validate your Climate Hack.AI (2022) submission l

Jeremy 3 Mar 03, 2022
This package allows interactions with the BuyCoins API.

The BuyCoins Python library allows interactions with the BuyCoins API from applications written in Python.

Abdulazeez Abdulazeez Adeshina 45 May 23, 2022
Subtitle Translater

Subtitle Translater

OshadhaVimukthi 2 Nov 29, 2021
A tiktok mass account creator with undetected selenium and email verification, to bot an account

⚠️ STILL UNDER DEVELOPEMENT - v1.1-beta ⚠️ Adding PROXY ROTATION Adding EMAIL VERIFICATION Adding USERNAME COMPILER Tiktok Mass Bot Creator v1.1-beta

xtekky 11 Aug 01, 2022
Discord Auto bumper made in python, just a simple auto bumper that I made.

Discord Auto bumper made in python, just a simple auto bumper that I made.

XPTGR 0 Dec 04, 2021
Boilerplate template for the discord-py-interactions library

discord-py-interactions_boilerplate Boilerplate template for the discord-py-interactions library Currently, this boilerplate supports discord-py-inter

Ventus 7 Dec 03, 2022
I-Spy is a discord and twitter bot 🤖 that keeps a check on usage foul language, hate-speech and NSFW contents

I-Spy is a discord and twitter bot 🤖 that keeps a check on usage foul language, hate-speech and NSFW contents. It is the one stop solution to monitor your discord servers and twitter handles against

Tia Saxena 5 Nov 16, 2022
buys ethereum based on graphics card moving average price on ebay

ebay_trades buys ethereum based on graphics card moving average price on ebay Built as a meme, this application will scrape the first 3 pages of ebay

ConnorCreate 41 Jan 05, 2023
This an API wrapper library for the OpenSea API written in Python 3.

OpenSea NFT API Python 3 wrapper This an API wrapper library for the OpenSea API written in Python 3. The library provides a simplified interface to f

Attila Tóth 159 Dec 26, 2022
Discord spam bots with multiple account support and more

Discord spam bots with multiple account support and more. PLEASE READ EVERYTHING BEFORE WRITING AN ISSUE!! Server Messages Text Image Dm Messages Text

Mr. Nobody 6 Sep 14, 2022
Projeto de teste para acesso a API SWAPI.

SwapiTest Projeto de teste para acesso a API Swapi com informações sobre Star Wars. Como rodar o programa Foi utilizado o pipenv, então basta clonar o

Gabriel de Souza Alves 1 Nov 23, 2021
Solcast rooftop api for HA

Solcast Solar Home Assistant(https://www.home-assistant.io/) Component This custom component integrates the Solcast API into Home Assistant. Modified

Greg 1 Oct 11, 2021
Discord-Bot - Bot using nextcord for beginners

Discord-Bot Bot using nextcord for beginners! Requirements: 1 :- Install nextcord by typing "pip install nextcord" Thats it! You can use this code any

INFINITE_. 3 Jan 10, 2022
A Python implementation of a Youtube Subscription manager & feed viewer, also does thumbnails

BUILDING Building requires python3.10, and the build package, which can be installed via pip: python3.10 -m pip install build To install, run python3.

2 Feb 28, 2022
Бот - Гуль для твоего телеграм аккаунта

Я - Гуль (бот), теперь работает в чатах Отблагодарить автора за проделанную работу можно здесь Помощь с установкой тут Установка на Андроид После уста

57 Nov 06, 2022
just another discord bot

boredbot just another discord bot made to learn python this bots main function is to cache teams meeting links and send them right before the classes

macky 3 Sep 03, 2021
Randomly selects two teams based on who is in a voice channel on Discord

TeamPickerDiscordBot Randomly selects two teams based on who is in a voice channel on Discord What I Learned The ins and outs of Python as this was my

Brecken Enneking 2 Jan 27, 2022