rutrack 0.0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,55 @@
1
+ module Youtrack
2
+ class Project < Base
3
+
4
+ # ==================
5
+ # USER Methods
6
+ # ==================
7
+ def get_accessible_projects
8
+ get('project/all')
9
+ response.parsed_response
10
+ end
11
+
12
+ # filter string Apply a filter to issues in a project.
13
+ # after Integer A number of issues to skip before getting a list of issues. That is, when you specify, for example, after=12 in request,
14
+ # then in the response you will get all issues matching request but without first twelve issues found .
15
+ # max Integer Maximum number of issues to be imported. If not provided, 10 issues will be imported, by default.
16
+ # updatedAfter Long Filter issues by the date of the most recent update. Only issues imported after the specified date will be gotten.
17
+ def get_issues_for(project_id, max,filter,options={})
18
+ max = 10 unless max
19
+
20
+ get("issue/byproject/#{project_id}?max=#{max}&filter=#{filter}")
21
+ response.parsed_response
22
+ end
23
+
24
+ # ==================
25
+ # ADMIN Methods
26
+ # ==================
27
+ def all
28
+ get('admin/project')
29
+ response.parsed_response
30
+ end
31
+
32
+ def find(project_id)
33
+ get("admin/project/#{project_id}")
34
+ response.parsed_response
35
+ end
36
+
37
+ # required attributes
38
+ #
39
+ # projectId string required Unique identifier of a project to be created. This short name will be used as prefix in issue IDs for this project.
40
+ # projectName string required Full name of a new project. Must be unique.
41
+ # startingNumber integer required Number to assign to the next manually created issue.
42
+ # projectLeadLogin string required Login name of a user to be assigned as a project leader.
43
+ # description string Optional description of the new project
44
+ def create(attributes={})
45
+ put("admin/project/#{attributes[:projectId]}", query: attributes)
46
+ response
47
+ end
48
+
49
+ def destroy(project_id)
50
+ delete("admin/project/#{project_id}")
51
+ response
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,52 @@
1
+ module Youtrack
2
+ class Tag < Base
3
+
4
+ # get all user's tags
5
+ def get_all_tags
6
+ get('user/tag')
7
+ response.parsed_response
8
+ end
9
+
10
+ # get a user's tag by name
11
+ def get_tag_by_name( tag_name )
12
+ get("user/tag/#{tag_name}")
13
+ response.parsed_response
14
+ end
15
+
16
+ # add new user's tag
17
+ #
18
+ # attributes:
19
+ # tagName (required) String The name of the new tag
20
+ # visibleForGroup (required) String Name of a user group in which tag should be visible
21
+ # updatableByGroup (required) String Name of user group whose members can edit the new tag
22
+ # untagOnResolve (optional) Boolean autoremove when issue's state changes
23
+ #
24
+ # API Success: Returns 201 Created with Location Header set
25
+ # Returns the response object
26
+
27
+ def create(attributes={})
28
+ tag_name = attributes.delete(:tagName)
29
+ put("user/tag/#{tag_name}", attributes)
30
+ response
31
+ end
32
+
33
+ # update an existing tag
34
+ #
35
+ # attributes:
36
+ # tagName (required) String The name of tag to edit.
37
+ # newName (required) String the new name for the tag.
38
+ # visibleForGroup (required) String Name of a user group in which tag should be visible
39
+ # updatableByGroup (required) String Name of user group whose members can edit the new tag
40
+ # untagOnResolve (optional) Boolean autoremove when issue's state changes
41
+ #
42
+ # API Success: Returns 301 Moved Permanently with Location Header set
43
+ # Returns the response object
44
+
45
+ def update(attributes={})
46
+ tag_name = attributes.delete(:tagName)
47
+ post("user/tag/#{tag_name}", attributes)
48
+ response
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,78 @@
1
+ module Youtrack
2
+ class User < Base
3
+
4
+
5
+ # ==================
6
+ # USER Methods
7
+ # ==================
8
+ def current
9
+ get('user/current')
10
+ response.parsed_response
11
+ end
12
+
13
+ def get_by_login(login_name)
14
+ get("user/#{login_name}")
15
+ response.parsed_response
16
+ end
17
+
18
+ def get_saved_searches_for(login_name)
19
+ get("user/#{login_name}/filter")
20
+ response.parsed_response
21
+ end
22
+
23
+ def get_saved_searches
24
+ get("user/search")
25
+ response.parsed_response
26
+ end
27
+
28
+ def get_saved_search_by_name(query_name)
29
+ get("user/search/#{query_name}")
30
+ response.parsed_response
31
+ end
32
+
33
+ # ==================
34
+ # ADMIN Methods
35
+ # ==================
36
+ def find(login_name)
37
+ get("admin/user/#{login_name}")
38
+ response.parsed_response
39
+ end
40
+
41
+ def all
42
+ get("admin/user")
43
+ response.parsed_response
44
+ end
45
+
46
+ # login string Login name of a user to be created. Required.
47
+ # fullName string User full name (optional).
48
+ # email string User email (required for new user).
49
+ # jabber string User jabber account (optional).
50
+ # password string Password for the new user. If skipped, by default the new user account will be created with auto-generated password
51
+ def create(attributes)
52
+ put("admin/user", body: attributes)
53
+ response
54
+ end
55
+
56
+ # User will be created if not already exist
57
+ def update(attributes)
58
+ post("admin/user", body: attributes)
59
+ response
60
+ end
61
+
62
+ def destroy(login_name)
63
+ delete("admin/user/#{login_name}")
64
+ response
65
+ end
66
+
67
+ def get_roles_for(login_name)
68
+ get("admin/user/#{login_name}/roles")
69
+ response.parsed_response
70
+ end
71
+
72
+ def get_groups_for(login_name)
73
+ get("admin/user/#{login_name}/groups")
74
+ response.parsed_response
75
+ end
76
+
77
+ end
78
+ end
@@ -0,0 +1,4 @@
1
+ module Youtrack
2
+ #VERSION = "0.0.11"
3
+ VERSION = "0.0.11.1"
4
+ end
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://testcloud.myjetbrains.com/youtrack/rest/user/login
6
+ body:
7
+ encoding: UTF-8
8
+ string: login=testuser&password=testuser
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx
17
+ Date:
18
+ - Fri, 07 Feb 2014 21:23:50 GMT
19
+ Content-Type:
20
+ - application/xml; charset=UTF-8
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ Vary:
26
+ - Accept-Encoding
27
+ Set-Cookie:
28
+ - JSESSIONID=i1nlki01vb7k2ti2k3wmizbk;Path=/youtrack;Secure
29
+ - jetbrains.charisma.main.security.PRINCIPAL=YWU1ZGViODIyZTBkNzE5OTI5MDA0NzFhNzE5OWQwZDk1YjhlN2M5ZDA1YzQwYTgyNDVhMjgxZmQyYzFkNjY4NDp0ZXN0dXNlcg;Path=/youtrack;Expires=Sat,
30
+ 07-Feb-2015 21:23:50 GMT
31
+ Expires:
32
+ - Thu, 01 Jan 1970 00:00:00 GMT
33
+ Cache-Control:
34
+ - no-cache, no-store, no-transform, must-revalidate
35
+ body:
36
+ encoding: UTF-8
37
+ string: <login>ok</login>
38
+ http_version:
39
+ recorded_at: Fri, 07 Feb 2014 21:25:36 GMT
40
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://testcloud.myjetbrains.com/youtrack/rest/user/login
6
+ body:
7
+ encoding: UTF-8
8
+ string: login=invalid_user&password=invalid_pass
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 403
13
+ message: Forbidden
14
+ headers:
15
+ Server:
16
+ - nginx
17
+ Date:
18
+ - Fri, 07 Feb 2014 21:59:44 GMT
19
+ Content-Type:
20
+ - application/xml; charset=UTF-8
21
+ Content-Length:
22
+ - '98'
23
+ Connection:
24
+ - keep-alive
25
+ Vary:
26
+ - Accept-Encoding
27
+ Set-Cookie:
28
+ - JSESSIONID=16ngfmvqeqmc912t0v7q6fo2kc;Path=/youtrack;Secure
29
+ Expires:
30
+ - Thu, 01 Jan 1970 00:00:00 GMT
31
+ Cache-Control:
32
+ - no-cache, no-store, no-transform, must-revalidate
33
+ body:
34
+ encoding: UTF-8
35
+ string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><error>Incorrect
36
+ login or password.</error>
37
+ http_version:
38
+ recorded_at: Fri, 07 Feb 2014 22:01:31 GMT
39
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://testcloud.myjetbrains.com/youtracks/rest/user/login
6
+ body:
7
+ encoding: UTF-8
8
+ string: login=testuser&password=testuser
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 404
13
+ message: Not Found
14
+ headers:
15
+ Server:
16
+ - nginx
17
+ Date:
18
+ - Fri, 07 Feb 2014 21:59:42 GMT
19
+ Content-Type:
20
+ - text/html;charset=ISO-8859-1
21
+ Content-Length:
22
+ - '1292'
23
+ Connection:
24
+ - keep-alive
25
+ Cache-Control:
26
+ - must-revalidate,no-cache,no-store
27
+ body:
28
+ encoding: UTF-8
29
+ string: "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\"/>\n<title>Error
30
+ 404 Not Found</title>\n</head>\n<body>\n<h2>HTTP ERROR: 404</h2>\n<p>Problem
31
+ accessing /youtracks/rest/user/login. Reason:\n<pre> Not Found</pre></p>\n<hr
32
+ /><i><small>Powered by Jetty://</small></i>\n \n
33
+ \ \n \n
34
+ \ \n \n
35
+ \ \n \n
36
+ \ \n \n
37
+ \ \n \n
38
+ \ \n \n
39
+ \ \n \n
40
+ \ \n \n
41
+ \ \n \n
42
+ \ \n</body>\n</html>\n"
43
+ http_version:
44
+ recorded_at: Fri, 07 Feb 2014 22:01:29 GMT
45
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,75 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://testcloud.myjetbrains.com/youtrack/rest/user/login
6
+ body:
7
+ encoding: UTF-8
8
+ string: login=testuser&password=testuser
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx
17
+ Date:
18
+ - Fri, 07 Feb 2014 22:39:52 GMT
19
+ Content-Type:
20
+ - application/xml; charset=UTF-8
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ Vary:
26
+ - Accept-Encoding
27
+ Set-Cookie:
28
+ - JSESSIONID=1x6fz1xa878jlneco9qotclw8;Path=/youtrack;Secure
29
+ - jetbrains.charisma.main.security.PRINCIPAL=YWU1ZGViODIyZTBkNzE5OTI5MDA0NzFhNzE5OWQwZDk1YjhlN2M5ZDA1YzQwYTgyNDVhMjgxZmQyYzFkNjY4NDp0ZXN0dXNlcg;Path=/youtrack;Expires=Sat,
30
+ 07-Feb-2015 22:39:52 GMT
31
+ Expires:
32
+ - Thu, 01 Jan 1970 00:00:00 GMT
33
+ Cache-Control:
34
+ - no-cache, no-store, no-transform, must-revalidate
35
+ body:
36
+ encoding: UTF-8
37
+ string: <login>ok</login>
38
+ http_version:
39
+ recorded_at: Fri, 07 Feb 2014 22:41:39 GMT
40
+ - request:
41
+ method: get
42
+ uri: https://testcloud.myjetbrains.com/youtrack/rest/user/current
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ''
46
+ headers:
47
+ Cookie:
48
+ - JSESSIONID=1x6fz1xa878jlneco9qotclw8;Path=/youtrack;Secure, jetbrains.charisma.main.security.PRINCIPAL=YWU1ZGViODIyZTBkNzE5OTI5MDA0NzFhNzE5OWQwZDk1YjhlN2M5ZDA1YzQwYTgyNDVhMjgxZmQyYzFkNjY4NDp0ZXN0dXNlcg;Path=/youtrack;Expires=Sat,
49
+ 07-Feb-2015 22:39:52 GMT
50
+ response:
51
+ status:
52
+ code: 200
53
+ message: OK
54
+ headers:
55
+ Server:
56
+ - nginx
57
+ Date:
58
+ - Fri, 07 Feb 2014 22:41:19 GMT
59
+ Content-Type:
60
+ - application/xml; charset=UTF-8
61
+ Content-Length:
62
+ - '130'
63
+ Connection:
64
+ - keep-alive
65
+ Vary:
66
+ - Accept-Encoding
67
+ Cache-Control:
68
+ - no-cache, no-store, no-transform, must-revalidate
69
+ body:
70
+ encoding: UTF-8
71
+ string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><user login="testuser"
72
+ email="testuser@testcloud.de" fullName="Test User"/>
73
+ http_version:
74
+ recorded_at: Fri, 07 Feb 2014 22:43:05 GMT
75
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,75 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://testcloud.myjetbrains.com/youtrack/rest/user/login
6
+ body:
7
+ encoding: UTF-8
8
+ string: login=testuser&password=testuser
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx
17
+ Date:
18
+ - Fri, 07 Feb 2014 22:42:20 GMT
19
+ Content-Type:
20
+ - application/xml; charset=UTF-8
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ Vary:
26
+ - Accept-Encoding
27
+ Set-Cookie:
28
+ - JSESSIONID=xt1ovx8ac8acjld0v70wx33o;Path=/youtrack;Secure
29
+ - jetbrains.charisma.main.security.PRINCIPAL=YWU1ZGViODIyZTBkNzE5OTI5MDA0NzFhNzE5OWQwZDk1YjhlN2M5ZDA1YzQwYTgyNDVhMjgxZmQyYzFkNjY4NDp0ZXN0dXNlcg;Path=/youtrack;Expires=Sat,
30
+ 07-Feb-2015 22:42:20 GMT
31
+ Expires:
32
+ - Thu, 01 Jan 1970 00:00:00 GMT
33
+ Cache-Control:
34
+ - no-cache, no-store, no-transform, must-revalidate
35
+ body:
36
+ encoding: UTF-8
37
+ string: <login>ok</login>
38
+ http_version:
39
+ recorded_at: Fri, 07 Feb 2014 22:44:07 GMT
40
+ - request:
41
+ method: get
42
+ uri: https://testcloud.myjetbrains.com/youtrack/rest/user/testuser
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ''
46
+ headers:
47
+ Cookie:
48
+ - JSESSIONID=xt1ovx8ac8acjld0v70wx33o;Path=/youtrack;Secure, jetbrains.charisma.main.security.PRINCIPAL=YWU1ZGViODIyZTBkNzE5OTI5MDA0NzFhNzE5OWQwZDk1YjhlN2M5ZDA1YzQwYTgyNDVhMjgxZmQyYzFkNjY4NDp0ZXN0dXNlcg;Path=/youtrack;Expires=Sat,
49
+ 07-Feb-2015 22:42:20 GMT
50
+ response:
51
+ status:
52
+ code: 200
53
+ message: OK
54
+ headers:
55
+ Server:
56
+ - nginx
57
+ Date:
58
+ - Fri, 07 Feb 2014 22:42:21 GMT
59
+ Content-Type:
60
+ - application/xml; charset=UTF-8
61
+ Content-Length:
62
+ - '130'
63
+ Connection:
64
+ - keep-alive
65
+ Vary:
66
+ - Accept-Encoding
67
+ Cache-Control:
68
+ - no-cache, no-store, no-transform, must-revalidate
69
+ body:
70
+ encoding: UTF-8
71
+ string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><user login="testuser"
72
+ email="testuser@testcloud.de" fullName="Test User"/>
73
+ http_version:
74
+ recorded_at: Fri, 07 Feb 2014 22:44:08 GMT
75
+ recorded_with: VCR 2.8.0