Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 2.04 KB

contributing.textile

File metadata and controls

43 lines (33 loc) · 2.04 KB
layout title
default
Extending

Contributing

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.

VCS

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

  1. Provide a user—displayed VCS name
    NAME = "My VCS"
  2. Provide a database—safe vcs name
    VALUE = "my_vcs"
  3. When overriding the initializer, call super(source, branch) to set basic values
  4. Implement the #head_info instance method which should return an array of two elements [info, command]
    • infoHash of fetched commit data:
      • :commit — commit hash
      • :author — commit author
      • :email — commit email
      • :committed_atTime object indicating time commit was created
      • :commit_message — commit message
    • commandString with shell command used to get data
  5. Implement #clone(where_to) instance method which should clone the repository to a directory specified by where_to. The directory may have to be created

Hooks

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.

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

  1. 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)