integritray 0.3.0 → 0.3.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.
- data/README.rdoc +3 -3
- data/VERSION +1 -1
- data/integritray.gemspec +1 -1
- data/lib/integrity/integritray.rb +22 -2
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -12,14 +12,14 @@ Require in your Integrity application's config.ru:
|
|
12
12
|
|
13
13
|
Add rack end point in your config.ru
|
14
14
|
|
15
|
-
map "/" do
|
15
|
+
map "/tray" do
|
16
16
|
run Integrity::Integritray::App
|
17
17
|
end
|
18
18
|
|
19
19
|
Point CCMenu or your tray item of choice to the feed URL:
|
20
|
-
http://my.integration.server/projects.xml
|
20
|
+
http://my.integration.server/tray/projects.xml
|
21
21
|
to view private projects
|
22
|
-
http://user:password@my.integration.server/projects.xml?private=true
|
22
|
+
http://user:password@my.integration.server/tray/projects.xml?private=true
|
23
23
|
|
24
24
|
You may have to manually specify that this is a CruiseControl.rb-type server;
|
25
25
|
CCMenu has trouble determining which type of server to treat this as.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/integritray.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{integritray}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Josh French", "Justin Smestad", "Gabe Varela"]
|
@@ -1,15 +1,19 @@
|
|
1
1
|
require 'integrity'
|
2
|
+
require "integrity/helpers/urls"
|
3
|
+
require "integrity/helpers/authorization"
|
4
|
+
require "integrity/helpers/rendering"
|
2
5
|
|
3
6
|
module Integrity
|
4
7
|
module Integritray
|
5
8
|
module Helpers
|
9
|
+
include Integrity::Helpers
|
6
10
|
|
7
11
|
def xml_opts_for_project(project)
|
8
12
|
opts = {}
|
9
13
|
opts['name'] = project.name
|
10
14
|
opts['category'] = project.branch
|
11
15
|
opts['activity'] = activity(project.last_build.status) if project.last_build
|
12
|
-
opts['webUrl'] = project_url(project)
|
16
|
+
opts['webUrl'] = project_url(project).to_s.gsub(request.script_name, '')
|
13
17
|
if project.last_build
|
14
18
|
opts['lastBuildStatus'] = build_status(project.last_build.status)
|
15
19
|
opts['lastBuildLabel'] = project.last_build.commit.short_identifier
|
@@ -40,6 +44,15 @@ module Integrity
|
|
40
44
|
end
|
41
45
|
end
|
42
46
|
|
47
|
+
def authorize(user, password)
|
48
|
+
return true unless protect?
|
49
|
+
Integrity.app.user == user && Integrity.app.pass == password
|
50
|
+
end
|
51
|
+
|
52
|
+
def protect?
|
53
|
+
Integrity.app.respond_to?(:user) && Integrity.app.respond_to?(:pass)
|
54
|
+
end
|
55
|
+
|
43
56
|
end
|
44
57
|
|
45
58
|
class App < Sinatra::Base
|
@@ -47,7 +60,14 @@ module Integrity
|
|
47
60
|
set :raise_errors, true
|
48
61
|
enable :methodoverride, :static, :sessions
|
49
62
|
|
50
|
-
helpers Sinatra::UrlForHelper,
|
63
|
+
helpers Sinatra::UrlForHelper, Integritray::Helpers
|
64
|
+
|
65
|
+
before do
|
66
|
+
# The browser only sends http auth data for requests that are explicitly
|
67
|
+
# required to do so. This way we get the real values of +#logged_in?+ and
|
68
|
+
# +#current_user+
|
69
|
+
login_required if session[:user]
|
70
|
+
end
|
51
71
|
|
52
72
|
get '/projects.xml' do
|
53
73
|
login_required if params["private"]
|