FishEye and Crucible Plugin Guide
FishEye and Crucible use the standard Atlassian Plugin Framework, so your first step should be to understand how to use the Atlassian Plugin SDK. After you understand the process of developing with the Atlassian Plugin SDK, you need to understand the specifics of developing plugins for FishEye and Crucible.
To get started, you can follow a few tutorials. You will also need to understand the plugin module types that FishEye/Crucible supports and the REST and Java APIs which plugins use to access Fisheye/Crucible.
What do you want to do?If you have an idea for making FishEye/Crucible more useful to you, then this page helps you decide how to do it. You can translate your requirements into a set of software components you will need to write.
Look through the list of use cases below and find those that best match yours.
Report on data in FishEye/Crucible
If you want to display the report in FishEye/Crucible, you can write a Servlet Plugin Module. If you are using an external reporting tool you can write a REST Client to extract the data. You can't access data in FishEye/Crucible via SQL – if you want to use an SQL based tool you'll need to extract data via a REST Client and insert it into your reporting database.
Pull data from FishEye/Crucible into my application
You should write a REST Client to do this. If you needed to use another protocol, you could write a Servlet Plugin Module and implement the protocol yourself. If you need to process the data before your application asks for (perhaps you just want to transfer a summary) you can write a REST module to provide a different interface to that provided by the standard FishEye/Crucible REST interface.
Have FishEye/Crucible push data to my application
You can write an Event Listener Module which will be called when something happens (e.g. FishEye indexes a new change set, or a user completes a review). These can make an HTTP request to your application, update your database or open a socket to your application.
Create reviews of files in a type of Source Control System which FishEye/Crucible doesn't support
You can write an SCM Module to allow Crucible to see the directory structure and history of another revision control system. This doesn't provide all the features FishEye has, but it does allow you to perform code reviews. You can also create reviews from other Source Control Systems without writing a plugin by creating patch file reviews, manually via the UI or via the REST interface.
Tell my application when a Crucible review changes state.
You can write an Event Listener Module and have it contact your application when it sees a state change event.
Use FishEye/Crucible from an OpenSocial container
Show information from my application in the FishEye/Crucible UI
You can add your own pages to FishEye/Crucible by writing a Servlet Plugin which renders a Velocity template. Your page will be decorated by FishEye/Crucible so that it has the correct headers and footers. You use Web Item Module Type to place links to your page on existing FishEye/Crucible pages. These links can pass parameters to your page, so, for instance, you can have a link on the file history page which passes the path of the file being viewed to your page.
Add more annotations to the FishEye/Crucible Source View
You can write a Gutter Renderer Module to provide extra information for each line of source code displayed on the annotated file page.
Where can I find more information?
Other resources for FishEye and Crucible plugin developers: