SVN::Notify::Filter::EmailFlatFileDB - Converts account names to email address based on a flat-file database
This is intended to work with SVN::Notify, as part of a subversion post-commit hook.
svnnotify --repos-path "$1" --revision "$2" ..etc.. \ --filter EmailFlatFileDB \ --account_file /x/x/x/users.db \ --account_field 3 with a text file like other UNIX/Apache password files: user1:xxx:xxx:email@example.com user2:xxx:xxx:firstname.lastname@example.org
This module is a filter for SVN::Notify, which will translate user account names (e.g. "user1") into email address. It does this based on a colon-separated file, like a UNIX passwd file (or more usefully) the AuthUserFile used by Apache. The file path is specified via the --account_file option to the svnnotify script, and the index (zero-based) of the email field is specified via the --account_field option.
You can use the module in conjunction with SVN::Notify::Filter::AuthZEmail to completely remove the necessity of passing in --from and --to options to the script. (AuthZEmail will determine the account names for the email recipients, and this module will translate the account names into email addresses.)
(This module will remove --to entries that are empty.)
SVN::Notify filter callback function for the "from" email address. By default, SVN::Notify uses the account name of the commit author. This will translate that into the email address, based upon the value in the database file. Note that the svnnotify --from option can also be used to override the default SVN::Notify behavior, and this filter will not modify an email address if it is passed in.
SVN::Notify filter callback function to determine the email addresses for the email recipients, based upon account names passed to SVN::Notify.
Account names will be looked up via the flat-file database, but any email addresses passed in will not be modified. This allows one to enter either account names or email address via the svnnotify --to options. Email addresses are distinguished from account names if there is an '@' in the string. Empty string account names will be discarded. (The SVN::Notify object requires a --to argument, and an empty string account name is a workaround for that, for filters that completely provide the recipient list.)
<jborlik at earthlink.net>
Please report any bugs or feature requests to
bug-svn-notify-filter-emailflatfiledb at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SVN-Notify-Filter-EmailFlatFileDB. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
You can also look for information at:
Thanks to David E. Wheeler for SVN::Notify, a very useful tool for Subversion.
Copyright 2008 Jeffrey Borlik, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.