veye 0.0.9 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +80 -29
  3. data/Makefile +6 -0
  4. data/README.md +12 -224
  5. data/bin/veye +13 -22
  6. data/changelogs.md +95 -0
  7. data/lib/veye/api/base_resource.rb +8 -9
  8. data/lib/veye/api/github.rb +77 -0
  9. data/lib/veye/api/json_response.rb +21 -25
  10. data/lib/veye/api/package.rb +98 -0
  11. data/lib/veye/api/project.rb +107 -0
  12. data/lib/veye/api/resource.rb +9 -8
  13. data/lib/veye/api/service.rb +15 -0
  14. data/lib/veye/api/user.rb +32 -0
  15. data/lib/veye/api.rb +22 -2
  16. data/lib/veye/base_executor.rb +13 -9
  17. data/lib/veye/github/delete.rb +10 -20
  18. data/lib/veye/github/import.rb +7 -14
  19. data/lib/veye/github/info.rb +6 -12
  20. data/lib/veye/github/list.rb +9 -19
  21. data/lib/veye/github/search.rb +9 -17
  22. data/lib/veye/github/sync.rb +9 -18
  23. data/lib/veye/github.rb +1 -1
  24. data/lib/veye/helpers/format_helpers.rb +15 -5
  25. data/lib/veye/package/follow.rb +24 -47
  26. data/lib/veye/package/info.rb +8 -25
  27. data/lib/veye/package/references.rb +9 -36
  28. data/lib/veye/package/search.rb +14 -24
  29. data/lib/veye/package.rb +14 -6
  30. data/lib/veye/pagination.rb +2 -0
  31. data/lib/veye/project/check.rb +39 -117
  32. data/lib/veye/project/license.rb +23 -0
  33. data/lib/veye/project.rb +4 -3
  34. data/lib/veye/service.rb +13 -17
  35. data/lib/veye/user/me.rb +11 -30
  36. data/lib/veye/user.rb +2 -1
  37. data/lib/veye/version.rb +1 -1
  38. data/lib/veye/views/github/info_csv.rb +3 -3
  39. data/lib/veye/views/github/info_json.rb +4 -0
  40. data/lib/veye/views/github/list_csv.rb +5 -3
  41. data/lib/veye/views/github/list_pretty.rb +2 -2
  42. data/lib/veye/views/github/list_table.rb +3 -2
  43. data/lib/veye/views/package/info_pretty.rb +1 -1
  44. data/lib/veye/views/package/search_csv.rb +2 -3
  45. data/lib/veye/views/package/search_table.rb +1 -3
  46. data/lib/veye/views/package.rb +1 -1
  47. data/lib/veye/views/project/licence_csv.rb +3 -3
  48. data/lib/veye/views/project/licence_json.rb +1 -1
  49. data/lib/veye/views/project/licence_pretty.rb +1 -1
  50. data/lib/veye/views/project/licence_table.rb +3 -3
  51. data/lib/veye/views/user/profile_table.rb +4 -1
  52. data/lib/veye/views/user.rb +3 -1
  53. data/lib/veye.rb +29 -61
  54. data/test/api/github_test.rb +84 -0
  55. data/test/api/package_test.rb +80 -0
  56. data/test/api/project_test.rb +118 -0
  57. data/test/api/service_test.rb +15 -0
  58. data/test/api/user_test.rb +30 -0
  59. data/test/fixtures/vcr_cassettes/github_delete.yml +48 -0
  60. data/test/fixtures/vcr_cassettes/github_import.yml +53 -0
  61. data/test/fixtures/vcr_cassettes/github_info.yml +49 -0
  62. data/test/fixtures/vcr_cassettes/github_list.yml +80 -0
  63. data/test/fixtures/vcr_cassettes/github_sync.yml +48 -0
  64. data/test/fixtures/vcr_cassettes/package_follow.yml +52 -0
  65. data/test/fixtures/vcr_cassettes/package_follow_status.yml +48 -0
  66. data/test/fixtures/vcr_cassettes/package_info.yml +56 -0
  67. data/test/fixtures/vcr_cassettes/package_reference.yml +46 -0
  68. data/test/fixtures/vcr_cassettes/package_search.yml +46 -0
  69. data/test/fixtures/vcr_cassettes/package_unfollow.yml +48 -0
  70. data/test/fixtures/vcr_cassettes/project_delete.yml +48 -0
  71. data/test/fixtures/vcr_cassettes/project_get.yml +49 -0
  72. data/test/fixtures/vcr_cassettes/project_license.yml +49 -0
  73. data/test/fixtures/vcr_cassettes/project_list.yml +48 -0
  74. data/test/fixtures/vcr_cassettes/project_update.yml +105 -0
  75. data/test/fixtures/vcr_cassettes/project_upload.yml +104 -0
  76. data/test/fixtures/vcr_cassettes/services_ping.yml +46 -0
  77. data/test/fixtures/vcr_cassettes/user_get_favorites.yml +48 -0
  78. data/test/fixtures/vcr_cassettes/user_get_profile.yml +48 -0
  79. data/test/github_delete_test.rb +31 -0
  80. data/test/github_import_test.rb +94 -0
  81. data/test/github_info_test.rb +73 -0
  82. data/test/github_list_test.rb +84 -0
  83. data/test/github_sync_test.rb +20 -0
  84. data/test/package_follow_test.rb +38 -0
  85. data/test/package_info_test.rb +73 -0
  86. data/test/package_reference_test.rb +67 -0
  87. data/test/package_search_test.rb +66 -0
  88. data/test/project_check_test.rb +326 -0
  89. data/test/project_license_test.rb +72 -0
  90. data/test/service_test.rb +29 -0
  91. data/test/test_helper.rb +29 -4
  92. data/test/user_me_test.rb +126 -0
  93. data/veye.gemspec +45 -0
  94. metadata +163 -37
  95. data/DEPENDENCIES.md +0 -25
  96. data/lib/veye/helpers/repo_helpers.rb +0 -5
  97. data/lib/veye/project/licence.rb +0 -38
  98. data/test/default_test.rb +0 -14
@@ -0,0 +1,104 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://www.versioneye.com/api/v2/projects
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: "--134613\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"maven-1.0.1.pom.xml\"\r\nContent-Type:
9
+ application/xml\r\n\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n
10
+ \ Licensed to the Apache Software Foundation (ASF) under one or more\n contributor
11
+ license agreements. See the NOTICE file distributed with\n this work for
12
+ additional information regarding copyright ownership.\n The ASF licenses
13
+ this file to You under the Apache License, Version 2.0\n (the \"License\");
14
+ you may not use this file except in compliance with\n the License. You
15
+ may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n
16
+ \ Unless required by applicable law or agreed to in writing, software\n
17
+ \ distributed under the License is distributed on an \"AS IS\" BASIS,\n
18
+ \ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n
19
+ \ See the License for the specific language governing permissions and\n
20
+ \ limitations under the License.\n -->\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n
21
+ \ xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0
22
+ http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n <modelVersion>4.0.0</modelVersion>\n\n
23
+ \ <parent>\n <artifactId>openejb</artifactId>\n <groupId>org.apache.openejb</groupId>\n
24
+ \ <version>4.5.1</version>\n </parent>\n\n <groupId>org.apache.openejb.maven</groupId>\n
25
+ \ <version>1.0.1</version>\n <artifactId>maven</artifactId>\n <packaging>pom</packaging>\n
26
+ \ <name>OpenEJB :: Maven Plugins</name>\n\n <modules>\n <module>tomee-maven-plugin</module>\n
27
+ \ <module>tomee-embedded-maven-plugin</module>\n <module>openejb-embedded-maven-plugin</module>\n
28
+ \ <module>maven-util</module>\n <module>tomee-webapp-archetype</module>\n
29
+ \ </modules>\n\n <dependencyManagement>\n <dependencies>\n <dependency>\n
30
+ \ <groupId>org.apache.maven.plugin-tools</groupId>\n <artifactId>maven-plugin-annotations</artifactId>\n
31
+ \ <version>3.1</version>\n </dependency>\n <dependency>\n
32
+ \ <groupId>org.codehaus.plexus</groupId>\n <artifactId>plexus-utils</artifactId>\n
33
+ \ <version>3.0.1</version>\n </dependency>\n <dependency>\n
34
+ \ <groupId>org.apache.maven</groupId>\n <artifactId>maven-plugin-api</artifactId>\n
35
+ \ <version>${maven.version}</version>\n </dependency>\n <dependency>\n
36
+ \ <groupId>org.apache.maven</groupId>\n <artifactId>maven-project</artifactId>\n
37
+ \ <version>${maven.version}</version>\n </dependency>\n <dependency>\n
38
+ \ <groupId>org.apache.maven</groupId>\n <artifactId>maven-core</artifactId>\n
39
+ \ <version>${maven.version}</version>\n </dependency>\n <dependency>\n
40
+ \ <groupId>org.apache.maven</groupId>\n <artifactId>maven-artifact</artifactId>\n
41
+ \ <version>${maven.version}</version>\n </dependency>\n <dependency>\n
42
+ \ <groupId>org.sonatype.aether</groupId>\n <artifactId>aether-api</artifactId>\n
43
+ \ <version>${aether.version}</version>\n </dependency>\n <dependency>\n
44
+ \ <groupId>org.apache.openejb</groupId>\n <artifactId>openejb-core</artifactId>\n
45
+ \ <version>${openejb.version}</version>\n </dependency>\n <dependency>\n
46
+ \ <groupId>org.apache.openejb</groupId>\n <artifactId>openejb-client</artifactId>\n
47
+ \ <version>${openejb.version}</version>\n </dependency>\n </dependencies>\n
48
+ \ </dependencyManagement>\n\n <properties>\n <maven.version>2.2.1</maven.version>\n
49
+ \ </properties>\n\n <build>\n <plugins>\n <plugin>\n <groupId>org.apache.maven.plugins</groupId>\n
50
+ \ <artifactId>maven-plugin-plugin</artifactId>\n <version>3.1</version>\n
51
+ \ <executions>\n <execution>\n <id>mojo-descriptor</id>\n
52
+ \ <goals>\n <goal>descriptor</goal>\n </goals>\n
53
+ \ </execution>\n </executions>\n <configuration>\n <goalPrefix>${maven-plugin.prefix}</goalPrefix>\n
54
+ \ <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>\n
55
+ \ </configuration>\n </plugin>\n </plugins>\n </build>\n\n
56
+ \ <reporting>\n <plugins>\n <plugin>\n <groupId>org.apache.maven.plugins</groupId>\n
57
+ \ <artifactId>maven-plugin-plugin</artifactId>\n <version>3.0</version>\n
58
+ \ </plugin>\n </plugins>\n </reporting>\n</project>\n\r\n--134613\r\nContent-Disposition:
59
+ form-data; name=\"api_key\"\r\n\r\nba7d93beb5de7820764e\r\n--134613--\r\n"
60
+ headers:
61
+ Accept:
62
+ - "*/*; q=0.5, application/xml"
63
+ Accept-Encoding:
64
+ - gzip, deflate
65
+ Content-Length:
66
+ - '4455'
67
+ Content-Type:
68
+ - multipart/form-data; boundary=134613
69
+ User-Agent:
70
+ - Ruby
71
+ response:
72
+ status:
73
+ code: 201
74
+ message: Created
75
+ headers:
76
+ Server:
77
+ - nginx/1.4.6 (Ubuntu)
78
+ Date:
79
+ - Sun, 19 Jul 2015 18:27:23 GMT
80
+ Content-Type:
81
+ - application/json
82
+ Content-Length:
83
+ - '3467'
84
+ Connection:
85
+ - keep-alive
86
+ Strict-Transport-Security:
87
+ - max-age=31536000
88
+ Set-Cookie:
89
+ - api_key=ba7d93beb5de7820764e; secure
90
+ Etag:
91
+ - W/"829f6bfcb1208b615d8dedff01dd79f0"
92
+ Cache-Control:
93
+ - max-age=0, private, must-revalidate
94
+ X-Request-Id:
95
+ - 740525e9-ed68-4d90-a1f3-1bcbbb23c1b2
96
+ X-Runtime:
97
+ - '1.005053'
98
+ body:
99
+ encoding: UTF-8
100
+ string: '{"id":"55abec3d633134000d068baf","project_key":"maven2_openejb_maven_plugins_1","name":"OpenEJB
101
+ :: Maven Plugins","project_type":"Maven2","public":true,"private_scm":false,"period":"daily","source":"API","dep_number":11,"out_number":10,"licenses_red":0,"licenses_unknown":3,"created_at":"2015-07-19T18:28:13.572Z","updated_at":"2015-07-19T18:28:14.121Z","license_whitelist":null,"dependencies":[{"name":"maven-plugin-annotations","prod_key":"org.apache.maven.plugin-tools/maven-plugin-annotations","group_id":"org.apache.maven.plugin-tools","artifact_id":"maven-plugin-annotations","language":"java","version_current":"3.4","version_requested":"3.1","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"plexus-utils","prod_key":"org.codehaus.plexus/plexus-utils","group_id":"org.codehaus.plexus","artifact_id":"plexus-utils","language":"java","version_current":"3.0.22","version_requested":"3.0.1","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"maven-plugin-api","prod_key":"org.apache.maven/maven-plugin-api","group_id":"org.apache.maven","artifact_id":"maven-plugin-api","language":"java","version_current":"3.3.3","version_requested":"2.2.1","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"maven-project","prod_key":"org.apache.maven/maven-project","group_id":"org.apache.maven","artifact_id":"maven-project","language":"java","version_current":"2.2.1","version_requested":"2.2.1","comparator":"=","unknown":false,"outdated":false,"stable":true},{"name":"maven-core","prod_key":"org.apache.maven/maven-core","group_id":"org.apache.maven","artifact_id":"maven-core","language":"java","version_current":"3.3.3","version_requested":"2.2.1","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"maven-artifact","prod_key":"org.apache.maven/maven-artifact","group_id":"org.apache.maven","artifact_id":"maven-artifact","language":"java","version_current":"3.3.3","version_requested":"2.2.1","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"aether-api","prod_key":"org.sonatype.aether/aether-api","group_id":"org.sonatype.aether","artifact_id":"aether-api","language":"java","version_current":"1.13.1","version_requested":"${aether.version}","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"openejb-core","prod_key":"org.apache.openejb/openejb-core","group_id":"org.apache.openejb","artifact_id":"openejb-core","language":"java","version_current":"4.7.2","version_requested":"${openejb.version}","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"openejb-client","prod_key":"org.apache.openejb/openejb-client","group_id":"org.apache.openejb","artifact_id":"openejb-client","language":"java","version_current":"4.7.2","version_requested":"${openejb.version}","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"maven-plugin-plugin","prod_key":"org.apache.maven.plugins/maven-plugin-plugin","group_id":"org.apache.maven.plugins","artifact_id":"maven-plugin-plugin","language":"java","version_current":"3.4","version_requested":"3.1","comparator":"=","unknown":false,"outdated":true,"stable":true},{"name":"maven-plugin-plugin","prod_key":"org.apache.maven.plugins/maven-plugin-plugin","group_id":"org.apache.maven.plugins","artifact_id":"maven-plugin-plugin","language":"java","version_current":"3.4","version_requested":"3.0","comparator":"=","unknown":false,"outdated":true,"stable":true}]}'
102
+ http_version:
103
+ recorded_at: Sun, 19 Jul 2015 18:25:12 GMT
104
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.versioneye.com/api/v2/services/ping
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.6 (Ubuntu)
23
+ Date:
24
+ - Mon, 17 Aug 2015 16:35:41 GMT
25
+ Content-Type:
26
+ - application/json
27
+ Content-Length:
28
+ - '33'
29
+ Connection:
30
+ - keep-alive
31
+ Strict-Transport-Security:
32
+ - max-age=31536000
33
+ Etag:
34
+ - W/"a11f1444ce560d703c09ea68efefc054"
35
+ Cache-Control:
36
+ - max-age=0, private, must-revalidate
37
+ X-Request-Id:
38
+ - dc66866f-7d6f-41ae-8695-a827909396a5
39
+ X-Runtime:
40
+ - '0.056825'
41
+ body:
42
+ encoding: UTF-8
43
+ string: '{"success":true,"message":"pong"}'
44
+ http_version:
45
+ recorded_at: Mon, 17 Aug 2015 16:35:26 GMT
46
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.versioneye.com/api/v2/me/favorites?api_key=ba7d93beb5de7820764e&page=1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.6 (Ubuntu)
23
+ Date:
24
+ - Mon, 17 Aug 2015 16:47:33 GMT
25
+ Content-Type:
26
+ - application/json
27
+ Content-Length:
28
+ - '3571'
29
+ Connection:
30
+ - keep-alive
31
+ Strict-Transport-Security:
32
+ - max-age=31536000
33
+ Set-Cookie:
34
+ - api_key=ba7d93beb5de7820764e; secure
35
+ Etag:
36
+ - W/"60e1d1db1644d4ab7e9b545ae10a8c63"
37
+ Cache-Control:
38
+ - max-age=0, private, must-revalidate
39
+ X-Request-Id:
40
+ - 80331924-fc96-4647-b1e8-f58422af816a
41
+ X-Runtime:
42
+ - '0.227053'
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"user":{"fullname":"Tim Gluz","username":"timgluz"},"favorites":[{"name":"h2","language":"java","prod_key":"com.h2database/h2","version":"1.4.188","prod_type":"Maven2"},{"name":"mallet","language":"java","prod_key":"cc.mallet/mallet","version":"2.0.7","prod_type":"Maven2"},{"name":"aws-java-sdk","language":"java","prod_key":"com.amazonaws/aws-java-sdk","version":"1.10.11","prod_type":"Maven2"},{"name":"clojure","language":"java","prod_key":"org.clojure/clojure","version":"1.7.0","prod_type":"Maven2"},{"name":"clojure-contrib","language":"java","prod_key":"org.clojure/clojure-contrib","version":"1.2.0","prod_type":"Maven2"},{"name":"data.json","language":"java","prod_key":"org.clojure/data.json","version":"0.2.6","prod_type":"Maven2"},{"name":"tools.logging","language":"java","prod_key":"org.clojure/tools.logging","version":"0.3.1","prod_type":"Maven2"},{"name":"tools.namespace","language":"java","prod_key":"org.clojure/tools.namespace","version":"0.2.11","prod_type":"Maven2"},{"name":"tools.nrepl","language":"java","prod_key":"org.clojure/tools.nrepl","version":"0.2.10","prod_type":"Maven2"},{"name":"neo4j","language":"java","prod_key":"org.neo4j/neo4j","version":"2.2.4","prod_type":"Maven2"},{"name":"core.match","language":"java","prod_key":"org.clojure/core.match","version":"0.2.2","prod_type":"Maven2"},{"name":"data.codec","language":"java","prod_key":"org.clojure/data.codec","version":"0.1.0","prod_type":"Maven2"},{"name":"data.csv","language":"java","prod_key":"org.clojure/data.csv","version":"0.1.3","prod_type":"Maven2"},{"name":"data.zip","language":"java","prod_key":"org.clojure/data.zip","version":"0.1.1","prod_type":"Maven2"},{"name":"tools.cli","language":"java","prod_key":"org.clojure/tools.cli","version":"0.3.2","prod_type":"Maven2"},{"name":"lenskit","language":"java","prod_key":"org.grouplens.lenskit/lenskit","version":"2.0.5","prod_type":"Maven2"},{"name":"clojurescript","language":"java","prod_key":"org.clojure/clojurescript","version":"1.7.107","prod_type":"Maven2"},{"name":"google-closure-library","language":"java","prod_key":"org.clojure/google-closure-library","version":"0.0-20140226-71326067","prod_type":"Maven2"},{"name":"actionmailer","language":"ruby","prod_key":"actionmailer","version":"4.2.3","prod_type":"RubyGem"},{"name":"agent","language":"ruby","prod_key":"agent","version":"0.11.0","prod_type":"RubyGem"},{"name":"ar-octopus","language":"ruby","prod_key":"ar-octopus","version":"0.8.5","prod_type":"RubyGem"},{"name":"aspector","language":"ruby","prod_key":"aspector","version":"0.14.0","prod_type":"RubyGem"},{"name":"aws-s3","language":"ruby","prod_key":"aws-s3","version":"0.6.3","prod_type":"RubyGem"},{"name":"bunny","language":"ruby","prod_key":"bunny","version":"2.1.0","prod_type":"RubyGem"},{"name":"command_line_reporter","language":"ruby","prod_key":"command_line_reporter","version":"3.3.5","prod_type":"RubyGem"},{"name":"coreaudio","language":"ruby","prod_key":"coreaudio","version":"0.0.11","prod_type":"RubyGem"},{"name":"delayed_job","language":"ruby","prod_key":"delayed_job","version":"4.0.6","prod_type":"RubyGem"},{"name":"delayed_job_active_record","language":"ruby","prod_key":"delayed_job_active_record","version":"4.0.3","prod_type":"RubyGem"},{"name":"delayed_job_mongoid","language":"ruby","prod_key":"delayed_job_mongoid","version":"2.1.0","prod_type":"RubyGem"},{"name":"exception_notification","language":"ruby","prod_key":"exception_notification","version":"4.1.1","prod_type":"RubyGem"}],"paging":{"current_page":1,"per_page":30,"total_pages":9,"total_entries":248}}'
46
+ http_version:
47
+ recorded_at: Mon, 17 Aug 2015 16:47:18 GMT
48
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.versioneye.com/api/v2/me?api_key=ba7d93beb5de7820764e
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.6 (Ubuntu)
23
+ Date:
24
+ - Mon, 17 Aug 2015 16:47:33 GMT
25
+ Content-Type:
26
+ - application/json
27
+ Content-Length:
28
+ - '184'
29
+ Connection:
30
+ - keep-alive
31
+ Strict-Transport-Security:
32
+ - max-age=31536000
33
+ Set-Cookie:
34
+ - api_key=ba7d93beb5de7820764e; secure
35
+ Etag:
36
+ - W/"e3978848908037875a8f9d6c762f70d6"
37
+ Cache-Control:
38
+ - max-age=0, private, must-revalidate
39
+ X-Request-Id:
40
+ - a972c5e1-9122-4ad7-83a0-d11910650926
41
+ X-Runtime:
42
+ - '0.125682'
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"fullname":"Tim Gluz","username":"timgluz","email":"timgluz@gmail.com","admin":false,"deleted_user":false,"notifications":{"new":0,"total":1767},"enterprise_projects":1,"active":true}'
46
+ http_version:
47
+ recorded_at: Mon, 17 Aug 2015 16:47:19 GMT
48
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ class GithubDeleteTest < Minitest::Test
4
+ def setup
5
+ init_environment
6
+ @api_key = 'ba7d93beb5de7820764e'
7
+ @repo_name = 'versioneye/veye'
8
+ @branch = "master"
9
+ @opts = {branch: @branch}
10
+
11
+ import_project
12
+ end
13
+
14
+ def import_project
15
+ #import project before testing
16
+ VCR.use_cassette('github_import') do
17
+ res = Veye::API::Github.import_repo(@api_key, @repo_name, @branch, 'Gemfile.locl')
18
+ end
19
+ end
20
+
21
+ def test_delete_default
22
+ VCR.use_cassette('github_delete') do
23
+ res = capture_stdout do
24
+ Veye::Github::Delete.delete_repo(@api_key, @repo_name, @opts)
25
+ end
26
+
27
+ refute_nil res, "No command output"
28
+ assert_equal "\e[32mDeleted\n\e[0m", res
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,94 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class GithubImportTest < Minitest::Test
5
+ def setup
6
+ init_environment
7
+ @api_key = 'ba7d93beb5de7820764e'
8
+ @repo_name = 'versioneye/veye'
9
+ @branch = "master"
10
+ @file = "Gemfile.lock"
11
+
12
+ @opts = {
13
+ file: @file,
14
+ branch: @branch
15
+ }
16
+ end
17
+
18
+ def test_import_default
19
+ VCR.use_cassette('github_import') do
20
+ res = capture_stdout do
21
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @opts)
22
+ end
23
+
24
+ refute_nil res, "Command output was nil"
25
+ rows = res.split(/\n/)
26
+ assert_equal "\t\e[32mversioneye/veye\e[0m - \e[1mruby\e[0m", rows[0]
27
+ assert_equal "\tDescription : VersionEye command line tool ", rows[1]
28
+ assert_equal "\tOwner login : versioneye", rows[2]
29
+ assert_equal "\tOwner type : organization", rows[3]
30
+ assert_equal "\tPrivate : false", rows[4]
31
+ assert_equal "\tFork : false", rows[5]
32
+ assert_equal "\tBranches : ", rows[6]
33
+ assert_equal "\tImported : rubygem_versioneye_veye_1", rows[7]
34
+ end
35
+ end
36
+
37
+ def test_import_csv
38
+ VCR.use_cassette('github_import') do
39
+ res = capture_stdout do
40
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @opts.merge({format: 'csv'}))
41
+ end
42
+
43
+ refute_nil res, "Command output was nil"
44
+ dt = CSV.parse(res)
45
+ assert_equal ["name", "language", "owner_login", "owner_type", "private", "fork", "branches", "imported_projects", "description"], dt[0]
46
+ assert_equal ["versioneye/veye", "ruby", "versioneye", "organization", "false"], dt[1].take(5)
47
+ assert_equal ["false", nil, "rubygem_versioneye_veye_1", "VersionEye command line tool "], dt[1].drop(5)
48
+ end
49
+ end
50
+
51
+ def test_import_json
52
+ VCR.use_cassette('github_import') do
53
+ res = capture_stdout do
54
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @opts.merge({format: 'json'}))
55
+ end
56
+
57
+ refute_nil res, "No command output"
58
+ dt = JSON.parse(res)
59
+ repo = dt["repo"]
60
+ assert_equal "veye", repo["name"]
61
+ assert_equal "versioneye/veye", repo["fullname"]
62
+ assert_equal "ruby", repo["language"]
63
+ assert_equal "versioneye", repo["owner_login"]
64
+ assert_equal "organization", repo["owner_type"]
65
+ assert_equal false, repo["private"]
66
+ assert_equal false, repo["fork"]
67
+ assert_equal nil, repo["branches"]
68
+
69
+ refute_nil dt["projects"]
70
+ project = dt["projects"].first
71
+ assert_equal "rubygem_versioneye_veye_1", project["project_key"]
72
+ assert_equal "versioneye/veye", project["name"]
73
+ assert_equal "RubyGem", project["project_type"]
74
+ assert_equal true, project["public"]
75
+ assert_equal "github", project["source"]
76
+ end
77
+ end
78
+
79
+ def test_import_table
80
+ VCR.use_cassette('github_import') do
81
+ res = capture_stdout do
82
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @opts.merge({format: 'table'}))
83
+ end
84
+
85
+ refute_nil res, "No command output"
86
+ rows = res.split(/\n/)
87
+ assert_match(/\|\s+Repository information\s+\|/, rows[1])
88
+ assert_match(/\| name\s+\| language \| owner_login \| owner_type\s+\| private \| fork\s+\|/ , rows[3])
89
+ assert_match(/branches \| imported_projects\s+\| description\s+\|/, rows[3])
90
+ assert_match(/\| versioneye \| veye | ruby\s+\| versioneye \| organization \| false/, rows[5])
91
+ assert_match(/\| false \|\s+\| rubygem_versioneye_veye_1 \| VersionEye command line tool\s+\|/, rows[5])
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,73 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class GithubInfoTest < Minitest::Test
5
+ def setup
6
+ init_environment
7
+ @api_key = 'ba7d93beb5de7820764e'
8
+ @repo_name = 'versioneye/veye'
9
+ end
10
+
11
+ def test_get_repo_default
12
+ VCR.use_cassette('github_info') do
13
+ output = capture_stdout do
14
+ Veye::Github::Info.get_repo(@api_key, @repo_name, {})
15
+ end
16
+
17
+ refute_nil output
18
+ rows = output.split(/\n/)
19
+ assert_equal "\t\e[32mversioneye/veye\e[0m - \e[1mruby\e[0m", rows[0]
20
+ assert_equal "\tDescription : VersionEye command line tool ", rows[1]
21
+ assert_equal "\tOwner login : versioneye", rows[2]
22
+ assert_equal "\tOwner type : organization", rows[3]
23
+ assert_equal "\tPrivate : false", rows[4]
24
+ assert_equal "\tFork : false", rows[5]
25
+ assert_equal "\tBranches : master, references", rows[6]
26
+ end
27
+ end
28
+
29
+ def test_get_repo_csv
30
+ VCR.use_cassette('github_info') do
31
+ output = capture_stdout do
32
+ Veye::Github::Info.get_repo(@api_key, @repo_name, {format: 'csv'})
33
+ end
34
+
35
+ refute nil, output
36
+ rows = CSV.parse(output)
37
+ assert_equal ["name", "language", "owner_login", "owner_type", "private", "fork", "branches", "imported_projects", "description"], rows[0]
38
+ assert_equal ["versioneye/veye", "ruby", "versioneye", "organization", "false", "false", "master|references", nil, "VersionEye command line tool "], rows[1]
39
+ end
40
+ end
41
+
42
+ def test_get_repo_json
43
+ VCR.use_cassette('github_info') do
44
+ output = capture_stdout do
45
+ Veye::Github::Info.get_repo(@api_key, @repo_name, {format: 'json'})
46
+ end
47
+
48
+ refute nil, output
49
+ dt = JSON.parse(output)
50
+ repo = dt["repo"]
51
+ assert_equal "versioneye/veye", repo["fullname"]
52
+ assert_equal "ruby", repo["language"]
53
+ assert_equal "versioneye", repo["owner_login"]
54
+ assert_equal "organization", repo["owner_type"]
55
+ assert_equal false, repo["private"]
56
+ assert_equal false, repo["fork"]
57
+ assert_equal ["master", "references"], repo["branches"]
58
+ end
59
+ end
60
+
61
+ def test_get_repo_table
62
+ VCR.use_cassette('github_info') do
63
+ output = capture_stdout do
64
+ Veye::Github::Info.get_repo(@api_key, @repo_name, {format: 'table'})
65
+ end
66
+
67
+ refute nil, output
68
+ rows = output.split(/\n/)
69
+ assert_equal "| name | language | owner_login | owner_type | private | fork | branches | imported_projects | description |", rows[3]
70
+ assert_equal "| versioneye/veye | ruby | versioneye | organization | false | false | master | | VersionEye command line tool |", rows[5]
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,84 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class GithubListTest < Minitest::Test
5
+ def setup
6
+ init_environment
7
+ @api_key = 'ba7d93beb5de7820764e'
8
+ end
9
+
10
+ def test_get_list_default
11
+ VCR.use_cassette('github_list') do
12
+ output = capture_stdout do
13
+ Veye::Github::List.get_list(@api_key, {})
14
+ end
15
+
16
+ refute_nil output
17
+ rows = output.split(/\n/)
18
+ assert_equal " 1 - \e[32m\e[1mversioneye_update\e[0m", rows[0]
19
+ assert_equal "\tLanguage : shell", rows[1]
20
+ assert_equal "\tOwner name : versioneye", rows[2]
21
+ assert_equal "\tOwner type : organization", rows[3]
22
+ assert_equal "\tPrivate : false", rows[4]
23
+ assert_equal "\tFork : false", rows[5]
24
+ assert_equal "\tBranches : ", rows[6]
25
+ assert_match(/\tDescription\s+:\s+\w+/, rows[7])
26
+ assert_equal "\tImported : ", rows[8]
27
+ end
28
+ end
29
+
30
+ def test_get_list_csv
31
+ VCR.use_cassette('github_list') do
32
+ output = capture_stdout do
33
+ Veye::Github::List.get_list(@api_key, {format: 'csv'})
34
+ end
35
+
36
+ refute_nil output
37
+ rows = CSV.parse(output)
38
+ assert_equal ["nr", "fullname", "language", "owner_login", "owner_type"], rows[0].take(5)
39
+ assert_equal ["private", "fork", "branches", "imported", "description"], rows[0].drop(5)
40
+
41
+ assert_equal ["1", "versioneye/versioneye_update", "shell", "versioneye", "organization"], rows[1].take(5)
42
+ assert_equal ["false", "false", nil, nil, "Update an existing project at VersionEye via the API with CURL"], rows[1].drop(5)
43
+ end
44
+ end
45
+
46
+ def test_get_list_json
47
+ VCR.use_cassette('github_list') do
48
+ output = capture_stdout do
49
+ Veye::Github::List.get_list(@api_key, {format: 'json'})
50
+ end
51
+
52
+ refute_nil output
53
+ dt = JSON.parse(output)
54
+ item = dt["repos"][0]
55
+ assert_equal "versioneye_update", item["name"]
56
+ assert_equal "shell", item["language"]
57
+ assert_equal "versioneye", item["owner_login"]
58
+ assert_equal "organization", item["owner_type"]
59
+ assert_equal false, item["private"]
60
+ assert_equal false, item["fork"]
61
+ assert_equal nil, item["branches"]
62
+ assert_equal nil, item["imported"]
63
+ end
64
+ end
65
+
66
+ def test_get_list_table
67
+ VCR.use_cassette('github_list') do
68
+ output = capture_stdout do
69
+ Veye::Github::List.get_list(@api_key, {format: 'table'})
70
+ end
71
+
72
+ refute_nil output
73
+ rows = output.split(/\n/)
74
+ assert_match /\A\+\-.*/, rows[0]
75
+ assert_match( /\| index \| fullname\s+\| language\s+\| owner_login\s+/, rows[3])
76
+ assert_match(/\| owner_type\s+\| private \| fork\s+\| branches \| imported \|/,
77
+ rows[3])
78
+
79
+ assert_match(/ 1\s+\| versioneye\/versioneye_update\s+\| shell\s+\|/, rows[5])
80
+ assert_match(/\| versioneye\s+\| organization\s+\| false\s+\| false \|\s+\|\s+\|/, rows[5])
81
+ end
82
+ end
83
+ end
84
+
@@ -0,0 +1,20 @@
1
+ require 'test_helper'
2
+
3
+ class GithubSyncTest < Minitest::Test
4
+ def setup
5
+ init_environment # load config files and initialize options
6
+ @api_key = 'ba7d93beb5de7820764e'
7
+ end
8
+
9
+ def test_sync_when_success
10
+ VCR.use_cassette('github_sync') do
11
+ output = capture_stdout do
12
+ Veye::Github::Sync.import_all(@api_key, {})
13
+ end
14
+
15
+ refute_nil output
16
+ expected_str = "\e[31mNo changes.\e[0m - Use `force` flag if you want to reload everything.\n"
17
+ assert_equal expected_str, output
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,38 @@
1
+ require 'test_helper'
2
+
3
+ class PackageFollowTest < MiniTest::Test
4
+ def setup
5
+ init_environment
6
+ @api_key = "ba7d93beb5de7820764e"
7
+ end
8
+
9
+ def test_get_follow_status
10
+ VCR.use_cassette('package_follow_status') do
11
+ out = capture_stdout do
12
+ Veye::Package::Follow.get_follow_status('ruby/ruby', @api_key)
13
+ end
14
+ expected = "Following `ruby`: \e[32mfalse\e[0m\n"
15
+ assert_equal expected, out
16
+ end
17
+ end
18
+
19
+ def test_follow
20
+ VCR.use_cassette('package_follow') do
21
+ out = capture_stdout do
22
+ Veye::Package::Follow.follow('ruby/ruby', @api_key)
23
+ end
24
+ expected = "Following `ruby`: \e[32mtrue\e[0m\n"
25
+ assert_equal expected, out
26
+ end
27
+ end
28
+
29
+ def test_unfollow
30
+ VCR.use_cassette('package_unfollow') do
31
+ out = capture_stdout do
32
+ Veye::Package::Follow.unfollow('ruby/ruby', @api_key)
33
+ end
34
+ expected = "Following `ruby`: \e[32mfalse\e[0m\n"
35
+ assert_equal expected, out
36
+ end
37
+ end
38
+ end