stable maintained Build Status


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

Plugins can be written to deal with specific bugzilla installations.

Example (API)

Client API

require 'bicho'

server ='')
server.get_bugs(127043).each do |bug|
  puts bug.summary
  puts bug.url

  puts bug.history

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) => [....]

ActiveRecord-like API

To use the ActiveRecord like interface over the +Bug+ class, you need first to set the Bicho common client:

require 'bicho'

Bicho.client ='')

Bicho::Bug.where(product: 'vala', status: 'resolved').each do |bug|
  # .. do something with bug

Or alternatively:

Bicho::Bug.where.product('vala').status('resolved').each do |bug|
  # .. do something with bug

Example (CLI)

bicho -b 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:[email protected]' 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.

default: mysite

Extending Bicho


Plugins are classes in the module Bicho::Plugins. They can implement hooks that are called at different points of execution.

  • default_site_url_hook

If no site url is provided the last one provided by a plugin will be used.

  • transform_site_url_hook

This hook is called to modify the main site url (eg: 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.

  • transform_api_url_hook

The API url is derived from the site url, however some bugzilla installations may have different servers or endpoints.

  • transform_xmlrpc_client_hook

This hook allows to modify the XMLRPC::Client object.


See the +Command+ class to implement more commands.

Known issues


  • Define the plugin hooks, right now there is one :-)
  • Shortcuts for the bugzilla URL (bicho -b bko search ..), a plugin?



Copyright (c) 2011-2015 SUSE LLC

Bicho is licensed under the MIT license. See MIT-LICENSE for details.