teamcity-ruby-client 0.1.0 → 0.2.0

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.
Files changed (40) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +4 -0
  3. data/lib/teamcity/client.rb +2 -0
  4. data/lib/teamcity/client/build_types.rb +92 -0
  5. data/lib/teamcity/client/common.rb +13 -2
  6. data/lib/teamcity/client/projects.rb +82 -3
  7. data/lib/teamcity/client/vcs_roots.rb +62 -0
  8. data/lib/teamcity/configuration.rb +10 -2
  9. data/lib/teamcity/connection.rb +1 -0
  10. data/lib/teamcity/request.rb +10 -9
  11. data/lib/teamcity/version.rb +1 -1
  12. data/spec/cassettes/BuildTypes/DELETE/_delete_agent_requirement/should_delete_the_agent_requirement.yml +38 -0
  13. data/spec/cassettes/BuildTypes/DELETE/_delete_buildtype_parameter/should_delete_a_buildtype_parameter.yml +38 -0
  14. data/spec/cassettes/BuildTypes/POST/_attach_vcs_root/should_attach_a_vcs_root_to_a_buildtype.yml +45 -0
  15. data/spec/cassettes/BuildTypes/POST/_create_agent_requirement/should_create_an_agent_requirement_for_a_buildtype.yml +45 -0
  16. data/spec/cassettes/BuildTypes/PUT/_set_buildtype_field/should_pause_a_project.yml +40 -0
  17. data/spec/cassettes/BuildTypes/PUT/_set_buildtype_field/should_set_a_projects_description.yml +40 -0
  18. data/spec/cassettes/BuildTypes/PUT/_set_buildtype_field/should_set_the_buildtype_name.yml +40 -0
  19. data/spec/cassettes/BuildTypes/PUT/_set_buildtype_parameter/should_set_a_buildtype_parameter.yml +40 -0
  20. data/spec/cassettes/Projects/DELETE/_delete_project/should_delete_a_project.yml +79 -0
  21. data/spec/cassettes/Projects/DELETE/_delete_project_parameter/should_delete_a_project_parameter.yml +38 -0
  22. data/spec/cassettes/Projects/POST/_copy_project/should_copy_a_project.yml +86 -0
  23. data/spec/cassettes/Projects/POST/_create_project/should_create_a_project.yml +44 -0
  24. data/spec/cassettes/Projects/PUT/_set_project_field/should_archive_a_project.yml +40 -0
  25. data/spec/cassettes/Projects/PUT/_set_project_field/should_set_a_projects_description.yml +40 -0
  26. data/spec/cassettes/Projects/PUT/_set_project_field/should_set_a_projects_name.yml +40 -0
  27. data/spec/cassettes/Projects/PUT/_set_project_field/should_un-archive_a_project.yml +50 -0
  28. data/spec/cassettes/Projects/PUT/_set_project_parameter/should_set_a_project_parameter.yml +40 -0
  29. data/spec/cassettes/VCSRoots/GET/_vcs_root_details/should_fetch_the_vcs_root_details.yml +44 -0
  30. data/spec/cassettes/VCSRoots/GET/_vcs_roots/should_fetch_vcs_roots.yml +44 -0
  31. data/spec/cassettes/VCSRoots/POST/_create_vcs_root/should_create_a_shared_vcs_root.yml +45 -0
  32. data/spec/cassettes/VCSRoots/POST/_create_vcs_root/should_create_a_vcs_root_that_is_only_shared_within_a_project.yml +48 -0
  33. data/spec/spec_helper.rb +9 -0
  34. data/spec/teamcity/api_spec.rb +2 -0
  35. data/spec/teamcity/client/buildtypes_spec.rb +79 -6
  36. data/spec/teamcity/client/projects_spec.rb +85 -7
  37. data/spec/teamcity/client/vcs_roots_spec.rb +64 -0
  38. data/spec/teamcity_spec.rb +26 -0
  39. data/teamcity-ruby-client.gemspec +2 -1
  40. metadata +62 -3
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/buildTypes/bt3/parameters/delete-me
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - text/plain
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.2.0
14
+ response:
15
+ status:
16
+ code: 204
17
+ message: No Content
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Set-Cookie:
22
+ - JSESSIONID=38D5592832B0BE1F8FC74BEA529AB60F; Path=/; HttpOnly
23
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
24
+ Pragma:
25
+ - no-cache
26
+ Expires:
27
+ - Thu, 01 Jan 1970 00:00:00 GMT
28
+ Cache-Control:
29
+ - no-cache
30
+ - no-store
31
+ Date:
32
+ - Mon, 06 May 2013 19:54:06 GMT
33
+ body:
34
+ encoding: US-ASCII
35
+ string: ''
36
+ http_version:
37
+ recorded_at: Mon, 06 May 2013 19:54:07 GMT
38
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/buildTypes/bt3/vcs-root-entries
6
+ body:
7
+ encoding: US-ASCII
8
+ string: <vcs-root-entry><vcs-root id="1"/></vcs-root-entry>
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.2.0
14
+ Content-Type:
15
+ - application/xml
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ Set-Cookie:
24
+ - JSESSIONID=3199BAE6ED6C5168E66F422655D13476; Path=/; HttpOnly
25
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
26
+ Pragma:
27
+ - no-cache
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Cache-Control:
31
+ - no-cache
32
+ - no-store
33
+ Content-Type:
34
+ - application/json
35
+ Transfer-Encoding:
36
+ - chunked
37
+ Date:
38
+ - Mon, 06 May 2013 20:06:44 GMT
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '{"id":"1","checkout-rules":"","vcs-root":{"id":"1","name":"teamcity
42
+ ruby client","href":"/httpAuth/app/rest/7.0/vcs-roots/id:1"}}'
43
+ http_version:
44
+ recorded_at: Mon, 06 May 2013 20:06:44 GMT
45
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/buildTypes/bt3/agent-requirements
6
+ body:
7
+ encoding: US-ASCII
8
+ string: <agent-requirement id="test" type="equals"><properties><property name="property-name"
9
+ value="test"/><property name="property-value" value="test"/></properties></agent-requirement>
10
+ headers:
11
+ Accept:
12
+ - application/json; charset=utf-8
13
+ User-Agent:
14
+ - TeamCity Ruby Client 0.2.0
15
+ Content-Type:
16
+ - application/xml
17
+ response:
18
+ status:
19
+ code: 200
20
+ message: OK
21
+ headers:
22
+ Server:
23
+ - Apache-Coyote/1.1
24
+ Set-Cookie:
25
+ - JSESSIONID=F9FA207CA22CA4B9183C04C49C0356FE; Path=/; HttpOnly
26
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
27
+ Pragma:
28
+ - no-cache
29
+ Expires:
30
+ - Thu, 01 Jan 1970 00:00:00 GMT
31
+ Cache-Control:
32
+ - no-cache
33
+ - no-store
34
+ Content-Type:
35
+ - application/json
36
+ Transfer-Encoding:
37
+ - chunked
38
+ Date:
39
+ - Mon, 06 May 2013 19:48:12 GMT
40
+ body:
41
+ encoding: US-ASCII
42
+ string: ! '{"id":"test","type":"equals","properties":{"property":[{"name":"property-name","value":"test"},{"name":"property-value","value":"test"}]}}'
43
+ http_version:
44
+ recorded_at: Mon, 06 May 2013 19:48:12 GMT
45
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/buildTypes/bt3/paused
6
+ body:
7
+ encoding: US-ASCII
8
+ string: 'true'
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.2.0
14
+ Content-Type:
15
+ - text/plain
16
+ response:
17
+ status:
18
+ code: 204
19
+ message: No Content
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ Set-Cookie:
24
+ - JSESSIONID=328624E460706DAE519D9455B0667F3B; Path=/; HttpOnly
25
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
26
+ Pragma:
27
+ - no-cache
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Cache-Control:
31
+ - no-cache
32
+ - no-store
33
+ Date:
34
+ - Tue, 07 May 2013 14:34:34 GMT
35
+ body:
36
+ encoding: US-ASCII
37
+ string: ''
38
+ http_version:
39
+ recorded_at: Tue, 07 May 2013 14:34:34 GMT
40
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/buildTypes/bt3/description
6
+ body:
7
+ encoding: US-ASCII
8
+ string: description-changed-by-test
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.2.0
14
+ Content-Type:
15
+ - text/plain
16
+ response:
17
+ status:
18
+ code: 204
19
+ message: No Content
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ Set-Cookie:
24
+ - JSESSIONID=A5855DC4746BC083C47E2A3B532BC67E; Path=/; HttpOnly
25
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
26
+ Pragma:
27
+ - no-cache
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Cache-Control:
31
+ - no-cache
32
+ - no-store
33
+ Date:
34
+ - Tue, 07 May 2013 14:34:34 GMT
35
+ body:
36
+ encoding: US-ASCII
37
+ string: ''
38
+ http_version:
39
+ recorded_at: Tue, 07 May 2013 14:34:34 GMT
40
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/buildTypes/bt3/name
6
+ body:
7
+ encoding: US-ASCII
8
+ string: new-buildtype-name
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.2.0
14
+ Content-Type:
15
+ - text/plain
16
+ response:
17
+ status:
18
+ code: 204
19
+ message: No Content
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ Set-Cookie:
24
+ - JSESSIONID=D166D23F1258A92313E56D88415B5284; Path=/; HttpOnly
25
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
26
+ Pragma:
27
+ - no-cache
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Cache-Control:
31
+ - no-cache
32
+ - no-store
33
+ Date:
34
+ - Tue, 07 May 2013 14:34:34 GMT
35
+ body:
36
+ encoding: US-ASCII
37
+ string: ''
38
+ http_version:
39
+ recorded_at: Tue, 07 May 2013 14:34:34 GMT
40
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/buildTypes/bt3/parameters/set-this-parameter
6
+ body:
7
+ encoding: US-ASCII
8
+ string: some-value
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.2.0
14
+ Content-Type:
15
+ - text/plain
16
+ response:
17
+ status:
18
+ code: 204
19
+ message: No Content
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ Set-Cookie:
24
+ - JSESSIONID=A121E2C8864D517C191AAC59B4B7D6EA; Path=/; HttpOnly
25
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
26
+ Pragma:
27
+ - no-cache
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Cache-Control:
31
+ - no-cache
32
+ - no-store
33
+ Date:
34
+ - Mon, 06 May 2013 19:05:28 GMT
35
+ body:
36
+ encoding: US-ASCII
37
+ string: ''
38
+ http_version:
39
+ recorded_at: Mon, 06 May 2013 19:05:28 GMT
40
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,79 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/projects
6
+ body:
7
+ encoding: US-ASCII
8
+ string: project-to-delete
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.1.0
14
+ Content-Type:
15
+ - text/plain
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ Set-Cookie:
24
+ - JSESSIONID=3EB74D20976869AE3B99E96F4BF02D0D; Path=/; HttpOnly
25
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
26
+ Pragma:
27
+ - no-cache
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Cache-Control:
31
+ - no-cache
32
+ - no-store
33
+ Content-Type:
34
+ - application/json
35
+ Transfer-Encoding:
36
+ - chunked
37
+ Date:
38
+ - Fri, 03 May 2013 12:32:40 GMT
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '{"description":"","archived":false,"webUrl":"http://localhost:8111/project.html?projectId=project20","id":"project20","name":"project-to-delete","href":"/httpAuth/app/rest/7.0/projects/id:project20","buildTypes":null,"templates":null,"parameters":null}'
42
+ http_version:
43
+ recorded_at: Fri, 03 May 2013 12:32:40 GMT
44
+ - request:
45
+ method: delete
46
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/projects/project20
47
+ body:
48
+ encoding: US-ASCII
49
+ string: ''
50
+ headers:
51
+ Accept:
52
+ - application/json; charset=utf-8
53
+ User-Agent:
54
+ - TeamCity Ruby Client 0.1.0
55
+ response:
56
+ status:
57
+ code: 204
58
+ message: No Content
59
+ headers:
60
+ Server:
61
+ - Apache-Coyote/1.1
62
+ Set-Cookie:
63
+ - JSESSIONID=F1703C9A4C8A5251030D3AFD712FF0DB; Path=/; HttpOnly
64
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
65
+ Pragma:
66
+ - no-cache
67
+ Expires:
68
+ - Thu, 01 Jan 1970 00:00:00 GMT
69
+ Cache-Control:
70
+ - no-cache
71
+ - no-store
72
+ Date:
73
+ - Fri, 03 May 2013 12:32:40 GMT
74
+ body:
75
+ encoding: US-ASCII
76
+ string: ''
77
+ http_version:
78
+ recorded_at: Fri, 03 May 2013 12:32:40 GMT
79
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/projects/project2/parameters/delete-this-parameter
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - text/plain
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.1.0
14
+ response:
15
+ status:
16
+ code: 204
17
+ message: No Content
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Set-Cookie:
22
+ - JSESSIONID=FD69D43CD10814A307C46768ABF13651; Path=/; HttpOnly
23
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
24
+ Pragma:
25
+ - no-cache
26
+ Expires:
27
+ - Thu, 01 Jan 1970 00:00:00 GMT
28
+ Cache-Control:
29
+ - no-cache
30
+ - no-store
31
+ Date:
32
+ - Fri, 03 May 2013 19:55:40 GMT
33
+ body:
34
+ encoding: US-ASCII
35
+ string: ''
36
+ http_version:
37
+ recorded_at: Fri, 03 May 2013 19:55:40 GMT
38
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,86 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/projects/id:project11
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - TeamCity Ruby Client 0.2.0
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ Set-Cookie:
24
+ - JSESSIONID=696E3723E42972161ABF5953440B70EF; Path=/; HttpOnly
25
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
26
+ Pragma:
27
+ - no-cache
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Cache-Control:
31
+ - no-cache
32
+ - no-store
33
+ Content-Type:
34
+ - application/json
35
+ Transfer-Encoding:
36
+ - chunked
37
+ Date:
38
+ - Tue, 07 May 2013 21:19:17 GMT
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '{"description":"","archived":false,"webUrl":"http://localhost:8111/project.html?projectId=project11","id":"project11","name":"copy-project-testA","href":"/httpAuth/app/rest/7.0/projects/id:project11","buildTypes":{"buildType":[{"id":"bt6","name":"test","href":"/httpAuth/app/rest/7.0/buildTypes/id:bt6","projectName":"copy-project-testA","projectId":"project11","webUrl":"http://localhost:8111/viewType.html?buildTypeId=bt6"}]},"templates":null,"parameters":null}'
42
+ http_version:
43
+ recorded_at: Tue, 07 May 2013 21:19:17 GMT
44
+ - request:
45
+ method: post
46
+ uri: http://teamcity-ruby-client:teamcity@localhost:8111/httpAuth/app/rest/7.0/projects
47
+ body:
48
+ encoding: US-ASCII
49
+ string: <newProjectDescription copyAllAssociatedSettings="true" shareVCSRoots="true"
50
+ name="copy-project-testB" sourceProjectLocator="id:project11"/>
51
+ headers:
52
+ Accept:
53
+ - application/json; charset=utf-8
54
+ User-Agent:
55
+ - TeamCity Ruby Client 0.2.0
56
+ Content-Type:
57
+ - application/xml
58
+ response:
59
+ status:
60
+ code: 200
61
+ message: OK
62
+ headers:
63
+ Server:
64
+ - Apache-Coyote/1.1
65
+ Set-Cookie:
66
+ - JSESSIONID=74E16DAC7E989ADFE93500048AA660A2; Path=/; HttpOnly
67
+ - RememberMe=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
68
+ Pragma:
69
+ - no-cache
70
+ Expires:
71
+ - Thu, 01 Jan 1970 00:00:00 GMT
72
+ Cache-Control:
73
+ - no-cache
74
+ - no-store
75
+ Content-Type:
76
+ - application/json
77
+ Transfer-Encoding:
78
+ - chunked
79
+ Date:
80
+ - Tue, 07 May 2013 21:19:17 GMT
81
+ body:
82
+ encoding: US-ASCII
83
+ string: ! '{"description":"","archived":false,"webUrl":"http://localhost:8111/project.html?projectId=project23","id":"project23","name":"copy-project-testB","href":"/httpAuth/app/rest/7.0/projects/id:project23","buildTypes":{"buildType":[{"id":"bt7","name":"test","href":"/httpAuth/app/rest/7.0/buildTypes/id:bt7","projectName":"copy-project-testB","projectId":"project23","webUrl":"http://localhost:8111/viewType.html?buildTypeId=bt7"}]},"templates":null,"parameters":null}'
84
+ http_version:
85
+ recorded_at: Tue, 07 May 2013 21:19:17 GMT
86
+ recorded_with: VCR 2.4.0