veye 0.0.9 → 0.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.
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