foca-integrity 0.1.8 → 0.1.9.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 (75) hide show
  1. data/README.markdown +7 -0
  2. data/Rakefile +89 -81
  3. data/config/config.sample.ru +11 -21
  4. data/config/config.sample.yml +15 -12
  5. data/lib/integrity.rb +21 -23
  6. data/lib/integrity/app.rb +138 -0
  7. data/lib/integrity/author.rb +39 -0
  8. data/lib/integrity/build.rb +54 -31
  9. data/lib/integrity/commit.rb +71 -0
  10. data/lib/integrity/helpers.rb +3 -3
  11. data/lib/integrity/helpers/authorization.rb +2 -2
  12. data/lib/integrity/helpers/forms.rb +3 -3
  13. data/lib/integrity/helpers/pretty_output.rb +1 -1
  14. data/lib/integrity/helpers/rendering.rb +6 -1
  15. data/lib/integrity/helpers/resources.rb +9 -3
  16. data/lib/integrity/helpers/urls.rb +15 -13
  17. data/lib/integrity/installer.rb +43 -60
  18. data/lib/integrity/migrations.rb +31 -48
  19. data/lib/integrity/notifier.rb +14 -16
  20. data/lib/integrity/notifier/base.rb +29 -19
  21. data/lib/integrity/notifier/test_helpers.rb +100 -0
  22. data/lib/integrity/project.rb +69 -33
  23. data/lib/integrity/project_builder.rb +23 -14
  24. data/lib/integrity/scm/git.rb +15 -14
  25. data/lib/integrity/scm/git/uri.rb +9 -9
  26. data/test/acceptance/api_test.rb +97 -0
  27. data/test/acceptance/browse_project_builds_test.rb +65 -0
  28. data/test/acceptance/browse_project_test.rb +95 -0
  29. data/test/acceptance/build_notifications_test.rb +42 -0
  30. data/test/acceptance/create_project_test.rb +97 -0
  31. data/test/acceptance/delete_project_test.rb +53 -0
  32. data/test/acceptance/edit_project_test.rb +117 -0
  33. data/test/acceptance/error_page_test.rb +18 -0
  34. data/test/acceptance/helpers.rb +2 -0
  35. data/test/acceptance/installer_test.rb +62 -0
  36. data/test/acceptance/manual_build_project_test.rb +82 -0
  37. data/test/acceptance/notifier_test.rb +109 -0
  38. data/test/acceptance/project_syndication_test.rb +30 -0
  39. data/test/acceptance/stylesheet_test.rb +18 -0
  40. data/test/helpers.rb +59 -27
  41. data/test/helpers/acceptance.rb +19 -64
  42. data/test/helpers/acceptance/email_notifier.rb +55 -0
  43. data/test/helpers/acceptance/git_helper.rb +15 -15
  44. data/test/helpers/acceptance/textfile_notifier.rb +3 -3
  45. data/test/helpers/expectations.rb +0 -1
  46. data/test/helpers/expectations/be_a.rb +4 -4
  47. data/test/helpers/expectations/change.rb +5 -5
  48. data/test/helpers/expectations/have.rb +4 -4
  49. data/test/helpers/expectations/predicates.rb +4 -4
  50. data/test/helpers/fixtures.rb +44 -18
  51. data/test/helpers/initial_migration_fixture.sql +44 -0
  52. data/test/unit/build_test.rb +51 -0
  53. data/test/unit/commit_test.rb +83 -0
  54. data/test/unit/helpers_test.rb +56 -0
  55. data/test/unit/integrity_test.rb +18 -0
  56. data/test/unit/migrations_test.rb +56 -0
  57. data/test/unit/notifier_test.rb +123 -0
  58. data/test/unit/project_builder_test.rb +108 -0
  59. data/test/unit/project_test.rb +282 -0
  60. data/test/unit/scm_test.rb +54 -0
  61. data/views/_commit_info.haml +24 -0
  62. data/views/build.haml +2 -2
  63. data/views/error.haml +4 -3
  64. data/views/home.haml +3 -5
  65. data/views/integrity.sass +19 -6
  66. data/views/new.haml +6 -6
  67. data/views/project.builder +9 -9
  68. data/views/project.haml +14 -12
  69. metadata +98 -116
  70. data/VERSION.yml +0 -4
  71. data/app.rb +0 -137
  72. data/integrity.gemspec +0 -76
  73. data/lib/integrity/core_ext/string.rb +0 -5
  74. data/test/helpers/expectations/have_tag.rb +0 -128
  75. data/views/_build_info.haml +0 -18
@@ -0,0 +1,54 @@
1
+ require File.dirname(__FILE__) + "/../helpers"
2
+
3
+ class SCMTest < Test::Unit::TestCase
4
+ def scm(uri)
5
+ SCM.new(Addressable::URI.parse(uri), "master", "foo")
6
+ end
7
+
8
+ it "recognizes git URIs" do
9
+ scm("git://example.org/repo").should be_an(SCM::Git)
10
+ scm("git@example.org/repo.git").should be_an(SCM::Git)
11
+ scm("git://example.org/repo.git").should be_an(SCM::Git)
12
+ end
13
+
14
+ it "raises SCMUnknownError if it can't figure the SCM from the URI" do
15
+ lambda { scm("scm://example.org") }.should raise_error(SCM::SCMUnknownError)
16
+ end
17
+
18
+ it "doesn't need the working tree path for all operations, so it's not required on the constructor" do
19
+ lambda {
20
+ SCM.new(Addressable::URI.parse("git://github.com/foca/integrity.git"), "master")
21
+ }.should_not raise_error
22
+ end
23
+
24
+ describe "SCM::Git::URI" do
25
+ uris = [
26
+ "rsync://host.xz/path/to/repo.git/",
27
+ "rsync://host.xz/path/to/repo.git",
28
+ "rsync://host.xz/path/to/repo.gi",
29
+ "http://host.xz/path/to/repo.git/",
30
+ "https://host.xz/path/to/repo.git/",
31
+ "git://host.xz/path/to/repo.git/",
32
+ "git://host.xz/~user/path/to/repo.git/",
33
+ "ssh://[user@]host.xz[:port]/path/to/repo.git/",
34
+ "ssh://[user@]host.xz/path/to/repo.git/",
35
+ "ssh://[user@]host.xz/~user/path/to/repo.git/",
36
+ "ssh://[user@]host.xz/~/path/to/repo.git",
37
+ "host.xz:/path/to/repo.git/",
38
+ "host.xz:~user/path/to/repo.git/",
39
+ "host.xz:path/to/repo.git",
40
+ "user@host.xz:/path/to/repo.git/",
41
+ "user@host.xz:~user/path/to/repo.git/",
42
+ "user@host.xz:path/to/repo.git",
43
+ "user@host.xz:path/to/repo",
44
+ "user@host.xz:path/to/repo.a_git"
45
+ ]
46
+
47
+ uris.each do |uri|
48
+ it "parses the uri #{uri}" do
49
+ git_url = SCM::Git::URI.new(uri)
50
+ git_url.working_tree_path.should == "path-to-repo"
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,24 @@
1
+ %h1&= commit.human_readable_status
2
+
3
+ - if commit.failed?
4
+ %form{ :action => commit_path(commit, :builds), :method => :post }
5
+ %p.submit
6
+ %button{ :type => :submit, :title => "Rebuild this commit" }<
7
+ Rebuild
8
+
9
+ %blockquote
10
+ %p&= commit.message
11
+ %p.meta<
12
+ %span.who<
13
+ &== by: #{commit.author.name}
14
+ |
15
+ %span.when{ :title => commit.commited_at }<
16
+ &= pretty_date commit.committed_at
17
+ |
18
+ %span.what<
19
+ &== commit: #{commit.identifier}
20
+
21
+ %h2 Build Output:
22
+ %pre.output
23
+ :preserve
24
+ #{bash_color_codes h(commit.output)}
data/views/build.haml CHANGED
@@ -1,2 +1,2 @@
1
- #build{ :class => @build.status }
2
- = partial(:build_info, :build => @build)
1
+ #build{ :class => @commit.status }
2
+ = partial(:commit_info, :commit => @commit)
data/views/error.haml CHANGED
@@ -13,9 +13,10 @@
13
13
 
14
14
  %dt What can I do?
15
15
  %dd
16
- Is your
17
- %a{ :href => project_url(@project, :edit) } config
18
- ok?
16
+ - if @project
17
+ Is your
18
+ %a{ :href => project_url(@project, :edit) } config
19
+ ok?
19
20
  Need
20
21
  %a{ :href => "http://integrityapp.com/configure" } help?
21
22
  Remember to restart Integrity.
data/views/home.haml CHANGED
@@ -8,16 +8,14 @@
8
8
  - else
9
9
  %ul#projects
10
10
  - @projects.each do |project|
11
- %li{ :class => cycle("even", "odd") + (project.building? ? ' building' : '') + (project.last_build ? (project.last_build.successful? ? ' success' : ' failed') : '') }
11
+ %li{ :class => cycle("even", "odd") + ' ' + project.status.to_s }
12
12
  %a{ :href => project_path(project) }&= project.name
13
13
  .meta
14
14
  - if project.building?
15
15
  Building!
16
- - elsif project.last_build.nil?
16
+ - elsif project.last_commit.nil?
17
17
  Never built yet
18
18
  - else
19
- == Built #{project.last_build.short_commit_identifier}
20
- = pretty_date(project.last_build.created_at)
21
- = project.last_build.successful? ? "successfully" : "and failed"
19
+ = project.human_readable_status
22
20
  %p#new
23
21
  %a{ :href => "/new" } Add a new project
data/views/integrity.sass CHANGED
@@ -108,6 +108,7 @@ a
108
108
  :width 30em
109
109
  :padding .2em .4em
110
110
  :color = !title_color
111
+ input.text
111
112
  :height 1.4em
112
113
  label
113
114
  :float left
@@ -177,11 +178,22 @@ a
177
178
  :content "."
178
179
  :text-indent -9999em
179
180
  :text-align left
180
- &.destroy
181
- :margin-top 0
181
+ &.destroy, &.manual-build
182
182
  button
183
183
  :float none
184
184
  :display inline
185
+ &.manual-build
186
+ button
187
+ :margin-right 0
188
+
189
+ #build form, #last_build form
190
+ :font-size .75em
191
+ p.submit
192
+ :margin 0
193
+ :padding 0
194
+ :position absolute
195
+ :right .5em
196
+ :top 1.25em
185
197
 
186
198
  .blank_slate, .error
187
199
  p
@@ -213,7 +225,7 @@ a
213
225
  :family = !nice_fonts
214
226
  dd
215
227
  :line-height 1.4
216
-
228
+
217
229
  .backtrace
218
230
  :margin 1em 0
219
231
  :overflow scroll
@@ -254,8 +266,8 @@ a
254
266
  :color = !success_color
255
267
  &.failed .meta
256
268
  :color = !failed_color
257
-
258
-
269
+
270
+
259
271
  #previous_builds
260
272
  li
261
273
  a
@@ -288,9 +300,10 @@ a
288
300
  :color = !failed_bg - #444
289
301
  &:hover
290
302
  :background-color = !failed_bg + #222
291
-
303
+
292
304
 
293
305
  #build, #last_build
306
+ :position relative
294
307
  h1, blockquote
295
308
  :border
296
309
  :width 0 1px
data/views/new.haml CHANGED
@@ -7,29 +7,29 @@
7
7
  %label{ :for => "project_name" }<
8
8
  &== Name #{errors_on @project, :name}
9
9
  %input.text#project_name{ :name => "project_data[name]", :type => "text", :value => h(@project.name) }
10
-
10
+
11
11
  %p.required{ :class => error_class(@project, :uri) }
12
12
  %label{ :for => "project_repository" }<
13
13
  &== Git repository #{errors_on @project, :uri}
14
14
  %input.text#project_repository{ :name => "project_data[uri]", :type => "text", :value => h(@project.uri) }
15
-
15
+
16
16
  %p.normal{ :class => error_class(@project, :branch) }
17
17
  %label{ :for => "project_branch" }<
18
18
  &== Branch to track #{errors_on @project, :branch}
19
19
  %input.text#project_branch{ :name => "project_data[branch]", :type => "text", :value => "master", :value => h(@project.branch) }
20
-
20
+
21
21
  %p.normal{ :class => error_class(@project, :command) }
22
22
  %label{ :for => "project_build_script" }
23
23
  &== Build script #{errors_on @project, :command}
24
- %textarea#project_build_script{ :name => "project_data[command]", :cols => 40, :rows => 1 }
24
+ %textarea#project_build_script{ :name => "project_data[command]", :cols => 40, :rows => 2 }
25
25
  &== #{@project.command.to_s}
26
26
 
27
27
  %p.normal.checkbox
28
28
  %label{ :for => "project_public" } Public project
29
29
  %input.hidden{ :name => "project_data[public]", :value => "0", :type => "hidden" }
30
30
  %input.checkbox#project_public{ checkbox("project_data[public]", @project.public?) }
31
-
32
- - Notifier.available.each do |notifier|
31
+
32
+ - Integrity::Notifier.available.each do |notifier|
33
33
  = notifier_form(notifier)
34
34
 
35
35
  %p.submit
@@ -2,20 +2,20 @@ xml.instruct!
2
2
  xml.feed :xmlns => "http://www.w3.org/2005/Atom" do
3
3
  xml.title "Build history for #{@project.name}"
4
4
  xml.subtitle @project.uri
5
- xml.updated @project.builds.first.created_at
5
+ xml.updated @project.last_commit.updated_at
6
6
  xml.link :href => "#{project_url(@project)}.atom", :rel => "self"
7
7
  xml.id "#{project_url(@project)}.atom"
8
8
 
9
- @project.builds.each do |build|
9
+ @project.commits.each do |commit|
10
10
  xml.entry do
11
- xml.id build_url(build)
12
- xml.link :href => build_url(build), :rel => "alternate", :type => "text/html"
13
- xml.updated build.created_at
14
- xml.published build.created_at
11
+ xml.id commit_url(commit)
12
+ xml.link :href => commit_url(commit), :rel => "alternate", :type => "text/html"
13
+ xml.updated commit.created_at
14
+ xml.published commit.created_at
15
15
 
16
- xml.title "Built #{build.short_commit_identifier} #{build.successful? ? "successfully" : "and failed"}"
17
- xml.author { xml.name(build.commit_author.name) }
18
- xml.content("<div>#{partial(:build_info, :build => build)}</div>", :type => "html")
16
+ xml.title commit.human_readable_status
17
+ xml.author { xml.name(commit.author.name) }
18
+ xml.content("<div>#{partial(:commit_info, :commit => commit)}</div>", :type => "html")
19
19
  end
20
20
  end
21
21
  end
data/views/project.haml CHANGED
@@ -1,28 +1,30 @@
1
1
  #administrative
2
2
  %a{ :href => project_path(@project, :edit) } Edit Project
3
3
 
4
- - if @project.builds.empty?
4
+ - if @project.commits.empty?
5
5
  %form.blank_slate{ :action => project_path(@project, :builds), :method => :post }
6
6
  %p No builds for this project, buddy
7
7
  %h1
8
8
  You can request a
9
9
  %button{ :type => :submit } manual build
10
10
  - else
11
- - @build = @project.last_build
12
- #last_build{ :class => @build.status }
13
- = partial(:build_info, :build => @build)
11
+ - @commit = @project.last_commit
12
+ #last_build{ :class => @commit.status }
13
+ = partial(:commit_info, :commit => @commit)
14
14
 
15
15
  %form{ :action => project_path(@project, :builds), :method => :post }
16
- %p.submit
17
- %button{ :type => :submit } Request Manual Build
16
+ %p.submit.manual-build
17
+ %button{ :type => :submit, :title => "Fetch the last commit and build it" }<
18
+ Build the last commit
19
+ in the repository (or rebuild the latest)
18
20
 
19
- - unless @project.previous_builds.empty?
21
+ - unless @project.previous_commits.empty?
20
22
  %h2 Previous builds
21
23
  %ul#previous_builds
22
- - @project.previous_builds.each do |build|
23
- %li{ :class => build.status }
24
- %a{ :href => build_path(build) }
24
+ - @project.previous_commits.each do |commit|
25
+ %li{ :class => commit.status }
26
+ %a{ :href => commit_path(commit) }
25
27
  %strong.build<
26
- &== Build #{build.short_commit_identifier}
28
+ &== Build #{commit.short_identifier}
27
29
  %span.attribution<
28
- == by #{build.commit_author.name}, #{pretty_date build.commited_at}
30
+ == by #{commit.author.name}, #{pretty_date commit.committed_at}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foca-integrity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Nicol\xC3\xA1s Sanguinetti"
@@ -10,101 +10,62 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-02-12 00:00:00 -08:00
14
- default_executable: integrity
13
+ date: 2009-03-13 00:00:00 -07:00
14
+ default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: sinatra
18
+ type: :runtime
18
19
  version_requirement:
19
20
  version_requirements: !ruby/object:Gem::Requirement
20
21
  requirements:
21
22
  - - ">="
22
23
  - !ruby/object:Gem::Version
23
- version: 0.9.0.3
24
+ version: 0.9.1.1
24
25
  version:
25
26
  - !ruby/object:Gem::Dependency
26
27
  name: haml
28
+ type: :runtime
27
29
  version_requirement:
28
30
  version_requirements: !ruby/object:Gem::Requirement
29
31
  requirements:
30
32
  - - ">="
31
33
  - !ruby/object:Gem::Version
32
- version: "0"
33
- version:
34
- - !ruby/object:Gem::Dependency
35
- name: dm-core
36
- version_requirement:
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: 0.9.5
42
- version:
43
- - !ruby/object:Gem::Dependency
44
- name: dm-validations
45
- version_requirement:
46
- version_requirements: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 0.9.5
51
- version:
52
- - !ruby/object:Gem::Dependency
53
- name: dm-types
54
- version_requirement:
55
- version_requirements: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 0.9.5
60
- version:
61
- - !ruby/object:Gem::Dependency
62
- name: dm-timestamps
63
- version_requirement:
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 0.9.5
69
- version:
70
- - !ruby/object:Gem::Dependency
71
- name: dm-aggregates
72
- version_requirement:
73
- version_requirements: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: 0.9.5
34
+ version: 2.0.0
78
35
  version:
79
36
  - !ruby/object:Gem::Dependency
80
- name: dm-migrations
37
+ name: data_mapper
38
+ type: :runtime
81
39
  version_requirement:
82
40
  version_requirements: !ruby/object:Gem::Requirement
83
41
  requirements:
84
42
  - - ">="
85
43
  - !ruby/object:Gem::Version
86
- version: 0.9.5
44
+ version: 0.9.10
87
45
  version:
88
46
  - !ruby/object:Gem::Dependency
89
- name: data_objects
47
+ name: uuidtools
48
+ type: :runtime
90
49
  version_requirement:
91
50
  version_requirements: !ruby/object:Gem::Requirement
92
51
  requirements:
93
52
  - - ">="
94
53
  - !ruby/object:Gem::Version
95
- version: 0.9.5
54
+ version: "0"
96
55
  version:
97
56
  - !ruby/object:Gem::Dependency
98
- name: do_sqlite3
57
+ name: bcrypt-ruby
58
+ type: :runtime
99
59
  version_requirement:
100
60
  version_requirements: !ruby/object:Gem::Requirement
101
61
  requirements:
102
62
  - - ">="
103
63
  - !ruby/object:Gem::Version
104
- version: 0.9.5
64
+ version: "0"
105
65
  version:
106
66
  - !ruby/object:Gem::Dependency
107
67
  name: json
68
+ type: :runtime
108
69
  version_requirement:
109
70
  version_requirements: !ruby/object:Gem::Requirement
110
71
  requirements:
@@ -113,34 +74,18 @@ dependencies:
113
74
  version: "0"
114
75
  version:
115
76
  - !ruby/object:Gem::Dependency
116
- name: foca-sinatra-diddies
77
+ name: foca-sinatra-ditties
78
+ type: :runtime
117
79
  version_requirement:
118
80
  version_requirements: !ruby/object:Gem::Requirement
119
81
  requirements:
120
82
  - - ">="
121
83
  - !ruby/object:Gem::Version
122
- version: 0.0.2
84
+ version: 0.0.3
123
85
  version:
124
86
  - !ruby/object:Gem::Dependency
125
87
  name: thor
126
- version_requirement:
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: "0"
132
- version:
133
- - !ruby/object:Gem::Dependency
134
- name: uuidtools
135
- version_requirement:
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- version: "0"
141
- version:
142
- - !ruby/object:Gem::Dependency
143
- name: bcrypt-ruby
88
+ type: :runtime
144
89
  version_requirement:
145
90
  version_requirements: !ruby/object:Gem::Requirement
146
91
  requirements:
@@ -149,7 +94,7 @@ dependencies:
149
94
  version: "0"
150
95
  version:
151
96
  description: Your Friendly Continuous Integration server. Easy, fun and painless!
152
- email: contacto@nicolassanguinetti.info
97
+ email: info@integrityapp.com
153
98
  executables:
154
99
  - integrity
155
100
  extensions: []
@@ -157,62 +102,99 @@ extensions: []
157
102
  extra_rdoc_files: []
158
103
 
159
104
  files:
160
- - README.markdown
161
105
  - Rakefile
162
- - VERSION.yml
163
- - app.rb
106
+ - README.markdown
164
107
  - bin/integrity
165
- - config/config.sample.ru
166
- - config/config.sample.yml
167
- - config/thin.sample.yml
168
- - integrity.gemspec
169
- - lib/integrity.rb
170
- - lib/integrity/build.rb
108
+ - lib/integrity
109
+ - lib/integrity/project_builder.rb
110
+ - lib/integrity/core_ext
171
111
  - lib/integrity/core_ext/object.rb
172
- - lib/integrity/core_ext/string.rb
112
+ - lib/integrity/notifier.rb
173
113
  - lib/integrity/helpers.rb
114
+ - lib/integrity/installer.rb
115
+ - lib/integrity/app.rb
116
+ - lib/integrity/build.rb
117
+ - lib/integrity/scm
118
+ - lib/integrity/scm/git.rb
119
+ - lib/integrity/scm/git
120
+ - lib/integrity/scm/git/uri.rb
121
+ - lib/integrity/author.rb
122
+ - lib/integrity/project.rb
123
+ - lib/integrity/migrations.rb
124
+ - lib/integrity/scm.rb
125
+ - lib/integrity/helpers
126
+ - lib/integrity/helpers/rendering.rb
174
127
  - lib/integrity/helpers/authorization.rb
175
- - lib/integrity/helpers/breadcrumbs.rb
176
128
  - lib/integrity/helpers/forms.rb
177
- - lib/integrity/helpers/pretty_output.rb
178
- - lib/integrity/helpers/rendering.rb
179
129
  - lib/integrity/helpers/resources.rb
130
+ - lib/integrity/helpers/breadcrumbs.rb
131
+ - lib/integrity/helpers/pretty_output.rb
180
132
  - lib/integrity/helpers/urls.rb
181
- - lib/integrity/installer.rb
182
- - lib/integrity/migrations.rb
183
- - lib/integrity/notifier.rb
133
+ - lib/integrity/notifier
184
134
  - lib/integrity/notifier/base.rb
185
- - lib/integrity/project.rb
186
- - lib/integrity/project_builder.rb
187
- - lib/integrity/scm.rb
188
- - lib/integrity/scm/git.rb
189
- - lib/integrity/scm/git/uri.rb
135
+ - lib/integrity/notifier/test_helpers.rb
136
+ - lib/integrity/commit.rb
137
+ - lib/integrity.rb
138
+ - views/not_found.haml
139
+ - views/notifier.haml
140
+ - views/new.haml
141
+ - views/error.haml
142
+ - views/unauthorized.haml
143
+ - views/layout.haml
144
+ - views/project.builder
145
+ - views/_commit_info.haml
146
+ - views/project.haml
147
+ - views/build.haml
148
+ - views/home.haml
149
+ - views/integrity.sass
190
150
  - public/buttons.css
191
- - public/reset.css
192
151
  - public/spinner.gif
152
+ - public/reset.css
153
+ - config/config.ru
154
+ - config/thin.sample.yml
155
+ - config/config.sample.ru
156
+ - config/config.yml
157
+ - config/config.sample.yml
193
158
  - test/helpers.rb
159
+ - test/acceptance
160
+ - test/acceptance/build_notifications_test.rb
161
+ - test/acceptance/notifier_test.rb
162
+ - test/acceptance/manual_build_project_test.rb
163
+ - test/acceptance/helpers.rb
164
+ - test/acceptance/stylesheet_test.rb
165
+ - test/acceptance/api_test.rb
166
+ - test/acceptance/project_syndication_test.rb
167
+ - test/acceptance/error_page_test.rb
168
+ - test/acceptance/browse_project_test.rb
169
+ - test/acceptance/edit_project_test.rb
170
+ - test/acceptance/delete_project_test.rb
171
+ - test/acceptance/create_project_test.rb
172
+ - test/acceptance/installer_test.rb
173
+ - test/acceptance/browse_project_builds_test.rb
174
+ - test/unit
175
+ - test/unit/helpers_test.rb
176
+ - test/unit/migrations_test.rb
177
+ - test/unit/notifier_test.rb
178
+ - test/unit/project_builder_test.rb
179
+ - test/unit/build_test.rb
180
+ - test/unit/project_test.rb
181
+ - test/unit/commit_test.rb
182
+ - test/unit/scm_test.rb
183
+ - test/unit/integrity_test.rb
184
+ - test/helpers
185
+ - test/helpers/expectations.rb
194
186
  - test/helpers/acceptance.rb
195
- - test/helpers/acceptance/git_helper.rb
187
+ - test/helpers/acceptance
188
+ - test/helpers/acceptance/email_notifier.rb
196
189
  - test/helpers/acceptance/textfile_notifier.rb
197
- - test/helpers/expectations.rb
198
- - test/helpers/expectations/be_a.rb
199
- - test/helpers/expectations/change.rb
190
+ - test/helpers/acceptance/git_helper.rb
191
+ - test/helpers/expectations
200
192
  - test/helpers/expectations/have.rb
201
- - test/helpers/expectations/have_tag.rb
193
+ - test/helpers/expectations/be_a.rb
202
194
  - test/helpers/expectations/predicates.rb
195
+ - test/helpers/expectations/change.rb
203
196
  - test/helpers/fixtures.rb
204
- - views/_build_info.haml
205
- - views/build.haml
206
- - views/error.haml
207
- - views/home.haml
208
- - views/integrity.sass
209
- - views/layout.haml
210
- - views/new.haml
211
- - views/not_found.haml
212
- - views/notifier.haml
213
- - views/project.builder
214
- - views/project.haml
215
- - views/unauthorized.haml
197
+ - test/helpers/initial_migration_fixture.sql
216
198
  has_rdoc: false
217
199
  homepage: http://integrityapp.com
218
200
  post_install_message: Run `integrity help` for information on how to setup Integrity.