jiraSOAP 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +2 -3
- data/ChangeLog +15 -0
- data/LICENSE.txt +1 -1
- data/README.markdown +51 -41
- data/Rakefile +57 -0
- data/docs/GettingStarted.markdown +36 -0
- data/lib/jiraSOAP.rb +7 -4
- data/lib/jiraSOAP/api.rb +59 -53
- data/lib/jiraSOAP/api/additions.rb +4 -6
- data/lib/jiraSOAP/api/attachments.rb +18 -8
- data/lib/jiraSOAP/api/avatars.rb +30 -17
- data/lib/jiraSOAP/api/comments.rb +16 -11
- data/lib/jiraSOAP/api/filters.rb +13 -10
- data/lib/jiraSOAP/api/issue_data_types.rb +29 -21
- data/lib/jiraSOAP/api/issues.rb +46 -31
- data/lib/jiraSOAP/api/project_roles.rb +22 -15
- data/lib/jiraSOAP/api/projects.rb +33 -20
- data/lib/jiraSOAP/api/schemes.rb +9 -9
- data/lib/jiraSOAP/api/server_info.rb +11 -9
- data/lib/jiraSOAP/api/users.rb +58 -10
- data/lib/jiraSOAP/api/versions.rb +15 -11
- data/lib/jiraSOAP/api/worklog.rb +14 -0
- data/lib/jiraSOAP/core_extensions.rb +8 -0
- data/lib/jiraSOAP/entities.rb +3 -0
- data/lib/jiraSOAP/entities/attachment_metadata.rb +28 -9
- data/lib/jiraSOAP/entities/avatar.rb +29 -10
- data/lib/jiraSOAP/entities/comment.rb +37 -11
- data/lib/jiraSOAP/entities/component.rb +1 -1
- data/lib/jiraSOAP/entities/custom_field_value.rb +17 -12
- data/lib/jiraSOAP/entities/described_entity.rb +9 -5
- data/lib/jiraSOAP/entities/dynamic_entity.rb +12 -5
- data/lib/jiraSOAP/entities/entity.rb +33 -27
- data/lib/jiraSOAP/entities/field.rb +1 -1
- data/lib/jiraSOAP/entities/field_value.rb +16 -6
- data/lib/jiraSOAP/entities/filter.rb +18 -5
- data/lib/jiraSOAP/entities/issue.rb +74 -29
- data/lib/jiraSOAP/entities/issue_property.rb +9 -6
- data/lib/jiraSOAP/entities/issue_security_scheme.rb +1 -1
- data/lib/jiraSOAP/entities/issue_type.rb +9 -4
- data/lib/jiraSOAP/entities/named_entity.rb +8 -4
- data/lib/jiraSOAP/entities/notification_scheme.rb +1 -1
- data/lib/jiraSOAP/entities/permission.rb +14 -6
- data/lib/jiraSOAP/entities/permission_mapping.rb +9 -5
- data/lib/jiraSOAP/entities/permission_scheme.rb +7 -4
- data/lib/jiraSOAP/entities/priority.rb +7 -4
- data/lib/jiraSOAP/entities/project.rb +29 -13
- data/lib/jiraSOAP/entities/project_role.rb +3 -2
- data/lib/jiraSOAP/entities/resolution.rb +1 -1
- data/lib/jiraSOAP/entities/scheme.rb +5 -1
- data/lib/jiraSOAP/entities/server_configuration.rb +39 -14
- data/lib/jiraSOAP/entities/server_info.rb +20 -8
- data/lib/jiraSOAP/entities/status.rb +1 -1
- data/lib/jiraSOAP/entities/time_info.rb +12 -5
- data/lib/jiraSOAP/entities/user.rb +8 -4
- data/lib/jiraSOAP/entities/usergroup.rb +15 -0
- data/lib/jiraSOAP/entities/username.rb +7 -1
- data/lib/jiraSOAP/entities/version.rb +20 -12
- data/lib/jiraSOAP/entities/worklog.rb +28 -0
- data/lib/jiraSOAP/handsoap_extensions.rb +31 -80
- data/lib/jiraSOAP/{JIRAservice.rb → jira_service.rb} +19 -14
- data/lib/jiraSOAP/{macruby_bonuses.rb → macruby_extensions.rb} +5 -14
- data/lib/jiraSOAP/nokogiri_extensions.rb +68 -0
- data/lib/jiraSOAP/url.rb +10 -2
- data/lib/jiraSOAP/version.rb +3 -0
- metadata +29 -55
- data/yard-jiraSOAP.rb +0 -65
@@ -1,9 +1,12 @@
|
|
1
|
+
##
|
1
2
|
# @abstract A common base for most issue properties; core issue properties
|
2
|
-
#
|
3
|
-
# quickly.
|
3
|
+
# also have an icon.
|
4
4
|
class JIRA::IssueProperty < JIRA::DescribedEntity
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
|
6
|
+
##
|
7
|
+
# NSURL on MacRuby, URI::HTTP on CRuby
|
8
|
+
#
|
9
|
+
# @return [URI::HTTP,NSURL]
|
10
|
+
add_attribute :icon, 'icon', :to_url
|
11
|
+
|
9
12
|
end
|
@@ -1,7 +1,12 @@
|
|
1
|
+
##
|
1
2
|
# Contains all the metadata for an issue type.
|
2
3
|
class JIRA::IssueType < JIRA::IssueProperty
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
|
5
|
+
##
|
6
|
+
# True if the issue type is also a subtask
|
7
|
+
#
|
8
|
+
# @return [Boolean]
|
9
|
+
add_attribute :subtask, 'subTask', :to_boolean
|
10
|
+
alias_method :sub_task, :subtask
|
11
|
+
|
7
12
|
end
|
@@ -1,7 +1,11 @@
|
|
1
|
+
##
|
1
2
|
# @abstract Most dynamic entities also have a name
|
2
3
|
class JIRA::NamedEntity < JIRA::DynamicEntity
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
|
5
|
+
##
|
6
|
+
# A plain language name
|
7
|
+
#
|
8
|
+
# @return [String]
|
9
|
+
add_attribute :name, 'name', :content
|
10
|
+
|
7
11
|
end
|
@@ -1,9 +1,17 @@
|
|
1
|
+
##
|
1
2
|
# A permission id and the username that it is tied to.
|
2
3
|
class JIRA::Permission < JIRA::Entity
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
|
5
|
+
##
|
6
|
+
# The permission type
|
7
|
+
#
|
8
|
+
# @return [String]
|
9
|
+
add_attribute :name, 'name', :content
|
10
|
+
|
11
|
+
##
|
12
|
+
# A unique id number
|
13
|
+
#
|
14
|
+
# @return [Number]
|
15
|
+
add_attribute :permission, 'permission', :to_i
|
16
|
+
|
9
17
|
end
|
@@ -1,7 +1,11 @@
|
|
1
|
-
|
1
|
+
##
|
2
|
+
# @todo Make sure the xml names are correct (check the XML dump)
|
2
3
|
class JIRA::PermissionMapping < JIRA::Entity
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
|
5
|
+
# @return [Array<JIRA::Permission>]
|
6
|
+
add_attribute :permission, 'permission', [:children_as_object, JIRA::Permission]
|
7
|
+
|
8
|
+
# @return [Array<JIRA::UserName>]
|
9
|
+
add_attribute :users, 'entities', [:children_as_objects, JIRA::UserName]
|
10
|
+
|
7
11
|
end
|
@@ -1,7 +1,10 @@
|
|
1
|
-
|
1
|
+
##
|
2
|
+
# @todo Complete this class
|
3
|
+
#
|
2
4
|
# Includes a mapping of project specific permission settings.
|
3
5
|
class JIRA::PermissionScheme < JIRA::Scheme
|
4
|
-
|
5
|
-
|
6
|
-
|
6
|
+
|
7
|
+
# @return [Array<JIRA::PermissionMapping>]
|
8
|
+
add_attribute :permission_mappings, 'permissionMappings', [:children_as_objects, JIRA::PermissionMapping]
|
9
|
+
|
7
10
|
end
|
@@ -1,10 +1,13 @@
|
|
1
|
+
##
|
1
2
|
# Contains all the metadata for a priority level.
|
2
3
|
class JIRA::Priority < JIRA::IssueProperty
|
3
|
-
add_attributes(
|
4
|
-
# the RGB components as a triple
|
5
|
-
['color', :color, :to_hex_string]
|
6
|
-
)
|
7
4
|
|
5
|
+
##
|
6
|
+
# The RGB components as a triple
|
7
|
+
#
|
8
|
+
# @return [Array(String,String,String)]
|
9
|
+
add_attribute :color, 'color', :to_colour_triple
|
8
10
|
alias_method :colour, :color
|
9
11
|
alias_method :colour=, :color=
|
12
|
+
|
10
13
|
end
|
@@ -1,20 +1,35 @@
|
|
1
|
+
##
|
1
2
|
# Contains the data and metadata about a project and its configuration.
|
2
3
|
class JIRA::Project < JIRA::DescribedEntity
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
# @
|
14
|
-
|
4
|
+
|
5
|
+
# @return [String]
|
6
|
+
add_attribute :key, 'key', :content
|
7
|
+
|
8
|
+
# @return [String]
|
9
|
+
add_attribute :lead_username, 'lead', :content
|
10
|
+
|
11
|
+
# @return [String]
|
12
|
+
add_attribute :issue_security_scheme, 'issueSecurityScheme', [:children_as_object, JIRA::IssueSecurityScheme]
|
13
|
+
|
14
|
+
# @return [String]
|
15
|
+
add_attribute :notification_scheme, 'notificationScheme', [:children_as_object, JIRA::NotificationScheme]
|
16
|
+
|
17
|
+
# @return [String]
|
18
|
+
add_attribute :permission_scheme, 'permissionScheme', [:children_as_object, JIRA::PermissionScheme]
|
19
|
+
|
20
|
+
# @return [NSURL,URI::HTTP]
|
21
|
+
add_attribute :jira_url, 'url', :to_url
|
22
|
+
|
23
|
+
# @return [NSURL,URI::HTTP]
|
24
|
+
add_attribute :project_url, 'projectUrl', :to_url
|
25
|
+
|
26
|
+
|
27
|
+
##
|
28
|
+
# @todo Encode the schemes
|
29
|
+
#
|
15
30
|
# @param [Handsoap::XmlMason::Node] msg
|
16
31
|
# @return [Handsoap::XmlMason::Node]
|
17
|
-
def soapify_for
|
32
|
+
def soapify_for msg
|
18
33
|
msg.add 'id', @id
|
19
34
|
msg.add 'name', @name
|
20
35
|
msg.add 'key', @key
|
@@ -23,4 +38,5 @@ class JIRA::Project < JIRA::DescribedEntity
|
|
23
38
|
msg.add 'lead', @lead_username
|
24
39
|
msg.add 'description', @description
|
25
40
|
end
|
41
|
+
|
26
42
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
##
|
2
|
+
# Only a name, description, and id.
|
2
3
|
class JIRA::ProjectRole < JIRA::DescribedEntity
|
3
|
-
add_attributes
|
4
4
|
|
5
5
|
# @param [Handsoap::XmlMason::Node] msg the node where to add self
|
6
6
|
def soapify_for msg
|
@@ -8,4 +8,5 @@ class JIRA::ProjectRole < JIRA::DescribedEntity
|
|
8
8
|
msg.add 'name', @name
|
9
9
|
msg.add 'description', @description
|
10
10
|
end
|
11
|
+
|
11
12
|
end
|
@@ -1,9 +1,13 @@
|
|
1
|
+
##
|
1
2
|
# @abstract
|
3
|
+
#
|
2
4
|
# Schemes used by the server.
|
3
5
|
class JIRA::Scheme < JIRA::DescribedEntity
|
4
|
-
add_attributes
|
5
6
|
|
7
|
+
##
|
6
8
|
# Child classes need to be careful when encoding the scheme type to XML.
|
9
|
+
#
|
7
10
|
# @return [Class]
|
8
11
|
alias_method :type, :class
|
12
|
+
|
9
13
|
end
|
@@ -1,17 +1,42 @@
|
|
1
|
+
##
|
1
2
|
# A simple structure that is used by {RemoteAPI#get_server_configuration}.
|
2
3
|
class JIRA::ServerConfiguration < JIRA::Entity
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
4
|
+
|
5
|
+
# @return [Boolean]
|
6
|
+
add_attribute :external_user_management_allowed, 'allowExternalUserManagement', :to_boolean
|
7
|
+
|
8
|
+
# @return [Boolean]
|
9
|
+
add_attribute :attachments_allowed, 'allowAttachments', :to_boolean
|
10
|
+
|
11
|
+
# @return [Boolean]
|
12
|
+
add_attribute :issue_linking_allowed, 'allowIssueLinking', :to_boolean
|
13
|
+
|
14
|
+
# @return [Boolean]
|
15
|
+
add_attribute :subtasks_allowed, 'allowSubTasks', :to_boolean
|
16
|
+
|
17
|
+
# @return [Boolean]
|
18
|
+
add_attribute :time_tracking_allowed, 'allowTimeTracking', :to_boolean
|
19
|
+
|
20
|
+
# @return [Boolean]
|
21
|
+
add_attribute :unassigned_issues_allowed, 'allowUnassignedIssues', :to_boolean
|
22
|
+
|
23
|
+
# @return [Boolean]
|
24
|
+
add_attribute :voting_allowed, 'allowVoting', :to_boolean
|
25
|
+
|
26
|
+
# @return [Boolean]
|
27
|
+
add_attribute :watching_allowed, 'allowWatching', :to_boolean
|
28
|
+
|
29
|
+
# @return [Number]
|
30
|
+
add_attribute :time_tracking_days_per_week, 'timeTrackingDaysPerWeek', :to_i
|
31
|
+
|
32
|
+
# @return [Number]
|
33
|
+
add_attribute :time_tracking_hours_per_day, 'timeTrackingHoursPerDay', :to_i
|
34
|
+
|
35
|
+
##
|
36
|
+
# @note JIRA misspells 'management', so we define this attribute twice
|
37
|
+
# to cover both cases.
|
38
|
+
#
|
39
|
+
# @return [Boolean]
|
40
|
+
add_attribute :external_user_management_allowed, 'allowExternalUserManagment', :to_boolean
|
41
|
+
|
17
42
|
end
|
@@ -1,12 +1,24 @@
|
|
1
|
+
##
|
1
2
|
# Only contains basic information about the endpoint server and only used
|
2
3
|
# by {RemoteAPI#get_server_info}.
|
3
4
|
class JIRA::ServerInfo < JIRA::Entity
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
5
|
+
|
6
|
+
# @return [NSURL,URI::HTTP]
|
7
|
+
add_attribute :base_url, 'baseUrl', :to_url
|
8
|
+
|
9
|
+
# @return [Time]
|
10
|
+
add_attribute :build_date, 'buildDate', :to_iso_date
|
11
|
+
|
12
|
+
# @return [Number]
|
13
|
+
add_attribute :build_number, 'buildNumber', :to_i
|
14
|
+
|
15
|
+
# @return [String]
|
16
|
+
add_attribute :edition, 'edition', :content
|
17
|
+
|
18
|
+
# @return [String]
|
19
|
+
add_attribute :version, 'version', :content
|
20
|
+
|
21
|
+
# @return [Array<JIRA::TimeInfo>]
|
22
|
+
add_attribute :server_time, 'serverTime', [:children_as_object, JIRA::TimeInfo]
|
23
|
+
|
12
24
|
end
|
@@ -1,10 +1,17 @@
|
|
1
|
+
##
|
1
2
|
# Simple structure for a time and time zone; only used by JIRA::ServerInfo
|
2
3
|
# objects, which themselves are only created when {RemoteAPI#get_server_info}
|
3
4
|
# is called.
|
4
5
|
class JIRA::TimeInfo < JIRA::Entity
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
|
7
|
+
# @return [Time]
|
8
|
+
add_attribute :server_time, 'serverTime', :to_natural_date
|
9
|
+
|
10
|
+
##
|
11
|
+
# @example
|
12
|
+
# 'America/Toronto'
|
13
|
+
#
|
14
|
+
# @return [String]
|
15
|
+
add_attribute :timezone, 'timeZoneId', :content
|
16
|
+
|
10
17
|
end
|
@@ -1,8 +1,12 @@
|
|
1
|
+
##
|
1
2
|
# Contains only the basic information about a user. The only things missing here
|
2
3
|
# are the permissions and login statistics, but these are not given in the API.
|
3
4
|
class JIRA::User < JIRA::UserName
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
|
6
|
+
# @return [String]
|
7
|
+
add_attribute :full_name, 'fullname', :content
|
8
|
+
|
9
|
+
# @return [String]
|
10
|
+
add_attribute :email_address, 'email', :content
|
11
|
+
|
8
12
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
##
|
2
|
+
# Though this class contains a name, it is not the same name that
|
3
|
+
# you get from a {JIRA::NamedEntity}.
|
4
|
+
class JIRA::UserGroup < JIRA::Entity
|
5
|
+
|
6
|
+
# @return [String]
|
7
|
+
add_attribute :name, 'name', :content
|
8
|
+
|
9
|
+
##
|
10
|
+
# @todo I suspect that I will have to delete users from SOAPifying
|
11
|
+
#
|
12
|
+
# @return [Array<JIRA::User>]
|
13
|
+
add_attribute :users, 'users', [:children_as_objects, JIRA::User]
|
14
|
+
|
15
|
+
end
|
@@ -1,4 +1,10 @@
|
|
1
|
+
##
|
2
|
+
# @todo Find out if this is an abstract class.
|
3
|
+
#
|
1
4
|
# This is just a @name, JIRA::User should inherit from this class
|
2
5
|
class JIRA::UserName < JIRA::Entity
|
3
|
-
|
6
|
+
|
7
|
+
# @return [String]
|
8
|
+
add_attribute :username, 'name', :content
|
9
|
+
|
4
10
|
end
|
@@ -1,22 +1,30 @@
|
|
1
|
-
|
1
|
+
##
|
2
|
+
# @todo Find out why we don't get a description for this object
|
3
|
+
#
|
2
4
|
# Represents a version for a project. The description field is never
|
3
5
|
# included when you retrieve versions from the server.
|
4
6
|
class JIRA::Version < JIRA::NamedEntity
|
5
|
-
add_attributes(
|
6
|
-
['sequence', :sequence, :to_i],
|
7
|
-
['released', :released, :to_boolean],
|
8
|
-
['archived', :archived, :to_boolean],
|
9
|
-
['releaseDate', :release_date, :to_date]
|
10
|
-
)
|
11
7
|
|
12
|
-
# @
|
8
|
+
# @return [Number]
|
9
|
+
add_attribute :sequence, 'sequence', :to_i
|
10
|
+
|
11
|
+
# @return [Boolean]
|
12
|
+
add_attribute :released, 'released', :to_boolean
|
13
|
+
|
14
|
+
# @return [Boolean]
|
15
|
+
add_attribute :archived, 'archived', :to_boolean
|
16
|
+
|
17
|
+
# @return [Time]
|
18
|
+
add_attribute :release_date, 'releaseDate', :to_iso_date
|
19
|
+
|
13
20
|
# @param [Handsoap::XmlMason::Node] msg
|
14
21
|
# @return [Handsoap::XmlMason::Node]
|
15
22
|
def soapify_for(msg)
|
16
23
|
msg.add 'name', @name
|
17
|
-
msg.add 'archived', @archived
|
18
|
-
msg.add 'sequence', @sequence
|
19
|
-
msg.add 'releaseDate', @release_date.xmlschema
|
20
|
-
msg.add 'released', @released
|
24
|
+
msg.add 'archived', @archived if @archived
|
25
|
+
msg.add 'sequence', @sequence if @sequence
|
26
|
+
msg.add 'releaseDate', @release_date.xmlschema if @release_date
|
27
|
+
msg.add 'released', @released if @released
|
21
28
|
end
|
29
|
+
|
22
30
|
end
|