intrigue-ident 0.4 → 0.6
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/Gemfile.lock +0 -6
- data/data/logos/apache.png +0 -0
- data/data/logos/generic.png +0 -0
- data/data/logos/oracle_java.png +0 -0
- data/data/logos/php.png +0 -0
- data/data/logos/varnish.png +0 -0
- data/intrigue-ident.gemspec +2 -2
- data/lib/checks/acquia.rb +26 -0
- data/lib/checks/adobe.rb +38 -0
- data/lib/checks/akamai.rb +6 -4
- data/lib/checks/amazon.rb +54 -8
- data/lib/checks/apache.rb +113 -0
- data/lib/checks/aruba.rb +6 -3
- data/lib/checks/atlassian.rb +46 -28
- data/lib/checks/automattic.rb +189 -0
- data/lib/checks/axis.rb +24 -0
- data/lib/checks/banu.rb +28 -0
- data/lib/checks/base.rb +58 -0
- data/lib/checks/checkpoint.rb +55 -0
- data/lib/checks/chef.rb +16 -12
- data/lib/checks/cisco.rb +85 -12
- data/lib/checks/citrix.rb +81 -6
- data/lib/checks/cloudflare.rb +40 -30
- data/lib/checks/cpanel.rb +8 -6
- data/lib/checks/craft.rb +25 -0
- data/lib/checks/django.rb +8 -6
- data/lib/checks/docuwiki.rb +25 -0
- data/lib/checks/drupal.rb +25 -8
- data/lib/checks/f5.rb +35 -7
- data/lib/checks/fastly.rb +22 -7
- data/lib/checks/generic.rb +34 -6
- data/lib/checks/gitlab.rb +12 -6
- data/lib/checks/google.rb +19 -6
- data/lib/checks/grafana.rb +8 -6
- data/lib/checks/groovy.rb +24 -0
- data/lib/checks/heroku.rb +27 -0
- data/lib/checks/hp.rb +25 -0
- data/lib/checks/ibm.rb +77 -0
- data/lib/checks/ivanti.rb +27 -0
- data/lib/checks/jamf.rb +26 -0
- data/lib/checks/jekyll.rb +28 -0
- data/lib/checks/jenkins.rb +24 -18
- data/lib/checks/jive.rb +25 -0
- data/lib/checks/jobvite.rb +25 -0
- data/lib/checks/joomla.rb +9 -6
- data/lib/checks/jupyter.rb +26 -0
- data/lib/checks/lighttpd.rb +28 -0
- data/lib/checks/limesuvey.rb +8 -6
- data/lib/checks/lithium.rb +15 -11
- data/lib/checks/lotus.rb +27 -0
- data/lib/checks/magento.rb +8 -6
- data/lib/checks/mailchimp.rb +25 -0
- data/lib/checks/mcafee.rb +8 -6
- data/lib/checks/mediawiki.rb +31 -32
- data/lib/checks/microsoft.rb +240 -34
- data/lib/checks/microtik.rb +27 -0
- data/lib/checks/nagios.rb +8 -6
- data/lib/checks/new_relic.rb +25 -0
- data/lib/checks/nginx.rb +40 -0
- data/lib/checks/okta.rb +25 -0
- data/lib/checks/ookla.rb +27 -0
- data/lib/checks/openresty.rb +25 -0
- data/lib/checks/oracle.rb +208 -17
- data/lib/checks/palo_alto.rb +6 -4
- data/lib/checks/pantheon.rb +26 -0
- data/lib/checks/pardot.rb +8 -6
- data/lib/checks/perfectsense.rb +27 -0
- data/lib/checks/pfsense.rb +8 -9
- data/lib/checks/php.rb +41 -0
- data/lib/checks/phpmyadmin.rb +8 -6
- data/lib/checks/ping_identity.rb +27 -0
- data/lib/checks/pivotal.rb +24 -0
- data/lib/checks/plesk.rb +41 -0
- data/lib/checks/pulse_secure.rb +27 -0
- data/lib/checks/rabbitmq.rb +15 -11
- data/lib/checks/restlet.rb +28 -0
- data/lib/checks/ruckus_wireless.rb +24 -0
- data/lib/checks/sailpoint.rb +27 -0
- data/lib/checks/sap.rb +43 -0
- data/lib/checks/tableau.rb +26 -0
- data/lib/checks/team_city.rb +8 -6
- data/lib/checks/telerik.rb +23 -8
- data/lib/checks/varnish.rb +8 -11
- data/lib/checks/vmware.rb +38 -0
- data/lib/checks/webmin.rb +41 -0
- data/lib/checks/wp_engine.rb +10 -6
- data/lib/checks/yaws.rb +29 -0
- data/lib/checks/zeit.rb +28 -0
- data/lib/checks/zendesk.rb +39 -0
- data/lib/checks/zimbra.rb +24 -0
- data/lib/checks/zscaler.rb +28 -0
- data/{ident.rb → lib/intrigue-ident.rb} +66 -32
- data/lib/traverse_exceptions.rb +196 -0
- data/util/check.rb +20 -0
- data/util/list.rb +9 -0
- metadata +58 -9
- data/lib/checks/asp_net.rb +0 -70
- data/lib/checks/cloudfront.rb +0 -41
- data/lib/checks/spring.rb +0 -31
- data/lib/checks/tomcat.rb +0 -22
- data/lib/checks/wordpress.rb +0 -120
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb036d72abc406c70fc7ef521088a456a4e5e6701d472838ac9f8e57bc3c03fa
|
4
|
+
data.tar.gz: e3e46d709da07cbf195e7d6d82bdaa93accb2a371cd79447d47d9708ddbe8dac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad2f1dd6c6816a809a10e32b3b14f0b5d7fab22516d499ed59268366f0cb6e515378d39d9cdba762e76e742228e81d41703757bef0782f1bd47421e206c388a8
|
7
|
+
data.tar.gz: f18be5771baacf1b3af2aaace6052c1f13d141448364213466a151f3205e889720518ee232988f641141e2f350c1006e1bf637b6dd7db2cbf32a0637b679d951
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,12 +1,7 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
coderay (1.1.2)
|
5
4
|
diff-lcs (1.3)
|
6
|
-
method_source (0.9.0)
|
7
|
-
pry (0.11.3)
|
8
|
-
coderay (~> 1.1.0)
|
9
|
-
method_source (~> 0.9.0)
|
10
5
|
rspec (3.7.0)
|
11
6
|
rspec-core (~> 3.7.0)
|
12
7
|
rspec-expectations (~> 3.7.0)
|
@@ -25,7 +20,6 @@ PLATFORMS
|
|
25
20
|
ruby
|
26
21
|
|
27
22
|
DEPENDENCIES
|
28
|
-
pry
|
29
23
|
rspec
|
30
24
|
|
31
25
|
RUBY VERSION
|
Binary file
|
Binary file
|
Binary file
|
data/data/logos/php.png
ADDED
Binary file
|
Binary file
|
data/intrigue-ident.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require_relative 'ident'
|
2
|
+
require_relative 'lib/intrigue-ident'
|
3
3
|
|
4
4
|
Gem::Specification.new do |spec|
|
5
5
|
spec.name = "intrigue-ident"
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
15
15
|
spec.bindir = "exe"
|
16
16
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
17
|
-
spec.require_paths = ["lib"
|
17
|
+
spec.require_paths = ["lib"]
|
18
18
|
|
19
19
|
spec.add_development_dependency "bundler", "~> 1.11"
|
20
20
|
spec.add_development_dependency "rake", "~> 10.0"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Acquia < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "service",
|
10
|
+
:vendor => "Acquia",
|
11
|
+
:product => "Acquia",
|
12
|
+
:references => ["https://docs.acquia.com/acquia-cloud/performance/varnish/headers/"],
|
13
|
+
:version => nil,
|
14
|
+
:match_type => :content_headers,
|
15
|
+
:match_content => /X-AH-Environment:/i,
|
16
|
+
:match_details => "Header contains Acquia environment that provides the page response (usually prod, but could also be dev or stage)",
|
17
|
+
:hide => false,
|
18
|
+
:examples => ["http://netgear.gcs-web.com:80"],
|
19
|
+
:paths => ["#{url}"]
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/checks/adobe.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Adobe < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Adobe",
|
11
|
+
:product => "Coldfusion",
|
12
|
+
:version => nil,
|
13
|
+
:match_type => :content_cookies,
|
14
|
+
:match_content => /CFTOKEN=/,
|
15
|
+
:match_details => "Adobe Coldfusion Cookie Match",
|
16
|
+
:hide => false,
|
17
|
+
:examples => ["https://209.235.70.106:443"],
|
18
|
+
:paths => ["#{url}"]
|
19
|
+
},
|
20
|
+
{
|
21
|
+
:type => "application",
|
22
|
+
:vendor => "Adobe",
|
23
|
+
:product => "Experience Manager",
|
24
|
+
:version => nil,
|
25
|
+
:match_type => :content_body,
|
26
|
+
:match_content => /AEM/,
|
27
|
+
:match_details => "Adobe Experience Manager",
|
28
|
+
:hide => false,
|
29
|
+
:examples => ["https://www.ford.com/content/dam/login/core/content/login"],
|
30
|
+
:paths => ["#{url}/libs/granite/core/content/login.html"]
|
31
|
+
}
|
32
|
+
|
33
|
+
]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/checks/akamai.rb
CHANGED
@@ -6,11 +6,13 @@ class Akamai < Intrigue::Ident::Check::Base
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Akamai",
|
11
|
+
:product => "CDN",
|
11
12
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
13
|
+
:match_type => :content_body,
|
14
|
+
:match_content => /The requested URL "[no URL]", is invalid.<p>/,
|
15
|
+
:match_details =>"Akamai Missing Uri",
|
14
16
|
:hide => true,
|
15
17
|
:paths => ["#{url}"]
|
16
18
|
}
|
data/lib/checks/amazon.rb
CHANGED
@@ -3,20 +3,66 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class Amazon < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "service",
|
10
|
+
:vendor => "Amazon",
|
11
|
+
:product =>"Cloudfront",
|
12
|
+
:match_details =>"cloudfront cache header",
|
13
|
+
:version => nil,
|
14
|
+
:match_type => :content_headers,
|
15
|
+
:match_content => /via:.*.cloudfront.net \(CloudFront\)/,
|
16
|
+
:hide => false,
|
17
|
+
:paths => ["#{url}"]
|
18
|
+
},
|
19
|
+
{
|
20
|
+
:type => "service",
|
21
|
+
:vendor => "Amazon",
|
22
|
+
:product =>"Cloudfront",
|
23
|
+
:match_details =>"Cloudfront - no configured hostname error condition",
|
24
|
+
:version => nil,
|
25
|
+
:match_type => :content_body,
|
26
|
+
:match_content => /ERROR: The request could not be satisfied/,
|
27
|
+
:hide => true,
|
28
|
+
:paths => ["#{url}"]
|
29
|
+
},
|
30
|
+
{
|
31
|
+
:type => "service",
|
32
|
+
:vendor => "Amazon",
|
33
|
+
:product =>"Cloudfront",
|
34
|
+
:match_details =>"Cloudfront - no configured hostname error condition",
|
35
|
+
:version => nil,
|
36
|
+
:match_type => :content_headers,
|
37
|
+
:match_content => /Error from cloudfront/,
|
38
|
+
:hide => true,
|
39
|
+
:paths => ["#{url}"]
|
40
|
+
},
|
41
|
+
{
|
42
|
+
:type => "service",
|
43
|
+
:vendor => "Amazon",
|
44
|
+
:product =>"Cloudfront",
|
45
|
+
:match_details =>"Cloudfront - 403 error condition",
|
46
|
+
:version => nil,
|
47
|
+
:match_type => :content_body,
|
48
|
+
:match_content => /<h1>403 Forbidden<\/h1><\/center>\n<hr><center>cloudflare/,
|
49
|
+
:hide => true,
|
50
|
+
:paths => ["#{url}"]
|
51
|
+
},
|
52
|
+
{
|
53
|
+
:tags => ["error_page","hosting_provider"],
|
54
|
+
:type => "service",
|
11
55
|
:url => "https://aws.amazon.com/elasticloadbalancing/",
|
56
|
+
:vendor => "Amazon",
|
57
|
+
:product => "Elastic Load Balancer",
|
12
58
|
:version => nil,
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
59
|
+
:match_type => :content_headers,
|
60
|
+
:match_content => /awselb\/\d.\d/,
|
61
|
+
:match_details =>"Amazon Elastic Load Balancer",
|
16
62
|
:hide => true,
|
17
|
-
:dynamic_version => lambda { |x| x[
|
63
|
+
:dynamic_version => lambda { |x| x["details"]["headers"].join("\n").match(/awselb\/(\d.\d)/).captures[0] },
|
18
64
|
:verify_sites => ["http://52.4.103.22:80"],
|
19
|
-
:paths => ["#{
|
65
|
+
:paths => ["#{url}"]
|
20
66
|
}
|
21
67
|
]
|
22
68
|
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Apache < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Apache",
|
11
|
+
:product =>"Ambari",
|
12
|
+
:match_details =>"page title",
|
13
|
+
:version => nil,
|
14
|
+
:match_type => :content_body,
|
15
|
+
:match_content => /<title>Ambari<\/title>/i,
|
16
|
+
:examples => ["http://12.42.205.114:8080"],
|
17
|
+
:verify => "aWJtI0ludHJpZ3VlOjpFbnRpdHk6OlVyaSNodHRwOi8vMTIuNDIuMjA1LjExNDo4MDgw",
|
18
|
+
:paths => ["#{url}"]
|
19
|
+
},
|
20
|
+
{
|
21
|
+
:type => "application",
|
22
|
+
:vendor => "Apache",
|
23
|
+
:product =>"Apache",
|
24
|
+
:match_details =>"Apache web server - server header - with versions",
|
25
|
+
:version => nil,
|
26
|
+
:match_type => :content_headers,
|
27
|
+
:match_content => /server:\ Apache[\s|\/]+[0-9]+/i,
|
28
|
+
:dynamic_version => lambda { |x|
|
29
|
+
_first_header_capture(x,/[s|S]erver:\s?Apache[\s|\/](.*)$/,["Apache","/","(Ubuntu)"])
|
30
|
+
},
|
31
|
+
:examples => [
|
32
|
+
"http://124.6.226.249:8081"
|
33
|
+
],
|
34
|
+
:paths => ["#{url}"]
|
35
|
+
},
|
36
|
+
{
|
37
|
+
:type => "application",
|
38
|
+
:vendor => "Apache",
|
39
|
+
:product =>"Apache",
|
40
|
+
:match_details =>"Apache web server - server header - no version",
|
41
|
+
:version => nil,
|
42
|
+
:match_type => :content_headers,
|
43
|
+
:match_content => /server:\ Apache$/i,
|
44
|
+
:examples => [
|
45
|
+
"http://207.87.195.160:80"
|
46
|
+
],
|
47
|
+
:paths => ["#{url}"]
|
48
|
+
},
|
49
|
+
{
|
50
|
+
:type => "application",
|
51
|
+
:vendor => "Apache",
|
52
|
+
:product =>"Coyote",
|
53
|
+
:match_details =>"Apache coyote application server - server header",
|
54
|
+
:version => nil,
|
55
|
+
:match_type => :content_headers,
|
56
|
+
:match_content => /server:\ Apache-Coyote/i,
|
57
|
+
:dynamic_version => lambda { |x|
|
58
|
+
_first_header_capture(x,/server: Apache-Coyote\/(.*)/i)
|
59
|
+
},
|
60
|
+
:examples => [ "http://15.224.214.203:80" ],
|
61
|
+
:paths => ["#{url}"]
|
62
|
+
},
|
63
|
+
{
|
64
|
+
:type => "application",
|
65
|
+
:vendor => "Apache",
|
66
|
+
:product =>"Sling",
|
67
|
+
:references => ["https://sling.apache.org/"],
|
68
|
+
:match_details =>"Apache Sling™ is a framework for RESTful web-applications based on an extensible content tree. also note that this may be related to apache experience manager",
|
69
|
+
:version => nil,
|
70
|
+
:match_type => :content_body,
|
71
|
+
:match_content => /<address>Apache Sling<\/address>/i,
|
72
|
+
:examples => [
|
73
|
+
"https://assets.microncpg.com/"
|
74
|
+
],
|
75
|
+
:paths => ["#{url}"]
|
76
|
+
},
|
77
|
+
{
|
78
|
+
:type => "application",
|
79
|
+
:vendor => "Apache",
|
80
|
+
:product => "Tomcat",
|
81
|
+
:match_details =>"Tomcat Application Server",
|
82
|
+
:match_type => :content_body,
|
83
|
+
:version => 6,
|
84
|
+
:match_content => /<title>Tomcat 6 Welcome Page/,
|
85
|
+
:examples => [
|
86
|
+
"https://15.139.248.81:443"
|
87
|
+
],
|
88
|
+
:paths => ["#{url}"]
|
89
|
+
},
|
90
|
+
|
91
|
+
{
|
92
|
+
:type => "application",
|
93
|
+
:vendor => "Apache",
|
94
|
+
:product => "Tomcat",
|
95
|
+
:match_details =>"Tomcat Application Server",
|
96
|
+
:match_type => :content_body,
|
97
|
+
:version => nil,
|
98
|
+
:match_content => /<title>Apache Tomcat/,
|
99
|
+
:dynamic_version => lambda{ |x|
|
100
|
+
_first_body_capture(x, /<title>(.*)<\/title>/,["Apache Tomcat/"," - Error report"])
|
101
|
+
},
|
102
|
+
:examples => [
|
103
|
+
"http://15.216.136.207:80",
|
104
|
+
"http://15.224.214.203:80"
|
105
|
+
],
|
106
|
+
:paths => ["#{url}"]
|
107
|
+
}
|
108
|
+
]
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
data/lib/checks/aruba.rb
CHANGED
@@ -6,10 +6,13 @@ class Aruba < Intrigue::Ident::Check::Base
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Aruba",
|
11
|
+
:product => "Wireless Controller",
|
10
12
|
:version => nil,
|
11
|
-
:
|
12
|
-
:
|
13
|
+
:match_type => :content_body,
|
14
|
+
:match_content => /arubalp=/,
|
15
|
+
:match_details =>"Matches an aruba link, generic identifier",
|
13
16
|
:paths => ["#{url}"]
|
14
17
|
}
|
15
18
|
]
|
data/lib/checks/atlassian.rb
CHANGED
@@ -3,49 +3,67 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class Atlassian < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Atlassian",
|
11
|
+
:product =>"BitBucket",
|
12
|
+
:match_details =>"Atlassian BitBucket",
|
11
13
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:paths => ["#{
|
14
|
+
:match_type => :content_body,
|
15
|
+
:match_content => /com.atlassian.bitbucket.server/i,
|
16
|
+
:paths => ["#{url}"]
|
15
17
|
},
|
16
18
|
{
|
17
|
-
:
|
18
|
-
:
|
19
|
+
:type => "application",
|
20
|
+
:vendor => "Atlassian",
|
21
|
+
:product =>"Confluence",
|
22
|
+
:match_details =>"Atlassian Confluence",
|
19
23
|
:version => nil,
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:paths => ["#{
|
24
|
+
:match_type => :content_headers,
|
25
|
+
:match_content => /X-Confluence-Request-Time/i,
|
26
|
+
:paths => ["#{url}"]
|
23
27
|
},
|
24
28
|
{
|
25
|
-
:
|
26
|
-
:
|
29
|
+
:type => "application",
|
30
|
+
:vendor => "Atlassian",
|
31
|
+
:product =>"Crucible",
|
32
|
+
:match_details =>"Atlassian Crucible",
|
27
33
|
:version => nil,
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:dynamic_version => lambda{|x|
|
31
|
-
|
32
|
-
x.body.scan(/Log in to FishEye and Crucible (.*)\</)[0].first
|
33
|
-
end
|
34
|
+
:match_type => :content_body,
|
35
|
+
:match_content => /FishEye and Crucible/,
|
36
|
+
:dynamic_version => lambda{ |x|
|
37
|
+
_first_body_capture(x, /Log in to FishEye and Crucible (.*)\</)
|
34
38
|
},
|
35
|
-
:paths => ["#{
|
39
|
+
:paths => ["#{url}"]
|
40
|
+
},
|
41
|
+
{
|
42
|
+
:type => "application",
|
43
|
+
:vendor => "Atlassian",
|
44
|
+
:product =>"Hipchat",
|
45
|
+
:match_details =>"Atlassian Hipchat",
|
46
|
+
:version => nil,
|
47
|
+
:match_type => :content_body,
|
48
|
+
:match_content => /\$\(document\).trigger\('hipchat.load'\);/,
|
49
|
+
:examples => ["https://api.appfire.com:443"],
|
50
|
+
:paths => ["#{url}"]
|
36
51
|
},
|
37
52
|
{
|
38
|
-
:
|
39
|
-
:
|
53
|
+
:type => "application",
|
54
|
+
:vendor => "Atlassian",
|
55
|
+
:product =>"Jira",
|
56
|
+
:match_details =>"Atlassian Jira",
|
40
57
|
:version => nil,
|
41
|
-
:
|
42
|
-
:
|
58
|
+
:match_type => :content_cookies,
|
59
|
+
:match_content => /atlassian.xsrf.token=/i,
|
43
60
|
:dynamic_version => lambda{ |x|
|
44
|
-
|
45
|
-
x.body.scan(/<span id="footer-build-information">(.*)-<span/)[0].first.gsub("(","")
|
46
|
-
end
|
61
|
+
_first_body_capture(x,/<meta name="ajs-version-number" content="(.*)">/)
|
47
62
|
},
|
48
|
-
:
|
63
|
+
:examples => [
|
64
|
+
"http://jira.understood.org/",
|
65
|
+
"http://jira.londonandpartners.com:80"],
|
66
|
+
:paths => ["#{url}"]
|
49
67
|
}
|
50
68
|
]
|
51
69
|
end
|