Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bestpractical/rt-integration-versioncontrol
https://github.com/bestpractical/rt-integration-versioncontrol
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bestpractical/rt-integration-versioncontrol
- Owner: bestpractical
- Created: 2013-05-27T06:03:28.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-08-31T00:35:45.000Z (over 11 years ago)
- Last Synced: 2023-04-13T18:31:29.804Z (over 1 year ago)
- Language: Perl
- Homepage: http://metacpan.org/release/rt-integration-versioncontrol
- Size: 152 KB
- Stars: 1
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- Changelog: Changes
Awesome Lists containing this project
README
This tool allows an RT 3.x instance to integrate with a Subversion revision
control system.To install the package in your RT instance, run the following commands:
perl Makefile.PL
make installTo configure your subversion server to talk to an RT instance, you'll need
to do a bit of setup.In your RT::SiteConfig, set up the following variables:
Set($PathToSvn, '/usr/bin/svn'); # or wherever your svn(1) binary lives
Set($SvnRepository, 'http://svn.example.org/repository/');
# or
Set($SvnRepository, 'svn://svn.example.org/repository/');If you do not wish to use the extension's URI-handling capabilities,
remove /opt/rt3/local/lib/RT/URI/svn.pmMost svn:// URIs look like
svn://svn.example.com/path/to/repository/@1234This extension will assume that this means the Web view of the revision
lives at:
http://svn.example.com/cgi-bin/index.cgi/path/to/repository/?rev=1234
(this is where SVN::Web puts it).If you aren't using SVN::Web or if your view lives elsewhere, you need
to add the following line to RT::SiteConfig:Set( $SvnRepositoryWebView, 'http://svn.example.com/path/to/?rev=');
The correct revision number will be appended.
You also need to add a "post-commit" hook to your svn repository
so that it knows how to talk to RT. Basically, it does a simple
HTTP "GET" request to tell RT to query the svn server for an update.
We use this provoked poll method so that RT doesn't need to trust
arbitrary incoming pings. RT is careful to only apply each commit
once.Create a _privileged_ RT user for the svn integration to use. It doesn't matter
if that user has no specific rights; they just need to be able to log into RT's
web interface.Add the following line (assuming you use curl) to your repository's
hooks/post-commit script:curl "http://rt.example.org/SVN/PullUpdate.html?user=guest&pass=guest&rev=$REV" &
To tell RT which ticket a commit is associated with, put an RT-Ticket:
line in your commit message. if there's no RT-Ticket: line, rt will
ignore the commit message. If you put "rtname#" before the ticket id, RT
instances whose rtnames don't match what you've put in will act as if they
haven't seen a ticket id. This can be useful if you use svk to move subversion
commits between repositories and want to track commit history across multiple
RT instances.The other recognized commands are RT-Status and RT-Update. RT-Action
is an alias for RT-Update, if preferred. Commands are
case-insensitive and may occur in any order, at any point in the
commit message.A couple simple examples:
=====cut here======
RT-Ticket: fsck.com#123
RT-Ticket: elixus.org#1525
RT-Ticket: openfoundry.org#2113
RT-Status: resolved
RT-Update: commentThis is a simple comment.
======cut here=======
OR
======cut here=======
RT-Ticket: 123
RT-Status: open
RT-Update: correspondWe've commmited a fix to your problem. Is it fixed in -HEAD?
======cut here=======