A Maven plugin to do administration on Bugzilla products remotely.

This plugin allows to run the following tasks from a command shell:

  1. Add a Bugzilla product based on a Maven POM
  2. Update a Bugzilla product based on a Maven POM
  3. Add a milestone
  4. Add a version

Currently we do not plan to extend the set of commands to cover changing bug information since this can be done very conveniently with Mylyn via Eclipse from the developer's workstation.

For more information on the capabilities have a look at the details or go to the usage or best practices page.

Experimental!

This is an experimental release with some restrictions. It has been tested with Bugzilla 4.2 (should work on 3.6+) with classifications and milestones activated.

Failure handling is very crude. The returned page is checked for an expected title. You may scan the page titles printed with the return codes to get a clue what went wrong. The response pages may also be dumped to the console with -Dverbose=TRACE.

The following shows an error message:

[ERROR] ==> 200: OK (200): Log in to Bugzilla DIFFERS from
 expected: Milestone Created or Milestone Already Exists

This tells you that a page has been successfully received (200: OK (200)) and the title displays Log in to Bugzilla. This title differs from the expected title Milestone Created or Milestone Already Exists. This signals, that the login was not successful.

Also note that there is no rollback if a transaction fails. A manual clean-up on the server is required.

Single Project

The following screenshot shows information pushed form the POM to Bugzilla for a single project. Per default a single artificial component named @Product is created. But you are free to use your own components description as shown below (using bugzilla-default-components-smartics):

The following POM shows only the parts relevant to the plugin:

<project>
  <groupId>de.smartics.test</groupId>
  <artifactId>single-project</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <description>A test project with no submodules.</description>

  <issueManagement>
    <system>bugzilla</system>
    <url>http://my-bugzilla.mycorp.com</url>
  </issueManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>de.smartics.maven.plugin</groupId>
          <artifactId>bugzilla-maven-plugin</artifactId>
          <version>0.7.0</version>
          <dependencies>
            <dependency>
              <groupId>de.smartics.config</groupId>
              <artifactId>bugzilla-default-components-smartics</artifactId>
              <version>1.0.1</version>
            </dependency>
          </dependencies>
          <configuration>
            <classification>Unclassified</classification>
            <initialOwner>em@mycorp.com</initialOwner>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

Multi-Module Project

The following screenshot shows information pushed form the POM to Bugzilla for a multi-module project.

The following POMs shows only the parts relevant to the plugin:

<project>
  <groupId>de.smartics.test</groupId>
  <artifactId>multi-module-project</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <description>A test project with submodules.</description>

  <issueManagement>
    <system>bugzilla</system>
    <url>http://my-bugzilla.mycorp.com</url>
  </issueManagement>

  <modules>
    <module>sub-a-project</module>
    <module>sub-b-project</module>
  </modules>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>de.smartics.maven.plugin</groupId>
          <artifactId>bugzilla-maven-plugin</artifactId>
          <version>0.7.0</version>
          <configuration>
            <classification>Unclassified</classification>
            <initialOwner>em@mycorp.com</initialOwner>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
<project>
  <parent>
    <groupId>de.smartics.test</groupId>
    <artifactId>multi-module-project</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>

  <artifactId>sub-a-project</artifactId>

  <description>The test submodule A.</description>
</project>
<project>
  <parent>
    <groupId>de.smartics.test</groupId>
    <artifactId>multi-module-project</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>

  <artifactId>sub-b-project</artifactId>

  <description>The test submodule.</description>
</project>