woob.capabilities.bugtracker

exception IssueError[source]

Bases: UserError

Raised when there is an error with an issue.

class Project(id, name, url=None)[source]

Bases: BaseObject

Represents a project.

Variables:
  • url – (str) url

  • name – (str) Name of the project

  • members – (list) Members of projects

  • versions – (list) List of versions available for this project

  • trackers – (list) All trackers

  • categories – (list) All categories

  • statuses – (list) Available statuses for issues

  • priorities – (list) Available priorities for issues

  • tags – (tuple, list) All tags

  • fields – (list) Custom fields names

find_user(id, name)[source]

Find a user from its ID.

If not found, create a User with the specified name.

Parameters:
  • id (str) – ID of user

  • name (str) – Name of user

Return type:

User

find_version(id, name)[source]

Find a version from an ID.

If not found, create a Version with the specified name.

Parameters:
  • id (str) – ID of version

  • name (str) – Name of version

Return type:

Version

find_status(name)[source]

Find a status from a name.

Parameters:

name (str) – Name of status

Return type:

Status

class User(id, name, url=None)[source]

Bases: BaseObject

User.

Variables:
  • url – (str) url

  • name – (str) Name of user

class Version(id, name, url=None)[source]

Bases: BaseObject

Version of a project.

Variables:
  • url – (str) url

  • name – (str) Name of version

class Status(id, name, value, url=None)[source]

Bases: BaseObject

Status of an issue.

VALUE_ constants are the primary status types.

Variables:
  • url – (str) url

  • name – (str) Name of status

  • value – (int) Value of status (constants VALUE_*)

VALUE_NEW = 0
VALUE_PROGRESS = 1
VALUE_RESOLVED = 2
VALUE_REJECTED = 3
class Attachment(id='', url=NotLoaded, backend=None)[source]

Bases: BaseObject

Attachment of an issue.

Variables:
  • url – (str) url

  • filename – (str) Filename

class Change(id='', url=NotLoaded, backend=None)[source]

Bases: BaseObject

A change of an update.

Variables:
  • url – (str) url

  • field – (str) What field has been changed

  • last – (str) Last value of field

  • new – (str) New value of field

class Update(id='', url=NotLoaded, backend=None)[source]

Bases: BaseObject

Represents an update of an issue.

Variables:
  • url – (str) url

  • author – (User) Author of update

  • date – (date, datetime) Date of update

  • hours – (timedelta) Time activity

  • message – (str) Log message

  • attachments – (list, tuple) Files attached to update

  • changes – (list, tuple) List of changes

class Issue(id='', url=NotLoaded, backend=None)[source]

Bases: BaseObject

Represents an issue.

Variables:
  • url – (str) url

  • project – (Project) Project of this issue

  • title – (str) Title of issue

  • body – (str) Text of issue

  • creation – (date, datetime) Date when this issue has been created

  • updated – (date, datetime) Date when this issue has been updated for the last time

  • start – (date, datetime) Date when this issue starts

  • due – (date, datetime) Date when this issue is due for

  • attachments – (list, tuple) List of attached files

  • history – (list, tuple) History of updates

  • author – (User) Author of this issue

  • assignee – (User) User assigned to this issue

  • tracker – (str) Name of the tracker

  • category – (str) Name of the category

  • version – (Version) Target version of this issue

  • status – (Status) Status of this issue

  • fields – (dict) Custom fields (key,value)

  • priority – (str) Priority of the issue

  • tags – (tuple, list) Categories/Tags of the issue

  • related_issues – (list) Related issues

class Query(id='', url=None)[source]

Bases: BaseObject

Query to find an issue.

Variables:
  • url – (str) url

  • project – (str, str, Project) Filter on projects

  • title – (str) Filter on titles

  • author – (str, User) Filter on authors

  • assignee – (str, User) Filter on assignees

  • version – (str, Version) Filter on versions

  • category – (str) Filter on categories

  • status – (str, Status) Filter on statuses

  • tags – (tuple, list) Filter on tags

  • fields – (dict) Filter on custom fields

class CapBugTracker[source]

Bases: Capability

Bug trackers websites.

SORT_RELEVANCE = 0
SORT_RATING = 1
SORT_PRIORITY = 2
SORT_DATE = 3
iter_issues(query, sortby=SORT_RELEVANCE, ascending=False)[source]

Iter issues with optionnal patterns.

Parameters:

query (Query) – query

Return type:

iter[Issue]

get_issue(id)[source]

Get an issue from its ID.

Parameters:

id – ID of issue

Return type:

Issue

create_issue(project)[source]

Create an empty issue on the given project.

Parameters:

project (Project) – project

Returns:

the created issue

Return type:

Issue

post_issue(issue)[source]

Post an issue to create or update it.

Parameters:

issue (Issue) – issue to create or update

update_issue(issue, update)[source]

Add an update to an issue.

Parameters:
  • issue (Issue) – issue or id of issue

  • update (Update) – an Update object

remove_issue(issue)[source]

Remove an issue.

Parameters:

issue (Issue) – issue

iter_projects()[source]

Iter projects.

Return type:

iter[Project]

get_project(id)[source]

Get a project from its ID.

Return type:

Project