Library to access bugzilla and command line tool.
Its main goal is to be clean and provide a command line tool that exposes its features.
Main use case is report generation, therefore only the following features are implemented right now:
- get bugs
- search bugs (create queries)
Plugins can be written to deal with specific bugzilla installations.
Additionally, some utilities are provided, like exporting the total number of bugs of a query to the Prometheus push gateway format.
require 'bicho' server = Bicho::Client.new('http://bugzilla.gnome.org') server.get_bugs(127043).each do |bug| puts bug.summary puts bug.url puts bug.history end
You can give more than one bug or a named query, or both:
server.get_bugs(127043, 432423) => [....] server.get_bugs("Named list") => [....] server.get_bugs("Named list", 4423443) => [....]
To use the ActiveRecord like interface over the +Bug+ class, you need first to set the Bicho common client:
require 'bicho' Bicho.client = Bicho::Client.new('https://bugzilla.gnome.org') Bicho::Bug.where(product: 'vala', status: 'resolved').each do |bug| # .. do something with bug end
Bicho::Bug.where.product('vala').status('resolved').each do |bug| # .. do something with bug end
bicho -b http://bugzilla.gnome.org show 127043 bicho -b gnome history 127043 bicho -b gnome search --summary "crash" bicho -b gnome search --help
For SUSE/Novell Bugzilla, a plugin loads the credentials from '~/.oscrc'.
Otherwise, use the 'username:password@' part of the API URL.
Customizing Bicho: the user.rb plugin.
Plugins are included that provide shortcuts for the most common bugzilla sites.
There is a "user" plugin that does some of these shortcuts from a configuration file.
The settings are read from '.config/bicho/config.yml'. There you can specify the default bugzilla site to use when none is specified and custom aliases.
aliases: mysite: http://bugzilla.site.com default: mysite
Plugins are classes in the module Bicho::Plugins. They can implement hooks that are called at different points of execution.
If no site url is provided the last one provided by a plugin will be used.
This hook is called to modify the main site url (eg: http://bugzilla.suse.com). Use it when a plugin wants to provide an alternative url to a well-known bugzilla or a shortcut (eg: bnc) that will be expanded into a site url. Plugin order is not defined so make sure your plugin focuses in one type of shortcut as another plugin can also change your returned value in their hooks.
The API url is derived from the site url, however some bugzilla installations may have different servers or endpoints.
This hook allows to modify the
See the +Command+ class to implement more commands.
- For now bugs respond to the bugs attributtes described in http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bug.html, I intend to make those real attributes.
- There is no check if an API is supported on the server side
- Define the plugin hooks, right now there is one :-)
- Shortcuts for the bugzilla URL (bicho -b bko search ..), a plugin?
- Duncan Mac-Vicar P. firstname.lastname@example.org
Copyright (c) 2011-2015 SUSE LLC
Bicho is licensed under the MIT license. See MIT-LICENSE for details.