tokite 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/tokite/application_controller.rb +11 -3
- data/app/controllers/tokite/hooks_controller.rb +1 -0
- data/app/controllers/tokite/repositories_controller.rb +41 -0
- data/app/controllers/tokite/rules_controller.rb +15 -16
- data/app/controllers/tokite/sessions_controller.rb +1 -12
- data/app/controllers/tokite/transfers_controller.rb +14 -0
- data/app/helpers/tokite/application_helper.rb +4 -0
- data/app/models/tokite/repository.rb +41 -0
- data/app/models/tokite/rule.rb +10 -3
- data/app/models/tokite/secure_user_token.rb +5 -0
- data/app/models/tokite/transfer.rb +19 -0
- data/app/models/tokite/user.rb +29 -2
- data/app/views/layouts/tokite/application.html.haml +4 -1
- data/app/views/tokite/repositories/index.html.haml +13 -0
- data/app/views/tokite/repositories/new.html.haml +18 -0
- data/app/views/tokite/rules/_form.html.haml +4 -3
- data/app/views/tokite/rules/_rules.html.haml +1 -1
- data/app/views/tokite/sessions/new.html.haml +1 -1
- data/app/views/tokite/transfers/new.html.haml +8 -0
- data/app/views/tokite/users/index.html.haml +1 -1
- data/config/initializers/octokit.rb +7 -0
- data/config/initializers/omniauth.rb +13 -4
- data/config/routes.rb +5 -2
- data/lib/tasks/tokite.rake +14 -8
- data/lib/tokite/version.rb +1 -1
- metadata +26 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5713f325c58d3d8111e0a7d23474ff6f5102a15
|
4
|
+
data.tar.gz: c8c4507ea06af90e808469887e83dc8038af430e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f13bf68e97bf9ce0b3ff43f1a6326964433545e1b4c6a6456da5371eecda96aa67f88d18e50c5591356cf7a0455f1a8557085f18703deb009eac3d808d9d602
|
7
|
+
data.tar.gz: 106be23f58cb08f37146689762decbd6e5d05a902c46ed03afb58392574c88b5715ee8fd0d7bb0a57bdc0d09fcb9c2fbd67f6bc59c5e9e4198afd723d5a98b09
|
@@ -2,8 +2,8 @@ module Tokite
|
|
2
2
|
class ApplicationController < ActionController::Base
|
3
3
|
protect_from_forgery with: :exception
|
4
4
|
|
5
|
-
helper_method :current_user
|
6
|
-
|
5
|
+
helper_method :current_user, :current_user_token
|
6
|
+
|
7
7
|
before_action :require_login
|
8
8
|
|
9
9
|
private
|
@@ -11,10 +11,18 @@ module Tokite
|
|
11
11
|
def current_user
|
12
12
|
@current_user ||= User.find_by(id: session[:user_id]) if session[:user_id]
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
|
+
def current_user_token
|
16
|
+
current_user&.token
|
17
|
+
end
|
18
|
+
|
15
19
|
def require_login
|
16
20
|
return if current_user
|
17
21
|
redirect_to sign_in_path
|
18
22
|
end
|
23
|
+
|
24
|
+
def octokit_client
|
25
|
+
@octokit_client ||= Octokit::Client.new(access_token: current_user_token, auto_paginate: true)
|
26
|
+
end
|
19
27
|
end
|
20
28
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Tokite
|
2
|
+
class RepositoriesController < ApplicationController
|
3
|
+
before_action :require_github_token, only: [:new, :create, :destroy]
|
4
|
+
|
5
|
+
def index
|
6
|
+
@repositories = Repository.all
|
7
|
+
end
|
8
|
+
|
9
|
+
def new
|
10
|
+
github_repos = octokit_client.repositories.select{|r| r.permissions.admin }.delete_if(&:fork)
|
11
|
+
@repositories = github_repos.map do |repo|
|
12
|
+
Repository.new(name: repo.full_name, url: repo.html_url)
|
13
|
+
end
|
14
|
+
Repository.all.pluck(:name).each do |existing_name|
|
15
|
+
@repositories.delete_if {|repo| repo.name == existing_name }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def create
|
20
|
+
params[:names].each do |name|
|
21
|
+
github_repo = octokit_client.repository(name)
|
22
|
+
Repository.hook!(octokit_client, github_repo)
|
23
|
+
end
|
24
|
+
flash[:info] = "Import repositories."
|
25
|
+
redirect_to repositories_path
|
26
|
+
end
|
27
|
+
|
28
|
+
def destroy
|
29
|
+
repo = Repository.find(params[:id])
|
30
|
+
repo.unhook!(octokit_client)
|
31
|
+
flash[:info] = "Unhook repository #{repo.name}"
|
32
|
+
redirect_to repositories_path
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def require_github_token
|
38
|
+
redirect_to repositories_path unless current_user_token
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -5,49 +5,48 @@ module Tokite
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def new
|
8
|
-
@
|
8
|
+
@rule_user = User.find(params[:user_id])
|
9
|
+
@rule = @rule_user.rules.build
|
9
10
|
end
|
10
11
|
|
11
12
|
def create
|
12
|
-
@
|
13
|
+
@rule_user = User.find(params[:user_id])
|
14
|
+
@rule = @rule_user.rules.new(rule_params)
|
13
15
|
if @rule.save
|
14
16
|
flash[:info] = "Rule created."
|
15
|
-
redirect_to
|
17
|
+
redirect_to user_path(@rule.user_id)
|
16
18
|
else
|
17
19
|
render "new"
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
21
23
|
def edit
|
22
|
-
@
|
24
|
+
@rule_user = nil
|
25
|
+
@rule = Rule.find(params[:id])
|
23
26
|
end
|
24
27
|
|
25
28
|
def update
|
26
|
-
@rule =
|
29
|
+
@rule = Rule.find(params[:id])
|
27
30
|
@rule.assign_attributes(rule_params)
|
28
31
|
if @rule.save
|
29
32
|
flash[:info] = "Rule updated."
|
30
|
-
redirect_to
|
33
|
+
redirect_to user_path(@rule.user_id)
|
31
34
|
else
|
32
35
|
render "edit"
|
33
36
|
end
|
34
37
|
end
|
35
|
-
|
38
|
+
|
36
39
|
def destroy
|
37
|
-
@rule =
|
40
|
+
@rule = Rule.find(params[:id])
|
38
41
|
@rule.destroy!
|
39
42
|
flash[:info] = "Rule deleted."
|
40
|
-
redirect_to
|
43
|
+
redirect_to user_path(@rule.user_id)
|
41
44
|
end
|
42
|
-
|
45
|
+
|
43
46
|
private
|
44
|
-
|
45
|
-
def rule_user
|
46
|
-
@rule_user ||= User.find(params[:user_id])
|
47
|
-
end
|
48
|
-
|
47
|
+
|
49
48
|
def rule_params
|
50
|
-
params.require(:rule).permit(:name, :query, :channel, :icon_emoji, :additional_text)
|
49
|
+
params.require(:rule).permit(:user_id, :name, :query, :channel, :icon_emoji, :additional_text)
|
51
50
|
end
|
52
51
|
end
|
53
52
|
end
|
@@ -7,18 +7,7 @@ module Tokite
|
|
7
7
|
|
8
8
|
def create
|
9
9
|
auth = request.env["omniauth.auth"]
|
10
|
-
user = User.
|
11
|
-
provider: auth[:provider],
|
12
|
-
uid: auth[:uid],
|
13
|
-
)
|
14
|
-
unless user.persisted?
|
15
|
-
user.update!(
|
16
|
-
name: auth[:info][:name],
|
17
|
-
email: auth[:info][:email],
|
18
|
-
image_url: auth[:info][:image],
|
19
|
-
)
|
20
|
-
end
|
21
|
-
|
10
|
+
user = User.login!(auth)
|
22
11
|
session[:user_id] = user.id
|
23
12
|
redirect_to root_path
|
24
13
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Tokite
|
2
|
+
class TransfersController < ApplicationController
|
3
|
+
def new
|
4
|
+
@transfer = Transfer.new(rule_id: params[:rule_id])
|
5
|
+
@rule = @transfer.rule
|
6
|
+
@users = User.where.not(id: @rule.user_id)
|
7
|
+
end
|
8
|
+
|
9
|
+
def create
|
10
|
+
@transfer = Transfer.create!(rule_id: params[:rule_id], user_id: params[:transfer][:user_id])
|
11
|
+
redirect_to user_path(@transfer.rule.user_id)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Tokite
|
2
|
+
class Repository < ApplicationRecord
|
3
|
+
def self.hook!(octokit_client, github_repo)
|
4
|
+
repo_name = github_repo.full_name
|
5
|
+
existing_hook = find_hook(octokit_client, repo_name)
|
6
|
+
if existing_hook
|
7
|
+
octokit_client.edit_hook(repo_name, existing_hook.id, "web", hook_config, hook_options)
|
8
|
+
else
|
9
|
+
octokit_client.create_hook(repo_name, "web", hook_config, hook_options)
|
10
|
+
end
|
11
|
+
create!(name: repo_name, url: github_repo.html_url)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.find_hook(octokit_client, repo_name)
|
15
|
+
octokit_client.hooks(repo_name).find {|hook| hook.config.url == hooks_url }
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.hook_config
|
19
|
+
{
|
20
|
+
content_type: "json",
|
21
|
+
url: hooks_url,
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.hook_options
|
26
|
+
{
|
27
|
+
events: ["*"]
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.hooks_url
|
32
|
+
Tokite::Engine.routes.url_helpers.hooks_url
|
33
|
+
end
|
34
|
+
|
35
|
+
def unhook!(octokit_client)
|
36
|
+
hook = self.class.find_hook(octokit_client, name)
|
37
|
+
octokit_client.remove_hook(name, hook.id) if hook
|
38
|
+
destroy!
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/app/models/tokite/rule.rb
CHANGED
@@ -5,7 +5,8 @@ module Tokite
|
|
5
5
|
belongs_to :user
|
6
6
|
|
7
7
|
validate :validate_query
|
8
|
-
|
8
|
+
validate :validate_user_id
|
9
|
+
|
9
10
|
# TODO: Performance
|
10
11
|
def self.matched_rules(event)
|
11
12
|
Rule.all.to_a.select do |rule|
|
@@ -30,11 +31,11 @@ module Tokite
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def rule_name_link
|
33
|
-
"<#{Tokite::Engine.routes.url_helpers.
|
34
|
+
"<#{Tokite::Engine.routes.url_helpers.edit_rule_url(self)}|#{name}>"
|
34
35
|
end
|
35
36
|
|
36
37
|
def user_link
|
37
|
-
"<#{Tokite::Engine.routes.url_helpers.
|
38
|
+
"<#{Tokite::Engine.routes.url_helpers.user_url(user)}|#{user.name}>"
|
38
39
|
end
|
39
40
|
|
40
41
|
def validate_query
|
@@ -42,5 +43,11 @@ module Tokite
|
|
42
43
|
rescue SearchQuery::ParseError => e
|
43
44
|
errors.add(:query, e.message)
|
44
45
|
end
|
46
|
+
|
47
|
+
def validate_user_id
|
48
|
+
unless User.find_by(id: user_id)
|
49
|
+
errors.add(:user_id, "Unknown user_id: #{user_id}")
|
50
|
+
end
|
51
|
+
end
|
45
52
|
end
|
46
53
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Tokite
|
2
|
+
class Transfer
|
3
|
+
include ActiveModel::Model
|
4
|
+
|
5
|
+
attr_accessor :rule_id, :user_id
|
6
|
+
attr_reader :rule
|
7
|
+
|
8
|
+
def self.create!(attributes)
|
9
|
+
transfer = new(attributes)
|
10
|
+
transfer.rule.update!(user_id: transfer.user_id)
|
11
|
+
|
12
|
+
return transfer
|
13
|
+
end
|
14
|
+
|
15
|
+
def rule
|
16
|
+
@rule ||= Rule.find(rule_id)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/app/models/tokite/user.rb
CHANGED
@@ -1,13 +1,36 @@
|
|
1
1
|
module Tokite
|
2
2
|
class User < ApplicationRecord
|
3
3
|
has_many :rules, dependent: :destroy
|
4
|
-
|
4
|
+
|
5
|
+
has_one :secure_user_token
|
6
|
+
|
7
|
+
delegate :token, to: :secure_user_token, allow_nil: true
|
8
|
+
|
9
|
+
def self.login!(auth)
|
10
|
+
user = find_or_initialize_by(
|
11
|
+
provider: auth[:provider],
|
12
|
+
uid: auth[:uid],
|
13
|
+
)
|
14
|
+
if user.persisted?
|
15
|
+
user.secure_user_token.update!(token: auth[:credentials][:token])
|
16
|
+
else
|
17
|
+
user.assign_attributes(
|
18
|
+
name: auth[:info][:name],
|
19
|
+
image_url: auth[:info][:image],
|
20
|
+
)
|
21
|
+
user.build_secure_user_token(token: auth[:credentials][:token])
|
22
|
+
transaction do
|
23
|
+
user.save!
|
24
|
+
end
|
25
|
+
end
|
26
|
+
user
|
27
|
+
end
|
28
|
+
|
5
29
|
def self.create_group_user!(name)
|
6
30
|
uuid = SecureRandom.uuid.tr("-", "")
|
7
31
|
create!(
|
8
32
|
provider: "GROUP",
|
9
33
|
uid: uuid,
|
10
|
-
email: uuid,
|
11
34
|
image_url: "",
|
12
35
|
name: name
|
13
36
|
)
|
@@ -16,5 +39,9 @@ module Tokite
|
|
16
39
|
def group_user?
|
17
40
|
provider == "GROUP"
|
18
41
|
end
|
42
|
+
|
43
|
+
def name_with_provider
|
44
|
+
"#{name} (#{provider})"
|
45
|
+
end
|
19
46
|
end
|
20
47
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
!!!
|
2
|
-
%html
|
2
|
+
%html{lang: :en}
|
3
3
|
%head
|
4
4
|
%title Tokite
|
5
5
|
= csrf_meta_tags
|
@@ -15,6 +15,9 @@
|
|
15
15
|
= nav_list_item "Top", root_path, ["top"]
|
16
16
|
= nav_list_item "Users", users_path, ["users"]
|
17
17
|
= nav_list_item "Rules", rules_path, ["rules"]
|
18
|
+
= nav_list_item "Repositories", repositories_path, ["repositories"]
|
19
|
+
.nav-right
|
20
|
+
%span.nav-item.is-tab= current_user.name_with_provider
|
18
21
|
|
19
22
|
%section.section
|
20
23
|
- if flash[:info]
|
@@ -0,0 +1,13 @@
|
|
1
|
+
- if current_user_token
|
2
|
+
= link_to "Watch new repositories", new_repository_path, class: "button is-primary"
|
3
|
+
|
4
|
+
.vspace-40
|
5
|
+
|
6
|
+
%h1.title Watching repositories
|
7
|
+
|
8
|
+
%table.table.is-bordered
|
9
|
+
- @repositories.each do |repo|
|
10
|
+
%tr
|
11
|
+
%td= link_to repo.name, repo.url
|
12
|
+
- if show_admin_menu?
|
13
|
+
%td= link_to "Unwatch", repo, method: :delete, class: "button is-danger", data: { confirm: "Unwatch repository?" }
|
@@ -0,0 +1,18 @@
|
|
1
|
+
- if @repositories.present?
|
2
|
+
= form_tag repositories_path do |f|
|
3
|
+
%ul
|
4
|
+
- @repositories.each do |repo|
|
5
|
+
%li.field
|
6
|
+
.control
|
7
|
+
%label.checkbox
|
8
|
+
= check_box_tag "names[]", repo.name, false, id: "names_#{sanitize_to_id(repo.name)}", multiple: true
|
9
|
+
= repo.name
|
10
|
+
= link_to "@", repo.url
|
11
|
+
|
12
|
+
.vspace-40
|
13
|
+
|
14
|
+
.field
|
15
|
+
.control
|
16
|
+
= submit_tag "Import repositories", class: "button is-primary"
|
17
|
+
- else
|
18
|
+
No importable repositories.
|
@@ -4,10 +4,11 @@
|
|
4
4
|
= form_text_field f, :channel, size: 40, class: "input"
|
5
5
|
= form_text_field f, :icon_emoji, size: 40, class: "input"
|
6
6
|
= form_text_field f, :additional_text, size: 40, class: "input"
|
7
|
-
.field
|
8
|
-
= f.submit class: "button is-primary"
|
7
|
+
.field.columns
|
8
|
+
.column.is-8= f.submit "Update", class: "button is-primary"
|
9
9
|
- if @rule.persisted?
|
10
|
-
= link_to "
|
10
|
+
.column.is-2= link_to "Transfer", new_rule_transfers_path(@rule), class: "button is-primary"
|
11
|
+
.column.is-2= link_to "Delete", rule_path(@rule), method: :delete, data: { confirm: %(Delete "#{@rule.name}"?) }, class: "button is-danger"
|
11
12
|
|
12
13
|
.message.vspace-40
|
13
14
|
.message-header
|
@@ -1 +1 @@
|
|
1
|
-
= link_to "Login with
|
1
|
+
= link_to "Login with GitHub", "/auth/github"
|
@@ -1,7 +1,16 @@
|
|
1
|
-
require "omniauth-
|
1
|
+
require "omniauth-github"
|
2
2
|
|
3
3
|
Tokite::Engine.config.middleware.use OmniAuth::Builder do
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
options = { scope: "repo,write:repo_hook" }
|
5
|
+
host = ENV["GITHUB_HOST"]
|
6
|
+
if host.present?
|
7
|
+
options.merge!(
|
8
|
+
client_options: {
|
9
|
+
site: "#{host}/api/v3",
|
10
|
+
authorize_url: "#{host}/login/oauth/authorize",
|
11
|
+
token_url: "#{host}/login/oauth/access_token",
|
12
|
+
}
|
13
|
+
)
|
14
|
+
end
|
15
|
+
provider :github, ENV["GITHUB_CLIENT_ID"], ENV["GITHUB_CLIENT_SECRET"], options
|
7
16
|
end
|
data/config/routes.rb
CHANGED
@@ -3,12 +3,15 @@ Tokite::Engine.routes.draw do
|
|
3
3
|
|
4
4
|
resources :hooks, only: %w(create)
|
5
5
|
resources :users, only: %w(index show create edit update destroy) do
|
6
|
-
resources :rules, only: %w(new create edit update destroy)
|
6
|
+
resources :rules, only: %w(new create edit update destroy), shallow: true do
|
7
|
+
resource :transfers, only: %w(new create)
|
8
|
+
end
|
7
9
|
end
|
8
10
|
resources :rules, only: %w(index)
|
11
|
+
resources :repositories, only: %w(index new create destroy)
|
9
12
|
|
10
13
|
get "sign_in", to: "sessions#new", as: "sign_in"
|
11
|
-
get "auth/
|
14
|
+
get "auth/github/callback", to: "sessions#create"
|
12
15
|
delete "sign_out", to: "sessions#destroy", as: "sign_out"
|
13
16
|
|
14
17
|
get "site/sha", to: "sha#show"
|
data/lib/tasks/tokite.rake
CHANGED
@@ -12,12 +12,7 @@ namespace :tokite do
|
|
12
12
|
yml = Rails.root.join("config/database.yml").to_s
|
13
13
|
sh "bundle", "exec", "ridgepole", "-c", yml, "-E", Rails.env, *args
|
14
14
|
end
|
15
|
-
|
16
|
-
desc "Export current schema"
|
17
|
-
task :export do
|
18
|
-
ridgepole_exec("--export", app_path("schema/Schemafile"), "--split")
|
19
|
-
end
|
20
|
-
|
15
|
+
|
21
16
|
desc "Apply Schemafile"
|
22
17
|
task :apply do
|
23
18
|
ridgepole_exec("--file", app_path("schema/Schemafile"), "-a")
|
@@ -30,10 +25,21 @@ namespace :tokite do
|
|
30
25
|
|
31
26
|
desc "Install schema"
|
32
27
|
task :install do
|
28
|
+
tokite_schema_dir = app_path("schema/tokite")
|
29
|
+
mkdir(tokite_schema_dir) unless Dir.exist?(tokite_schema_dir)
|
30
|
+
|
33
31
|
schema_dir = app_path("schema")
|
34
32
|
mkdir(schema_dir) unless Dir.exist?(schema_dir)
|
35
|
-
|
36
|
-
|
33
|
+
|
34
|
+
Dir.glob("#{engine_path("schema")}/*").each do |src_path|
|
35
|
+
basename = File.basename(src_path)
|
36
|
+
if File.exist?(File.join(tokite_schema_dir, basename))
|
37
|
+
puts "Skip install schema #{src_path}"
|
38
|
+
else
|
39
|
+
puts "Install schema #{src_path}"
|
40
|
+
cp src_path, tokite_schema_dir
|
41
|
+
cp src_path, schema_dir
|
42
|
+
end
|
37
43
|
end
|
38
44
|
end
|
39
45
|
end
|
data/lib/tokite/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tokite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- hogelog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -81,7 +81,21 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name: omniauth-
|
84
|
+
name: omniauth-github
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: octokit
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - ">="
|
@@ -179,10 +193,12 @@ files:
|
|
179
193
|
- app/assets/stylesheets/tokite/application.scss
|
180
194
|
- app/controllers/tokite/application_controller.rb
|
181
195
|
- app/controllers/tokite/hooks_controller.rb
|
196
|
+
- app/controllers/tokite/repositories_controller.rb
|
182
197
|
- app/controllers/tokite/rules_controller.rb
|
183
198
|
- app/controllers/tokite/sessions_controller.rb
|
184
199
|
- app/controllers/tokite/sha_controller.rb
|
185
200
|
- app/controllers/tokite/top_controller.rb
|
201
|
+
- app/controllers/tokite/transfers_controller.rb
|
186
202
|
- app/controllers/tokite/users_controller.rb
|
187
203
|
- app/helpers/tokite/application_helper.rb
|
188
204
|
- app/jobs/tokite/application_job.rb
|
@@ -194,13 +210,18 @@ files:
|
|
194
210
|
- app/models/tokite/hook_event/issue_comment.rb
|
195
211
|
- app/models/tokite/hook_event/issues.rb
|
196
212
|
- app/models/tokite/hook_event/pull_request.rb
|
213
|
+
- app/models/tokite/repository.rb
|
197
214
|
- app/models/tokite/revision.rb
|
198
215
|
- app/models/tokite/rule.rb
|
199
216
|
- app/models/tokite/search_query.rb
|
217
|
+
- app/models/tokite/secure_user_token.rb
|
218
|
+
- app/models/tokite/transfer.rb
|
200
219
|
- app/models/tokite/user.rb
|
201
220
|
- app/views/layouts/tokite/application.html.haml
|
202
221
|
- app/views/layouts/tokite/mailer.html.erb
|
203
222
|
- app/views/layouts/tokite/mailer.text.erb
|
223
|
+
- app/views/tokite/repositories/index.html.haml
|
224
|
+
- app/views/tokite/repositories/new.html.haml
|
204
225
|
- app/views/tokite/rules/_form.html.haml
|
205
226
|
- app/views/tokite/rules/_rules.html.haml
|
206
227
|
- app/views/tokite/rules/edit.html.haml
|
@@ -208,10 +229,12 @@ files:
|
|
208
229
|
- app/views/tokite/rules/new.html.haml
|
209
230
|
- app/views/tokite/sessions/new.html.haml
|
210
231
|
- app/views/tokite/top/show.html.haml
|
232
|
+
- app/views/tokite/transfers/new.html.haml
|
211
233
|
- app/views/tokite/users/_form.html.haml
|
212
234
|
- app/views/tokite/users/edit.html.haml
|
213
235
|
- app/views/tokite/users/index.html.haml
|
214
236
|
- app/views/tokite/users/show.html.haml
|
237
|
+
- config/initializers/octokit.rb
|
215
238
|
- config/initializers/omniauth.rb
|
216
239
|
- config/initializers/slack_notifier.rb
|
217
240
|
- config/routes.rb
|