perkins 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/Gemfile +1 -0
- data/README.md +11 -8
- data/Rakefile +1 -18
- data/config/database.yml +19 -0
- data/db/migrate/20150130143050_create_builds.rb +1 -1
- data/db/migrate/20150220143051_add_build_status_to_build_reports.rb +10 -0
- data/db/migrate/20150220143053_add_commit_to_build_reports.rb +10 -0
- data/db/migrate/20150220143054_add_hook_id_to_repo.rb +10 -0
- data/db/schema.rb +4 -2
- data/examples/Capfile +17 -0
- data/examples/Gemfile +14 -1
- data/examples/Gemfile.lock +45 -19
- data/examples/Procfile +8 -3
- data/examples/README.md +12 -0
- data/examples/boot.rb +5 -4
- data/examples/config.ru +2 -11
- data/examples/{database.yml → config/database.example.yml} +0 -0
- data/examples/config/database.yml +27 -0
- data/examples/config/deploy.rb +78 -0
- data/examples/config/deploy/staging.rb +61 -0
- data/examples/{rainbows.rb → config/rainbows/development.rb} +1 -1
- data/examples/config/rainbows/production.rb +56 -0
- data/examples/{sidekiq.yml → config/sidekiq.yml} +0 -0
- data/examples/db/schema.rb +43 -0
- data/examples/rakefile +8 -0
- data/lib/perkins/application.rb +1 -1
- data/lib/perkins/assets.rb +3 -3
- data/lib/perkins/assets/javascripts/app.js +1 -0
- data/lib/perkins/assets/javascripts/perkings.js.coffee +14 -9
- data/lib/perkins/assets/javascripts/perkins/helpers.js.coffee +2 -2
- data/lib/perkins/assets/javascripts/perkins/m/models.js.coffee +15 -9
- data/lib/perkins/assets/javascripts/perkins/router.js.coffee +1 -0
- data/lib/perkins/assets/javascripts/perkins/v/my_repos.js.coffee +1 -1
- data/lib/perkins/assets/javascripts/perkins/v/orgs.js.coffee +1 -1
- data/lib/perkins/assets/javascripts/perkins/v/repo.js.coffee +38 -5
- data/lib/perkins/assets/javascripts/templates/repo.hamlc +5 -14
- data/lib/perkins/assets/javascripts/templates/repos/build_row.hamlc +10 -5
- data/lib/perkins/assets/javascripts/templates/repos/config.hamlc +23 -13
- data/lib/perkins/assets/javascripts/templates/repos/report_detail.hamlc +6 -6
- data/lib/perkins/assets/javascripts/vendor/eventsource.polyfill.js +512 -0
- data/lib/perkins/build/script.rb +2 -1
- data/lib/perkins/build/script/go.rb +1 -1
- data/lib/perkins/build/script/ruby.rb +1 -1
- data/lib/perkins/build/script/stages.rb +0 -1
- data/lib/perkins/build_report.rb +27 -7
- data/lib/perkins/build_worker.rb +10 -15
- data/lib/perkins/git_loader_worker.rb +1 -14
- data/lib/perkins/repo.rb +106 -21
- data/lib/perkins/runner.rb +57 -12
- data/lib/perkins/server.rb +42 -46
- data/lib/perkins/socket_server.rb +38 -0
- data/lib/perkins/version.rb +1 -1
- data/lib/tasks/db_tasks.rake +35 -0
- data/perkins.gemspec +16 -19
- data/spec/README.md +3 -0
- data/spec/lib/build/build_spec.rb +7 -3
- data/spec/lib/repo_spec.rb +23 -32
- data/spec/lib/runner_spec.rb +52 -2
- data/spec/lib/server_spec.rb +15 -6
- data/spec/spec_helper.rb +6 -5
- metadata +21 -57
- data/.DS_Store +0 -0
- data/lib/perkins/views/builds.haml +0 -43
- data/lib/perkins/views/menu.haml +0 -18
- data/lib/perkins/views/orgs.haml +0 -101
- data/lib/perkins/views/profile.haml +0 -31
- data/lib/perkins/views/repos/config.haml +0 -72
- data/lib/perkins/views/repos/github.haml +0 -45
- data/lib/perkins/views/repos/menu.haml +0 -17
- data/lib/perkins/views/repos/repo.haml +0 -64
- data/lib/perkins/views/repos/spinner.haml +0 -3
data/spec/lib/server_spec.rb
CHANGED
@@ -37,6 +37,7 @@ describe 'Server App' do
|
|
37
37
|
context "with app" do
|
38
38
|
|
39
39
|
before do
|
40
|
+
allow_any_instance_of(Warden::GitHub::User).to receive(:api).and_return(user_api)
|
40
41
|
@user = make_user('login' => 'michelson')
|
41
42
|
login_as @user
|
42
43
|
end
|
@@ -52,28 +53,36 @@ describe 'Server App' do
|
|
52
53
|
expect(last_response.body).to include("github_client_id")
|
53
54
|
end
|
54
55
|
|
55
|
-
it "profile" do
|
56
|
-
allow_any_instance_of(Warden::GitHub::User).to receive(:api).and_return(user_api)
|
56
|
+
it "profile" do
|
57
57
|
get "/me"
|
58
58
|
expect(last_response).to be_ok
|
59
59
|
end
|
60
60
|
|
61
61
|
describe "github" do
|
62
62
|
|
63
|
-
|
64
|
-
|
63
|
+
before do
|
64
|
+
#a = Warden::GitHub::User.new
|
65
|
+
#Perkins::Repo.sync_github_repos(a)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "add repo will enqueue GitLoader task" do
|
65
69
|
a = Warden::GitHub::User.new
|
66
70
|
Perkins::Repo.sync_github_repos(a)
|
71
|
+
#expect(Perkins::GitLoaderWorker).to receive(:perform_async) #.with(sha, "master")
|
67
72
|
repo = Perkins::Repo.synced_records.first
|
68
73
|
xhr("/repos/add/#{repo.gb_id}")
|
69
|
-
expect(last_response.body).to be == "true"
|
74
|
+
#expect(last_response.body).to be == "true"
|
70
75
|
expect(Perkins::Repo.find(repo.id).github_data).to_not be_blank
|
76
|
+
expect(Perkins::Repo.find(repo.id).cached).to be == false
|
77
|
+
|
71
78
|
end
|
72
79
|
|
80
|
+
|
73
81
|
it "find a repo" do
|
74
|
-
|
82
|
+
|
75
83
|
a = Warden::GitHub::User.new
|
76
84
|
Perkins::Repo.sync_github_repos(a)
|
85
|
+
|
77
86
|
repo = Perkins::Repo.synced_records.first
|
78
87
|
allow_any_instance_of(Perkins::Server).to receive(:find_repo).and_return(repo)
|
79
88
|
xhr "/repos/name/any_repo"
|
data/spec/spec_helper.rb
CHANGED
@@ -32,12 +32,13 @@ RSpec.configure do |config|
|
|
32
32
|
config.include(SinatraAuthGithubTestHelper)
|
33
33
|
|
34
34
|
def perkins_app
|
35
|
-
Perkins.application do
|
35
|
+
Perkins.application do
|
36
36
|
config do |c|
|
37
|
-
c.sse_endpoint
|
38
|
-
c.
|
39
|
-
c.
|
40
|
-
c.
|
37
|
+
c.sse_endpoint = ENV['ENDPOINT']
|
38
|
+
c.port = ENV['PORT']
|
39
|
+
c.redis = {host: "localhost"}
|
40
|
+
c.database = File.expand_path("../../examples/config/database.yml", __FILE__)
|
41
|
+
c.github_client_id = ENV['GITHUB_CLIENT_ID']
|
41
42
|
c.github_client_secret = ENV['GITHUB_SECRET']
|
42
43
|
end
|
43
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perkins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- miguel michelson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -50,20 +50,6 @@ dependencies:
|
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '4.1'
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: sinatra-activerecord
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - ">="
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '0'
|
60
|
-
type: :runtime
|
61
|
-
prerelease: false
|
62
|
-
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '0'
|
67
53
|
- !ruby/object:Gem::Dependency
|
68
54
|
name: sinatra-contrib
|
69
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,34 +92,6 @@ dependencies:
|
|
106
92
|
- - ">="
|
107
93
|
- !ruby/object:Gem::Version
|
108
94
|
version: '0'
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: celluloid
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - ">="
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '0'
|
116
|
-
type: :runtime
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - ">="
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '0'
|
123
|
-
- !ruby/object:Gem::Dependency
|
124
|
-
name: celluloid-io
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
-
requirements:
|
127
|
-
- - ">="
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: '0'
|
130
|
-
type: :runtime
|
131
|
-
prerelease: false
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
133
|
-
requirements:
|
134
|
-
- - ">="
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '0'
|
137
95
|
- !ruby/object:Gem::Dependency
|
138
96
|
name: redis
|
139
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -408,7 +366,6 @@ executables:
|
|
408
366
|
extensions: []
|
409
367
|
extra_rdoc_files: []
|
410
368
|
files:
|
411
|
-
- ".DS_Store"
|
412
369
|
- ".env.example"
|
413
370
|
- ".gitignore"
|
414
371
|
- ".pryrc"
|
@@ -424,19 +381,30 @@ files:
|
|
424
381
|
- TODO.md
|
425
382
|
- Vagrantfile
|
426
383
|
- bin/perkins
|
384
|
+
- config/database.yml
|
427
385
|
- db/migrate/20150130143030_create_repo.rb
|
428
386
|
- db/migrate/20150130143050_create_builds.rb
|
429
387
|
- db/migrate/20150220143050_add_status_fields_to_repos.rb
|
388
|
+
- db/migrate/20150220143051_add_build_status_to_build_reports.rb
|
389
|
+
- db/migrate/20150220143053_add_commit_to_build_reports.rb
|
390
|
+
- db/migrate/20150220143054_add_hook_id_to_repo.rb
|
430
391
|
- db/schema.rb
|
392
|
+
- examples/Capfile
|
431
393
|
- examples/Gemfile
|
432
394
|
- examples/Gemfile.lock
|
433
395
|
- examples/Procfile
|
396
|
+
- examples/README.md
|
434
397
|
- examples/boot.rb
|
435
398
|
- examples/config.ru
|
436
|
-
- examples/database.yml
|
437
|
-
- examples/
|
399
|
+
- examples/config/database.example.yml
|
400
|
+
- examples/config/database.yml
|
401
|
+
- examples/config/deploy.rb
|
402
|
+
- examples/config/deploy/staging.rb
|
403
|
+
- examples/config/rainbows/development.rb
|
404
|
+
- examples/config/rainbows/production.rb
|
405
|
+
- examples/config/sidekiq.yml
|
406
|
+
- examples/db/schema.rb
|
438
407
|
- examples/rakefile
|
439
|
-
- examples/sidekiq.yml
|
440
408
|
- lib/core_ext/hash/compact.rb
|
441
409
|
- lib/core_ext/hash/deep_merge.rb
|
442
410
|
- lib/core_ext/hash/deep_symbolize_keys.rb
|
@@ -485,6 +453,7 @@ files:
|
|
485
453
|
- lib/perkins/assets/javascripts/vendor/ansiparse.js
|
486
454
|
- lib/perkins/assets/javascripts/vendor/backbone-min.js
|
487
455
|
- lib/perkins/assets/javascripts/vendor/backbone.marionette.js
|
456
|
+
- lib/perkins/assets/javascripts/vendor/eventsource.polyfill.js
|
488
457
|
- lib/perkins/assets/javascripts/vendor/hamlcoffee.js.coffee.erb
|
489
458
|
- lib/perkins/assets/javascripts/vendor/jquery.timeago.js
|
490
459
|
- lib/perkins/assets/javascripts/vendor/livequery.jquery.js
|
@@ -529,23 +498,17 @@ files:
|
|
529
498
|
- lib/perkins/repo.rb
|
530
499
|
- lib/perkins/runner.rb
|
531
500
|
- lib/perkins/server.rb
|
501
|
+
- lib/perkins/socket_server.rb
|
532
502
|
- lib/perkins/thor_utils.rb
|
533
503
|
- lib/perkins/version.rb
|
534
504
|
- lib/perkins/views/401.haml
|
535
|
-
- lib/perkins/views/builds.haml
|
536
505
|
- lib/perkins/views/index.haml
|
537
506
|
- lib/perkins/views/layout.haml
|
538
|
-
- lib/perkins/views/menu.haml
|
539
|
-
- lib/perkins/views/orgs.haml
|
540
|
-
- lib/perkins/views/profile.haml
|
541
507
|
- lib/perkins/views/readme.md
|
542
|
-
- lib/perkins/views/repos/config.haml
|
543
|
-
- lib/perkins/views/repos/github.haml
|
544
|
-
- lib/perkins/views/repos/menu.haml
|
545
|
-
- lib/perkins/views/repos/repo.haml
|
546
|
-
- lib/perkins/views/repos/spinner.haml
|
547
508
|
- lib/perkins/webhooks/github.rb
|
509
|
+
- lib/tasks/db_tasks.rake
|
548
510
|
- perkins.gemspec
|
511
|
+
- spec/README.md
|
549
512
|
- spec/fixtures/.travis.yml
|
550
513
|
- spec/fixtures/config.yml
|
551
514
|
- spec/lib/build/build_spec.rb
|
@@ -582,6 +545,7 @@ signing_key:
|
|
582
545
|
specification_version: 4
|
583
546
|
summary: A travis compatible standalone CI solution for ruby
|
584
547
|
test_files:
|
548
|
+
- spec/README.md
|
585
549
|
- spec/fixtures/.travis.yml
|
586
550
|
- spec/fixtures/config.yml
|
587
551
|
- spec/lib/build/build_spec.rb
|
data/.DS_Store
DELETED
Binary file
|
@@ -1,43 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
= haml :"repos/menu" , locals:{ repo: repo, active: "builds", build: nil}
|
4
|
-
|
5
|
-
.title
|
6
|
-
%h2#repo-name= repo.name
|
7
|
-
%h4= repo.url
|
8
|
-
|
9
|
-
.panel.panel-default
|
10
|
-
.panel-heading Builds
|
11
|
-
.panel-body
|
12
|
-
|
13
|
-
%table.table
|
14
|
-
%thead
|
15
|
-
%tr
|
16
|
-
%th Build
|
17
|
-
%th Message
|
18
|
-
%th Commit
|
19
|
-
%th Duration
|
20
|
-
%th Finished
|
21
|
-
%tbody
|
22
|
-
|
23
|
-
- builds.each do |build|
|
24
|
-
|
25
|
-
%tr.build-row
|
26
|
-
%td
|
27
|
-
%a{href: "/repos/#{repo.name}/builds/#{build.id}"}
|
28
|
-
%span{class: status_class(build['status']) }
|
29
|
-
= build['_id'].to_s[0..7]
|
30
|
-
|
31
|
-
%td
|
32
|
-
= build.commit.message.split("\n")[0]
|
33
|
-
%td
|
34
|
-
%a{href: commit_url(repo, build.commit.sha), target: :blank}
|
35
|
-
#{build.commit.sha[0..7]}
|
36
|
-
- if build.branch.present?
|
37
|
-
%strong
|
38
|
-
= "(#{build.branch})"
|
39
|
-
|
40
|
-
%td
|
41
|
-
= "#{build.duration.to_i.round(2)} secs"
|
42
|
-
%td
|
43
|
-
%abbr.timeago{title:build.build_time}
|
data/lib/perkins/views/menu.haml
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
%nav#main-menu.navbar.navbar-fixed-top{role:"navigation"}
|
2
|
-
.container
|
3
|
-
.navbar-header
|
4
|
-
%button.navbar-toggle{"data-target" => ".nav-collapse", "data-toggle" => "collapse", :type => "button"}
|
5
|
-
%span.sr-only
|
6
|
-
%span.icon-bar
|
7
|
-
%span.icon-bar
|
8
|
-
%span.icon-bar
|
9
|
-
.title
|
10
|
-
%a.navbar-brand{:href => "/#"} Perkins
|
11
|
-
|
12
|
-
.navbar-inner.pull-right
|
13
|
-
.nav-collapse
|
14
|
-
%ul.nav.navbar-nav
|
15
|
-
%li
|
16
|
-
%a{:href => "/"} Home
|
17
|
-
%li
|
18
|
-
%a{:href => "/logout"} Logout
|
data/lib/perkins/views/orgs.haml
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
|
2
|
-
#repo-menu.pull-right
|
3
|
-
%ul.nav.nav-pills{:role => "tablist"}
|
4
|
-
|
5
|
-
%li.dropdown
|
6
|
-
%a.dropdown-toggle{"aria-expanded" => "false", "data-toggle" => "dropdown", :href => "#", :role => "button"}
|
7
|
-
Orgs
|
8
|
-
%span.caret
|
9
|
-
%ul.dropdown-menu.dropdown-menu-right{:role => "menu"}
|
10
|
-
- orgs.each do |org|
|
11
|
-
%li
|
12
|
-
%a{:href => "/orgs/#{org[:login]}"}
|
13
|
-
= org[:login]
|
14
|
-
|
15
|
-
|
16
|
-
.title
|
17
|
-
%h1
|
18
|
-
%span#org-name
|
19
|
-
= org[:name]
|
20
|
-
|
21
|
-
%h5
|
22
|
-
%strong= org[:url]
|
23
|
-
|
24
|
-
.panel.panel-default
|
25
|
-
.panel-heading
|
26
|
-
Organization info:
|
27
|
-
|
28
|
-
.panel-body
|
29
|
-
.col-sm-3
|
30
|
-
|
31
|
-
%img.avatar{ src: avatar_url(org[:avatar_url], 80) }
|
32
|
-
|
33
|
-
.col-sm-3
|
34
|
-
|
35
|
-
%strong id:
|
36
|
-
= org[:id]
|
37
|
-
%br
|
38
|
-
|
39
|
-
%strong email:
|
40
|
-
= org[:email]
|
41
|
-
%br
|
42
|
-
|
43
|
-
%strong public repos:
|
44
|
-
= org[:public_repos]
|
45
|
-
|
46
|
-
|
47
|
-
.col-sm-3
|
48
|
-
|
49
|
-
%strong public gists:
|
50
|
-
= org[:public_gists]
|
51
|
-
%br
|
52
|
-
|
53
|
-
%strong followers:
|
54
|
-
= org[:followers]
|
55
|
-
%br
|
56
|
-
|
57
|
-
%strong following:
|
58
|
-
= org[:following]
|
59
|
-
|
60
|
-
.col-sm-3
|
61
|
-
|
62
|
-
%strong total private repos:
|
63
|
-
= org[:total_private_repos]
|
64
|
-
%br
|
65
|
-
|
66
|
-
%strong owned private repos:
|
67
|
-
= org[:owned_private_repos]
|
68
|
-
|
69
|
-
- if repos.any?
|
70
|
-
%h2 #{org[:name]} Repositories:
|
71
|
-
|
72
|
-
- repos.each do |repo|
|
73
|
-
%ul.list-group
|
74
|
-
%li.list-group-item
|
75
|
-
|
76
|
-
.pull-right
|
77
|
-
%a.btn{href: "/repos/add/#{repo["id"]}"}
|
78
|
-
ADD REPO
|
79
|
-
%span.btn.glyphicon.glyphicon-plus-sign
|
80
|
-
|
81
|
-
.row
|
82
|
-
%span.col-sm-2
|
83
|
-
%a{src: repo["owner"]["url"] }
|
84
|
-
%img{ src: repo["owner"]["avatar_url"], width: 120 }
|
85
|
-
%span.col-sm-7
|
86
|
-
.pull-right
|
87
|
-
|
88
|
-
- if repo["fork"]
|
89
|
-
%i.fa.fa-code-fork{title: "is a fork"}
|
90
|
-
|
91
|
-
- if repo["private"]
|
92
|
-
%i.fa.fa-lock{title: "is private"}
|
93
|
-
|
94
|
-
%h4= repo.name
|
95
|
-
%a{href: repo.url}
|
96
|
-
View on github
|
97
|
-
%i.fa.fa-external-link
|
98
|
-
%p.small= repo["description"]
|
99
|
-
|
100
|
-
|
101
|
-
|
@@ -1,31 +0,0 @@
|
|
1
|
-
- u = user.user
|
2
|
-
%p
|
3
|
-
.panel.panel-default
|
4
|
-
.panel-heading
|
5
|
-
Profile details
|
6
|
-
|
7
|
-
.panel-body
|
8
|
-
|
9
|
-
.col-sm-2
|
10
|
-
%img{:src => u[:avatar_url], :alt => "avatar" , width: 100}
|
11
|
-
|
12
|
-
.col-sm-8
|
13
|
-
%h2
|
14
|
-
= u[:name]
|
15
|
-
|
16
|
-
%h5
|
17
|
-
%strong= u[:company]
|
18
|
-
|
19
|
-
|
20
|
-
%h4 Select repos:
|
21
|
-
|
22
|
-
%ul
|
23
|
-
%li
|
24
|
-
%a{:href => "/myrepos"} #{u[:name]} repos
|
25
|
-
- user.orgs.each do |org|
|
26
|
-
%li
|
27
|
-
%a{ href: "/orgs/#{org[:login]}" }
|
28
|
-
= org[:login]
|
29
|
-
|
30
|
-
|
31
|
-
|
@@ -1,72 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
= haml :"repos/menu" , locals:{ repo: repo, active: "config", build: nil}
|
4
|
-
|
5
|
-
.title
|
6
|
-
%h2
|
7
|
-
%span#repo-name= repo.name
|
8
|
-
= haml :"repos/spinner", locals: {repo: repo}
|
9
|
-
|
10
|
-
%h5
|
11
|
-
%strong= repo.url
|
12
|
-
|
13
|
-
|
14
|
-
.panel.panel-default
|
15
|
-
.panel-heading
|
16
|
-
Config Post Hook
|
17
|
-
|
18
|
-
.panel-body
|
19
|
-
|
20
|
-
- if hook.present?
|
21
|
-
.col-sm-12
|
22
|
-
|
23
|
-
.pull-right
|
24
|
-
.badge
|
25
|
-
#{hook["active"] ? "active" : "disabled"}
|
26
|
-
%h2
|
27
|
-
%a{ href: hook["url"]}
|
28
|
-
= hook["name"]
|
29
|
-
\-
|
30
|
-
= hook["id"]
|
31
|
-
|
32
|
-
%h4 Config:
|
33
|
-
%ul
|
34
|
-
- if hook["config"][:secret].present?
|
35
|
-
%li
|
36
|
-
%strong secret:
|
37
|
-
= hook["config"][:secret]
|
38
|
-
%li
|
39
|
-
%strong url:
|
40
|
-
= hook["config"][:url]
|
41
|
-
%li
|
42
|
-
%strong content type:
|
43
|
-
= hook["config"][:content_type]
|
44
|
-
%li
|
45
|
-
%strong ssl:
|
46
|
-
= hook["config"][:insecure_ssl]
|
47
|
-
|
48
|
-
%h4 Test url:
|
49
|
-
%p
|
50
|
-
= hook["test_url"]
|
51
|
-
|
52
|
-
%h4 Last response:
|
53
|
-
%p
|
54
|
-
= hook["last_response"].to_json
|
55
|
-
|
56
|
-
|
57
|
-
.col-sm-12
|
58
|
-
%h3
|
59
|
-
= hook.present? ? "Will update exiting (#{hook["id"]}) hook." : "Will create new hook."
|
60
|
-
%form{:action => "/repos/#{repo.name}/add_hook", method: "post"}
|
61
|
-
%input{:type => "text", name: "webhook_url", placeholder: "type the receive hook url...", style:"width:250px"}
|
62
|
-
%button Send
|
63
|
-
|
64
|
-
%p.small
|
65
|
-
we are going to send the hook to
|
66
|
-
%strong
|
67
|
-
=repo.url
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|