User: sits    
  Date: 08/01/13 01:15:22

  Modified:    .        CHANGELOG INFO.txt codestriker.conf
               bin      install.pl
               lib/Codestriker/BugDB BugDBConnectionFactory.pm
                        BugzillaConnection.pm FlysprayConnection.pm
               lib/Codestriker/TopicListeners BugTracking.pm
  Added:       lib/Codestriker/BugDB TestDirectorConnection.pm
  Log:
  * Support for TestDirector as a supported bug tracking system.
    Submitted by [EMAIL PROTECTED]
  
  
  
  Index: CHANGELOG
  ===================================================================
  RCS file: /cvsroot/codestriker/codestriker/CHANGELOG,v
  retrieving revision 1.221
  retrieving revision 1.222
  diff -u -r1.221 -r1.222
  --- CHANGELOG 10 Jan 2008 21:48:34 -0000      1.221
  +++ CHANGELOG 13 Jan 2008 09:15:20 -0000      1.222
  @@ -16,6 +16,9 @@
   * Only require Authen::SASL as a pre-requisite if SMTP authentication
     is needed.  For some deployments, installing Authen::SASL can be
     inconvenient.
  +
  +* Support for TestDirector as a supported bug tracking system.
  +  Submitted by [EMAIL PROTECTED]
        
   Version 1.9.4
   
  
  
  
  
  
  Index: INFO.txt
  ===================================================================
  RCS file: /cvsroot/codestriker/codestriker/INFO.txt,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- INFO.txt  18 Apr 2006 10:45:39 -0000      1.8
  +++ INFO.txt  13 Jan 2008 09:15:20 -0000      1.9
  @@ -135,3 +135,6 @@
   +----------------+----------------+
   1 row in set (0.00 sec)
   
  +Subversion test, retrieve from collab win-tests.py revision 25651.
  +
  +Also do diff 25651 25653
  
  
  
  
  
  Index: codestriker.conf
  ===================================================================
  RCS file: /cvsroot/codestriker/codestriker/codestriker.conf,v
  retrieving revision 1.89
  retrieving revision 1.90
  diff -u -r1.89 -r1.90
  --- codestriker.conf  12 Jul 2007 23:39:17 -0000      1.89
  +++ codestriker.conf  13 Jan 2008 09:15:20 -0000      1.90
  @@ -55,14 +55,17 @@
   
   # Location of the cvs binary.
   #$cvs = 'c:/Program Files/GNU/WinCvs 1.3/CVSNT/cvs.exe';
  +#$cvs = 'c:/Program Files/cvsnt/cvs.exe';
   $cvs = '/usr/bin/cvs';
   
   # Location of the svn binary.
   #$svn = 'c:/Program Files/SVN/svn.exe';
  +#$svn = 'c:/Program Files/svn-win32-1.4.4/bin/svn.exe';
   $svn = '/usr/bin/svn';
   
   # Location of the ssh binary.  This is only required if a CVS :ext
   # type repository is used.
  +#$ssh='c:/Program Files/OpenSSH/bin/ssh.exe';
   $ssh = '/usr/local/bin/ssh';
   
   # Location of the p4 (Perforce client) binary.  This does not need to be set
  @@ -80,7 +83,7 @@
   # directory here that exists on the system.  For *NIX platforms, there is
   # usually no need to do anything here.
   #$tmpdir = '/tmp/codestriker';
  -#$tmpdir = 'c:/codestriker temp';
  +#$tmpdir = 'c:/temp';
   
   # If codestriker is installed differently to that described in the README 
file
   # (for example on the sourceforge servers), it may be necessary to explicitly
  @@ -103,6 +106,7 @@
   # connect to the repository.
   @valid_repositories =
       (
  +     'svn://svn.openchange.org/openchange/trunk',
        # Example CVSROOT of a CVS repository on the same machine as the
        # codestriker server.
        '/home/sits/cvs',
  @@ -112,6 +116,9 @@
        # CVSROOT of the repository.
        'http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi /cvsroot',
   
  +     # Codestriker pserver repository.
  +     
':pserver:anonymous:@codestriker.cvs.sourceforge.net:/cvsroot/codestriker',
  +
        # The next example is the syntax used for specifying a Subversion
        # repository, which is simply the subversion repository URL
        # prefixed # by svn:
  @@ -186,6 +193,7 @@
        # followed by the view name, followed by the location where the
        # view is loaded.
        # 'clearcase:dyn:viewname:/vobs'
  +     # 'clearcase:dyn:viewname:P:\\viewname'
       );
   
   # A mapping of repository URLs to names.  In any screen where a
  @@ -344,17 +352,22 @@
   # can be changed dynamically on the view topic screen.
   $default_tabwidth = 8;
   
  -# Bug database to update.  Currently, Bugzilla and Flyspray are
  -# supported, but it is straight-forward to support other bug
  +# Bug database to update.  Currently, Bugzilla, Flyspray and TestDirector
  +# are supported, but it is straight-forward to support other bug
   # databases.  To enable Bugzilla, set $bug_db to "bugzilla", and set
  -# the following parameters to your setup.  To enable Flysprat, set
  -# $bug_db to "flyspray", and set the relevant parameters.
  -# if the $bug_db is an empty string, all bug-tracking related
  -# features will be disabled.
  +# the following parameters to your setup.  To enable Flyspray, set
  +# $bug_db to "flyspray", and set the relevant parameters.  To enable
  +# TestDirectory, set $bug_db to "testdirector" and set the relevant
  +# parameters.  If the $bug_db is an empty string, all bug-tracking related
  +# features will be disabled.  To allow the association of a bug ID
  +# with a topic, without any physical connection to a bug database,
  +# set the value to "noconnection".
   
   $bug_db = '';
   #$bug_db = 'bugzilla';
   #$bug_db = 'flyspray';
  +#$bug_db = 'testdirector';
  +$bug_db = 'noconnection';
   
   # Bugzilla database connection details.
   #$bug_db_host = 'localhost';
  @@ -370,12 +383,20 @@
   #$flyspray_db_dbname = 'flyspray_dev';
   #$flyspray_db_user_id = 50;
   
  +# TestDirector connection details
  +#$testdirector_url = 'http://emea-testdir:8080/qcbin';
  +#$testdirector_user_id = 'robh';
  +#$testdirector_password = '';
  +#$testdirector_domain = 'DEFAULT';
  +#$testdirector_project = 'BPM33';
  +#$testdirector_file_list = 'BG_USER_29';
  +
   # The URL to the bug tracking system.  The bug number is appended to the
   # end of this string when URLs are generated.  This can be left blank if
   # there is no need for bug-tracking integration.  Below are some example
   # URLs for Bugzilla and Flyspray.
   $bugtracker = '';
  -#$bugtracker = 'http://localhost.localdomain/bugzilla/show_bug.cgi?id=';
  +$bugtracker = 'http://localhost.localdomain/bugzilla/show_bug.cgi?id=';
   #$bugtracker = '/flyspray_dev/?do=details&id=';
   
   # LXR database.  Each repository can be optionally mapped to a
  @@ -405,7 +426,7 @@
   # (compatible with ASCII) if not set, but this can be over-ridden here.
   # List of example encoding names can be retrieved from the following
   # URL: http://perldoc.perl.org/Encode/Supported.html.
  -#$topic_text_encoding = 'utf8';
  +$topic_text_encoding = 'utf8';
   #$topic_text_encoding = 'gb2312';
   
   # Each comment thread (or issue) that is created against a specific
  
  
  
  
  
  Index: install.pl
  ===================================================================
  RCS file: /cvsroot/codestriker/codestriker/bin/install.pl,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- install.pl        13 Jan 2008 04:25:33 -0000      1.14
  +++ install.pl        13 Jan 2008 09:15:21 -0000      1.15
  @@ -131,6 +131,13 @@
       push @{$modules}, { name => 'Authen::SASL', version => '0' };
   }
   
  +# Check if TestDirector is being used, and if so, ensure the required
  +# modules are loaded.
  +if (defined $Codestriker::bug_db &&
  +    $Codestriker::bug_db eq 'testdirector') {
  +    push @{$modules}, { name => 'Win32::OLE', version => '0' };
  +}
  +
   # Check for various character encoding modules that are required.
   if (defined $Codestriker::topic_text_encoding) {
       if ($Codestriker::topic_text_encoding =~ /euc\-cn|gb2312|hz|gbk/) {
  
  
  
  
  
  Index: BugDBConnectionFactory.pm
  ===================================================================
  RCS file: 
/cvsroot/codestriker/codestriker/lib/Codestriker/BugDB/BugDBConnectionFactory.pm,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BugDBConnectionFactory.pm 25 Aug 2007 09:11:07 -0000      1.4
  +++ BugDBConnectionFactory.pm 13 Jan 2008 09:15:21 -0000      1.5
  @@ -13,6 +13,7 @@
   use Codestriker::BugDB::BugzillaConnection;
   use Codestriker::BugDB::FlysprayConnection;
   use Codestriker::BugDB::NoConnection;
  +use Codestriker::BugDB::TestDirectorConnection;
   
   # Factory method for retrieving a BugDBConnection object.
   sub getBugDBConnection ($) {
  @@ -23,6 +24,8 @@
        return Codestriker::BugDB::BugzillaConnection->get_connection();
       } elsif ($dbtype eq "flyspray") {
        return Codestriker::BugDB::FlysprayConnection->get_connection();
  +    } elsif ($dbtype eq "testdirector") {
  +     return Codestriker::BugDB::TestDirectorConnection->get_connection();
       } elsif ($dbtype =~ /^noconnect/) {
        return Codestriker::BugDB::NoConnection->get_connection();
       } else {
  
  
  
  
  
  Index: BugzillaConnection.pm
  ===================================================================
  RCS file: 
/cvsroot/codestriker/codestriker/lib/Codestriker/BugDB/BugzillaConnection.pm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BugzillaConnection.pm     16 Jan 2006 21:22:58 -0000      1.5
  +++ BugzillaConnection.pm     13 Jan 2008 09:15:22 -0000      1.6
  @@ -46,7 +46,7 @@
   # Method for updating the bug with information that a code review has been
   # created/closed/committed against this bug.
   sub update_bug($$$$) {
  -    my ($self, $bugid, $comment) = @_;
  +    my ($self, $bugid, $comment, $topic_url) = @_;
   
       # Create the necessary prepared statements.
       my $insert_comment =
  
  
  
  
  
  Index: FlysprayConnection.pm
  ===================================================================
  RCS file: 
/cvsroot/codestriker/codestriker/lib/Codestriker/BugDB/FlysprayConnection.pm,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FlysprayConnection.pm     22 Jan 2006 22:47:14 -0000      1.4
  +++ FlysprayConnection.pm     13 Jan 2008 09:15:22 -0000      1.5
  @@ -47,7 +47,7 @@
   # Method for updating the bug with information that a code review has been
   # created/closed/committed against this bug.
   sub update_bug($$$$) {
  -    my ($self, $bugid, $comment) = @_;
  +    my ($self, $bugid, $comment, $topic_url) = @_;
   
       # Create the necessary prepared statements.
       my $insert_comment =
  
  
  
  
  
  Index: TestDirectorConnection.pm
  ===================================================================
  RCS file: TestDirectorConnection.pm
  diff -N TestDirectorConnection.pm
  --- /dev/null 1 Jan 1970 00:00:00 -0000
  +++ TestDirectorConnection.pm 13 Jan 2008 09:15:22 -0000      1.1
  @@ -0,0 +1,108 @@
  
+###############################################################################
  +# Codestriker: Copyright (c) 2001, 2002 David Sitsky.  All rights reserved.
  +# [EMAIL PROTECTED]
  +#
  +# This program is free software; you can redistribute it and modify it under
  +# the terms of the GPL.
  +
  +# TestDirector connection class, for appending comments to a bug report.
  +
  +package Codestriker::BugDB::TestDirectorConnection;
  +
  +use strict;
  +
  +use Win32::OLE;
  +
  +# Static method for building a database connection.
  +sub get_connection($) {
  +    my ($type) = @_;
  +
  +    # Return a connection with Test Director via the TD Object.
  +    my $self = {};
  +    eval 'use Win32::OLE';
  +    die "Unable to load Win32::OLE module: [EMAIL PROTECTED]" if $@;
  +    my $conn = Win32::OLE->new('TDapiole80.TDconnection');
  +
  +    if (!$conn) {
  +     die "Cannot start TestDirector object";
  +    }
  +
  +    # Connect to specified server. 
  +    $conn->InitConnectionEx($Codestriker::testdirector_url);
  +
  +    # Connect to specified project.
  +    $conn->Login($Codestriker::testdirector_user_id,
  +              $Codestriker::testdirector_password); 
  +    $conn->Connect($Codestriker::testdirector_domain,
  +                $Codestriker::testdirector_project); 
  +
  +    $self->{dbh} = $conn;
  +    bless $self, $type;
  +}
  +
  +# Method for releasing a Test Director connection.
  +sub release_connection($) {
  +    my ($self) = @_;
  +    
  +    # Close the TD connection. 
  +    # Disconnect the project and release the server.
  +    $self->{dbh}->Disconnect();
  +    $self->{dbh}->Logout();
  +    $self->{dbh}->ReleaseConnection();
  +}
  +
  +# Retrieve the specified bug record.
  +sub _retrieve_bug_record {
  +    my ($self, $bugid) = @_;
  +
  +    if (! defined $self->{dbh}->bugfactory) {
  +     die "Unable to retrieve bug factory object";
  +    }
  +
  +    return $self->{dbh}->bugfactory->item($bugid);
  +}
  +
  +# Return true if the specified bugid exists in the bug database,
  +# false otherwise.
  +sub bugid_exists($$) {
  +    my ($self, $bugid) = @_;
  +    
  +    my $bug = $self->_retrieve_bug_record($bugid);
  +    return defined $bug;
  +}
  +
  +# Method for updating the bug with information that a code review has been
  +# created/closed/committed against this bug.
  +sub update_bug($$$$) {
  +    my ($self, $bugid, $comment, $topic_url) = @_;
  +
  +    # Now get the bug out of Test Director.
  +    my $bug = $self->_retrieve_bug_record($bugid);
  +
  +    # Test director stores comments as html so convert the comment to html.
  +    my $parsed_comment = $comment;
  +    $parsed_comment =~ s/\n/<BR>/g;
  +    
  +    my $full_comment = "";
  +    $full_comment .= "\n<HTML><BODY>\n";
  +    $full_comment .= "<font color=\"\#000080\">";
  +    $full_comment .= "<b>Code Review, &nbsp;";
  +    $full_comment .= localtime;
  +    $full_comment .= ":</b></font><BR>";
  +    $full_comment .= $parsed_comment;
  +    $full_comment .= "</BODY></HTML>\n";
  +
  +    if (defined $bug->Attachments) {
  +        my $attach = $bug->Attachments->AddItem([$topic_url,
  +                                              "TDATT_INTERNET",
  +                                              $full_comment]);
  +        $attach->post();
  +    }
  +    else
  +    {
  +        $$bug{"BG_DEV_COMMENTS"} .= $full_comment;
  +        $bug->post();
  +    }
  +}
  +
  +1;
  
  
  
  
  
  Index: BugTracking.pm
  ===================================================================
  RCS file: 
/cvsroot/codestriker/codestriker/lib/Codestriker/TopicListeners/BugTracking.pm,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BugTracking.pm    11 Jun 2006 07:54:01 -0000      1.4
  +++ BugTracking.pm    13 Jan 2008 09:15:22 -0000      1.5
  @@ -70,7 +70,7 @@
               "Description:\n" . "$topic->{description}\n"; 
               
        for (my $i = 0; $i <= $#ids; $i++) {
  -         $bug_db_connection->update_bug($ids[$i], $text);
  +         $bug_db_connection->update_bug($ids[$i], $text, $topic_url);
        }
        $bug_db_connection->release_connection();
       }
  @@ -124,7 +124,7 @@
            "State changed to \"$newstate\" by $user\n";
               
        for (my $i = 0; $i <= $#ids; $i++) {
  -         $bug_db_connection->update_bug($ids[$i], $text);
  +         $bug_db_connection->update_bug($ids[$i], $text, $topic_url);
        }
        $bug_db_connection->release_connection();
       }
  
  
  

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Codestriker-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/codestriker-commits

Reply via email to