3 =head1 NAME $RCSfile: JIRAUtils.pm,v $
5 Some shared functions dealing with JIRA
13 Andrew DeFaria <Andrew@ClearSCM.com>
21 Fri Mar 12 10:17:44 PST 2004
25 $Date: 2013/05/30 15:48:06 $
31 The following routines are exported:
49 our $VERSION = '$Revision: 1.0 $';
50 ($VERSION) = ($VERSION =~ /\$Revision: (.*) /);
52 my $confluenceConf = $ENV{CONFLUENCE_CONF} || dirname (__FILE__) . '../etc/confluence.conf';
54 my %OPTS = GetConfig $confluenceConf if -r $confluenceConf;
57 my ($self, $url) = @_;
59 unless ($self->{headers}) {
61 Accept => 'application/json',
62 Authorization => 'Basic '
63 . encode_base64 ($self->{username} . ':' . $self->{password}),
67 return $self->{REST}->GET ($url, $self->{headers});
71 my ($class, %parms) = @_;
73 my $self = bless {}, $class;
75 $self->{username} = $parms{username} || $OPTS{username} || $ENV{CONFLUENCE_USERNAME};
76 $self->{password} = $parms{password} || $OPTS{password} || $ENV{CONFLUENCE_PASSWORD};
77 $self->{server} = $parms{server} || $OPTS{server} || $ENV{CONFLUENCE_SERVER};
78 $self->{port} = $parms{port} || $OPTS{port} || $ENV{CONFLUENCE_PORT};
79 $self->{URL} = "http://$self->{server}:$self->{port}/rest/api";
81 return $self->connect;
87 $self->{REST} = REST::Client->new (
88 host => "http://$self->{server}:$self->{port}",
91 $self->{REST}->getUseragent()->ssl_opts (verify_hostname => 0);
92 $self->{REST}->setFollow (1);
98 my ($self, %parms) = @_;
100 my $url = 'content?';
104 push @parms, "type=$parms{type}" if $parms{type};
105 push @parms, "spacekey=$parms{spaceKey}" if $parms{spaceKey};
106 push @parms, "title=$parms{title}" if $parms{title};
107 push @parms, "status=$parms{status}" if $parms{status};
108 push @parms, "postingDay=$parms{postingDay}" if $parms{postingDay};
109 push @parms, "expand=$parms{expand}" if $parms{expand};
110 push @parms, "start=$parms{start}" if $parms{start};
111 push @parms, "limit==$parms{limit}" if $parms{limit};
113 my $content = $self->_get ('/content/', join ',', @parms);