layout | title |
---|---|
default |
Extending |
The source code of BigTuna is available on Github. If you have any ideas for features and/or patches or would somehow like to contribute, go ahead, fork it, implement (write tests!) and send us a pull request. We will gladly merge it.
We now support Git and Mercurial VCSes out of the box, but it takes very little effort to write your own vcs support. Please see extras/big_tuna/vcs/
, write your own handler and send us a pull request on Github
- Provide a user—displayed VCS name
NAME = "My VCS"
- Provide a database—safe vcs name
VALUE = "my_vcs"
- When overriding the initializer, call
super(source, branch)
to set basic values - Implement the
#head_info
instance method which should return an array of two elements[info, command]
info
—Hash
of fetched commit data::commit
— commit hash:author
— commit author:email
— commit email:committed_at
—Time
object indicating time commit was created:commit_message
— commit message
command
—String
with shell command used to get data
- Implement
#clone(where_to)
instance method which should clone the repository to a directory specified bywhere_to
. The directory may have to be created
Currently there is a Mailer
and xmpp
hook for you. If you want support for custom services please check extras/big_tuna/hooks/
and create a new hook based on existing hooks.
- Provide a unique database—safe hook name
NAME = "mailer"
If your hook requires configuration you can create hooks/NAME/_form.html.haml
partial with various config fields. Those fields should have their names set to configuration[field_name]
. They will be stored as Hash in hook config.
- Define methods you need
build_passed(build, config)
build_fixed(build, config)
build_still_fails(build, config)
build_finished(build, config)
build_failed(build, config)