Closed Bug 774141 Opened 8 years ago Closed 6 years ago

Add generic Bugzilla Python client API

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: gps, Assigned: BYK)

References

(Blocks 3 open bugs)

Details

(Whiteboard: [mach])

Per email discussions, we want to check a unified and generic Bugzilla client API written in Python into mozilla-central. This bug will track getting that landed. Feel free to move to whatever component is appropriate.
Blocks: 774149
Blocks: 774150
So there are several tools already written in python that have significant overlap.  See http://k0s.org/toolbox/?usage=bugzilla&language=python  IMHO, doing this right == making a best of breed that hopefully existing projects can start to use, not just yet-another-...

While I'm not familiar with all of these, but I can say the following seem to have implemented some of what is needed:

* http://hg.mozilla.org/users/mozilla_kewis.ch/hg-bugzilla/
* http://k0s.org/mozilla/hg/bzconsole 
* http://hg.mozilla.org/users/tmielczarek_mozilla.com/bzexport/
* https://github.com/LegNeato/bztools
* https://github.com/toolness/pybugzilla
* http://hg.mozilla.org/users/robarnold_cmu.edu/qimportbz

It'd be nice to move towards a single officially maintained library and maybe some front-end so that we can replace proliferation with innovation
(In reply to Jeff Hammel [:jhammel] from comment #1)
> It'd be nice to move towards a single officially maintained library and
> maybe some front-end so that we can replace proliferation with innovation

Definitely. I believe this is more or less what we discussed in our offline email thread.
Assignee: nobody → madbyk
We're on it with Berker Peksag. Will take some time but we'll do it! =)
I'm not sure how far you've gotten with this to date, but I came across https://github.com/toolness/pybugzilla while trawling through github. It could be a good project to expand upon.
(In reply to Josh Matthews [:jdm] from comment #4)
> I'm not sure how far you've gotten with this to date, but I came across
> https://github.com/toolness/pybugzilla while trawling through github. It
> could be a good project to expand upon.

Yep, this was mentioned in comment 1. I'd really like to see the several very similar libraries here combined to be a unified best of breed mozilla-official python client lib
Work is underway here: https://github.com/berkerpeksag/pyresto/tree/bugzilla (anyone is welcome to contribute). The main work is happening on https://github.com/berkerpeksag/pyresto/blob/bugzilla/pyresto/apis/bugzilla/models.py

Read-only API is around the corner and we hope to bring modification actions available soon after that.
Status: NEW → ASSIGNED
Read-only api finished: https://github.com/BYK/pyresto/tree/master/pyresto/apis/bugzilla

Comments are welcome. Work continues for modify actions.
Status: ASSIGNED → NEW
The end-user API is so clean \o/

I haven't dug into the core of pyresto yet. Looks like a very handy library! I love how it hides transport details from the end user. This is exactly what a client library should look like!
Agreed! I'm super pumped about what's already there so far.
Status: NEW → ASSIGNED
This is still underway. Just wanted to give a heartbeat. Now we are in the process of adding unit tests(https://github.com/BYK/pyresto/pull/41) and mutation support to the whole API(https://github.com/BYK/pyresto/pull/40). Open to any contributions and/or feedback!
https://github.com/rail/build-autoland/blob/v2/autoland/bugzilla.py is a better version of the last comment.
Blocks: 1003236
See Also: → 990765
David Burns created a package: http://www.theautomatedtester.co.uk/blog/2014/introducing-bugsy-client-library-for-interacting-with-bugzilla.html

It looks very similar to one I started a few months back when writing a very simple Bugzilla crawler: https://bitbucket.org/indygreg/python-bzrest/src

I vote for Bugsy being the future.
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → WORKSFORME
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.