Right now contributing to Huginn while keeping your personal changes private is somewhat difficult.
You can fork Huginn and then make a private remote of the fork, but pushing changes from the private duplicate is difficult without leaking your personal configuration, unless you're very careful about how you structure your branches.
Should we move all configuration into a single .gitignored YAML file? Or would it be better if this was a Rails engine?
Hey, here's my (two-part) suggestion:
Move all environment variables into a YAML or Ruby file in the config folder. Add the actual file to .gitignore but include a copy of it in git, called huginn.yml.example, so that people can make their own.
Change the example YAML file to an ERB template for the file, and use a Thor script to populate this template. Thor's got some great actions (like ask) that make it super easy to generate command prompts (imagine sound card configuration circa 1992 video games).
One more thing: if you really want to get MVC with it, make a HuginnConfigurator class that can both write out to a configuration file AND read from an existing configuration file, so that if you run the setup task again the default values are pulled from your current config.
I think this is the right direction. Do you know of any examples of Rails apps that are configured in this way?
We used to do something like this at my FT job for our developer tools (now all of are environments are provisioned using Vagrant and Chef). I think .gitignoring your environment specific yml files (even database.yml) is a pretty standard thing to do.