Skip to content
ruby Bugzilla access library
Latest commit d6802d1 Mar 14, 2016 @dmacvicar close fence
Failed to load latest commit information.
bin implement a plugin that reads defaults and aliases from a config file Dec 19, 2014
lib Merge pull request #13 from mvidner/show-format May 20, 2015
.gitignore Ignore editor backups Sep 26, 2011
.rubocop.yml add rubocop todo Dec 19, 2014
Gemfile rubocop cleanup Nov 26, 2014
MIT-LICENSE this file belongs to the top level Aug 8, 2011
bicho.gemspec add license to gemspec May 20, 2015


stable maintained


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: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.

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.


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.

Something went wrong with that request. Please try again.