reviewkit 0.1.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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +23 -0
- data/CODE_OF_CONDUCT.md +123 -0
- data/CONTRIBUTING.md +44 -0
- data/MIT-LICENSE +20 -0
- data/README.md +335 -0
- data/Rakefile +7 -0
- data/SECURITY.md +18 -0
- data/app/assets/builds/reviewkit/application.css +2 -0
- data/app/assets/javascripts/reviewkit/application.js +12 -0
- data/app/assets/javascripts/reviewkit/controllers/file_nav_controller.js +24 -0
- data/app/assets/javascripts/reviewkit/controllers/review_index_controller.js +84 -0
- data/app/assets/tailwind/reviewkit/application.css +865 -0
- data/app/controllers/reviewkit/application_controller.rb +80 -0
- data/app/controllers/reviewkit/comments_controller.rb +147 -0
- data/app/controllers/reviewkit/review_threads_controller.rb +277 -0
- data/app/controllers/reviewkit/reviews_controller.rb +142 -0
- data/app/helpers/reviewkit/application_helper.rb +12 -0
- data/app/helpers/reviewkit/asset_helper.rb +39 -0
- data/app/helpers/reviewkit/diff_helper.rb +230 -0
- data/app/helpers/reviewkit/flash_helper.rb +36 -0
- data/app/helpers/reviewkit/frame_helper.rb +37 -0
- data/app/helpers/reviewkit/icon_helper.rb +107 -0
- data/app/helpers/reviewkit/review_thread_helper.rb +54 -0
- data/app/models/concerns/reviewkit/notifies_lifecycle_events.rb +39 -0
- data/app/models/reviewkit/application_record.rb +7 -0
- data/app/models/reviewkit/comment.rb +29 -0
- data/app/models/reviewkit/current.rb +7 -0
- data/app/models/reviewkit/document.rb +79 -0
- data/app/models/reviewkit/review.rb +66 -0
- data/app/models/reviewkit/review_thread.rb +75 -0
- data/app/services/reviewkit/diffs/intraline_budget.rb +40 -0
- data/app/services/reviewkit/diffs/intraline_diff.rb +220 -0
- data/app/services/reviewkit/diffs/split_diff.rb +112 -0
- data/app/services/reviewkit/reviews/create.rb +57 -0
- data/app/views/layouts/reviewkit/application.html.erb +15 -0
- data/app/views/reviewkit/comments/_comment.html.erb +53 -0
- data/app/views/reviewkit/comments/_edit_form.html.erb +26 -0
- data/app/views/reviewkit/comments/_form.html.erb +16 -0
- data/app/views/reviewkit/review_threads/_bucket.html.erb +53 -0
- data/app/views/reviewkit/review_threads/_bucket_frame.html.erb +13 -0
- data/app/views/reviewkit/review_threads/_bucket_row.html.erb +55 -0
- data/app/views/reviewkit/review_threads/_edit_form.html.erb +29 -0
- data/app/views/reviewkit/review_threads/_thread.html.erb +87 -0
- data/app/views/reviewkit/reviews/_document.html.erb +41 -0
- data/app/views/reviewkit/reviews/_document_split.html.erb +73 -0
- data/app/views/reviewkit/reviews/_document_unified.html.erb +57 -0
- data/app/views/reviewkit/reviews/_edit_form.html.erb +35 -0
- data/app/views/reviewkit/reviews/_index_content.html.erb +160 -0
- data/app/views/reviewkit/reviews/_review_sidebar.html.erb +70 -0
- data/app/views/reviewkit/reviews/_show_content.html.erb +164 -0
- data/app/views/reviewkit/reviews/index.html.erb +11 -0
- data/app/views/reviewkit/reviews/show.html.erb +11 -0
- data/app/views/reviewkit/shared/_flash.html.erb +10 -0
- data/bin/console +4 -0
- data/bin/lint +4 -0
- data/bin/rails +14 -0
- data/bin/setup +9 -0
- data/bin/test +4 -0
- data/config/importmap.rb +6 -0
- data/config/routes.rb +24 -0
- data/db/migrate/20260331181500_create_reviewkit_reviews.rb +19 -0
- data/db/migrate/20260331181600_create_reviewkit_documents.rb +23 -0
- data/db/migrate/20260331181700_create_reviewkit_review_threads.rb +23 -0
- data/db/migrate/20260331181800_create_reviewkit_comments.rb +15 -0
- data/db/migrate/20260401093000_add_description_to_reviewkit_reviews.rb +7 -0
- data/lib/generators/reviewkit/controllers/controllers_generator.rb +24 -0
- data/lib/generators/reviewkit/controllers/templates/comments_controller_extension.rb +13 -0
- data/lib/generators/reviewkit/controllers/templates/review_threads_controller_extension.rb +13 -0
- data/lib/generators/reviewkit/controllers/templates/reviews_controller_extension.rb +19 -0
- data/lib/generators/reviewkit/install/install_generator.rb +52 -0
- data/lib/generators/reviewkit/install/templates/importmap.rb +3 -0
- data/lib/generators/reviewkit/install/templates/reviewkit.rb +19 -0
- data/lib/generators/reviewkit/models/models_generator.rb +24 -0
- data/lib/generators/reviewkit/models/templates/comment_extension.rb +21 -0
- data/lib/generators/reviewkit/models/templates/review_extension.rb +22 -0
- data/lib/generators/reviewkit/models/templates/review_thread_extension.rb +21 -0
- data/lib/generators/reviewkit/views/views_generator.rb +15 -0
- data/lib/reviewkit/configuration.rb +33 -0
- data/lib/reviewkit/engine.rb +67 -0
- data/lib/reviewkit/version.rb +5 -0
- data/lib/reviewkit.rb +26 -0
- data/lib/tasks/reviewkit_tasks.rake +12 -0
- data/sig/reviewkit.rbs +129 -0
- metadata +238 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Reviewkit
|
|
4
|
+
class Configuration
|
|
5
|
+
DEFAULT_LAYOUT = "reviewkit/application"
|
|
6
|
+
|
|
7
|
+
class IntralineLimits
|
|
8
|
+
attr_accessor :enabled,
|
|
9
|
+
:max_review_files,
|
|
10
|
+
:max_changed_lines,
|
|
11
|
+
:max_line_length
|
|
12
|
+
|
|
13
|
+
def initialize
|
|
14
|
+
@enabled = true
|
|
15
|
+
@max_review_files = 50
|
|
16
|
+
@max_changed_lines = 50
|
|
17
|
+
@max_line_length = 500
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
attr_accessor :authorize_action,
|
|
22
|
+
:current_actor,
|
|
23
|
+
:intraline_limits,
|
|
24
|
+
:layout
|
|
25
|
+
|
|
26
|
+
def initialize
|
|
27
|
+
@authorize_action = ->(_controller, _action, _record = nil, **_context) { true }
|
|
28
|
+
@current_actor = ->(controller) { controller.respond_to?(:current_user, true) ? controller.send(:current_user) : nil }
|
|
29
|
+
@intraline_limits = IntralineLimits.new
|
|
30
|
+
@layout = DEFAULT_LAYOUT
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Reviewkit
|
|
4
|
+
class Engine < ::Rails::Engine
|
|
5
|
+
isolate_namespace Reviewkit
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
def include_host_extension(base_class, extension_name)
|
|
9
|
+
extension = extension_name.safe_constantize
|
|
10
|
+
return unless extension
|
|
11
|
+
return if base_class < extension
|
|
12
|
+
|
|
13
|
+
base_class.include(extension)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def prepend_host_extension(base_class, extension_name)
|
|
17
|
+
extension = extension_name.safe_constantize
|
|
18
|
+
return unless extension
|
|
19
|
+
return if base_class < extension
|
|
20
|
+
|
|
21
|
+
base_class.prepend(extension)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
initializer "reviewkit.importmap", before: "importmap" do |app|
|
|
26
|
+
next unless app.config.respond_to?(:importmap)
|
|
27
|
+
|
|
28
|
+
app.config.importmap.paths << root.join("config/importmap.rb")
|
|
29
|
+
app.config.importmap.cache_sweepers << root.join("app/assets/javascripts")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
config.generators do |g|
|
|
33
|
+
g.test_framework :rspec
|
|
34
|
+
g.fixture_replacement :factory_bot, dir: "spec/factories"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
initializer "reviewkit.assets" do |app|
|
|
38
|
+
app.config.assets.paths << root.join("app/assets/builds")
|
|
39
|
+
app.config.assets.precompile += %w[
|
|
40
|
+
reviewkit/application.css
|
|
41
|
+
reviewkit/application.js
|
|
42
|
+
] if app.config.respond_to?(:assets)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
initializer "reviewkit.turbo_stream" do
|
|
46
|
+
Mime::Type.register "text/vnd.turbo-stream.html", :turbo_stream unless Mime[:turbo_stream]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
initializer "reviewkit.helpers" do
|
|
50
|
+
ActiveSupport.on_load(:action_controller_base) do
|
|
51
|
+
helper Reviewkit::ApplicationHelper
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
initializer "reviewkit.host_extensions" do
|
|
56
|
+
ActiveSupport::Reloader.to_prepare do
|
|
57
|
+
Engine.include_host_extension(Reviewkit::Review, "Reviewkit::ReviewExtension")
|
|
58
|
+
Engine.include_host_extension(Reviewkit::ReviewThread, "Reviewkit::ReviewThreadExtension")
|
|
59
|
+
Engine.include_host_extension(Reviewkit::Comment, "Reviewkit::CommentExtension")
|
|
60
|
+
|
|
61
|
+
Engine.prepend_host_extension(Reviewkit::ReviewsController, "Reviewkit::ReviewsControllerExtension")
|
|
62
|
+
Engine.prepend_host_extension(Reviewkit::ReviewThreadsController, "Reviewkit::ReviewThreadsControllerExtension")
|
|
63
|
+
Engine.prepend_host_extension(Reviewkit::CommentsController, "Reviewkit::CommentsControllerExtension")
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
data/lib/reviewkit.rb
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "importmap-rails"
|
|
4
|
+
require "turbo-rails"
|
|
5
|
+
require "reviewkit/version"
|
|
6
|
+
require "reviewkit/configuration"
|
|
7
|
+
require "reviewkit/engine"
|
|
8
|
+
|
|
9
|
+
module Reviewkit
|
|
10
|
+
class Error < StandardError; end
|
|
11
|
+
class AuthorizationError < Error; end
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
def config
|
|
15
|
+
@config ||= Configuration.new
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def configure
|
|
19
|
+
yield(config)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def reset_configuration!
|
|
23
|
+
@config = Configuration.new
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
tailwind_input = "app/assets/tailwind/reviewkit/application.css"
|
|
2
|
+
tailwind_output = "app/assets/builds/reviewkit/application.css"
|
|
3
|
+
|
|
4
|
+
namespace :reviewkit do
|
|
5
|
+
desc "Build the engine's shipped TailwindCSS asset"
|
|
6
|
+
task :build_css do
|
|
7
|
+
sh "bundle exec tailwindcss -i #{tailwind_input} -o #{tailwind_output} --minify"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
desc "Build the engine's shipped frontend assets"
|
|
11
|
+
task build_assets: :build_css
|
|
12
|
+
end
|
data/sig/reviewkit.rbs
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
module Reviewkit
|
|
2
|
+
VERSION: ::String
|
|
3
|
+
|
|
4
|
+
class Error < ::StandardError
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class AuthorizationError < Error
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
type metadata = ::Hash[::String | ::Symbol, untyped]
|
|
11
|
+
type attributes = ::Hash[::String | ::Symbol, untyped]
|
|
12
|
+
type diff_row = ::Hash[::String, untyped]
|
|
13
|
+
type review_status = "draft" | "open" | "approved" | "rejected" | "closed"
|
|
14
|
+
type document_status = "added" | "removed" | "modified" | "unchanged"
|
|
15
|
+
type thread_status = "open" | "resolved" | "outdated"
|
|
16
|
+
|
|
17
|
+
def self.config: () -> Configuration
|
|
18
|
+
def self.configure: () { (Configuration config) -> untyped } -> void
|
|
19
|
+
def self.reset_configuration!: () -> Configuration
|
|
20
|
+
|
|
21
|
+
class Configuration
|
|
22
|
+
DEFAULT_LAYOUT: ::String
|
|
23
|
+
|
|
24
|
+
attr_accessor authorize_action: untyped
|
|
25
|
+
attr_accessor current_actor: untyped
|
|
26
|
+
attr_accessor intraline_limits: IntralineLimits
|
|
27
|
+
attr_accessor layout: ::String
|
|
28
|
+
|
|
29
|
+
def initialize: () -> void
|
|
30
|
+
|
|
31
|
+
class IntralineLimits
|
|
32
|
+
attr_accessor enabled: bool
|
|
33
|
+
attr_accessor max_review_files: ::Integer?
|
|
34
|
+
attr_accessor max_changed_lines: ::Integer?
|
|
35
|
+
attr_accessor max_line_length: ::Integer?
|
|
36
|
+
|
|
37
|
+
def initialize: () -> void
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class Current
|
|
42
|
+
def self.actor: () -> untyped
|
|
43
|
+
def self.controller: () -> untyped
|
|
44
|
+
def self.source: () -> untyped
|
|
45
|
+
def self.set: (?actor: untyped, ?controller: untyped, ?source: untyped) { () -> untyped } -> untyped
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
class Review
|
|
49
|
+
attr_accessor title: ::String
|
|
50
|
+
attr_accessor description: ::String?
|
|
51
|
+
attr_accessor external_reference: ::String?
|
|
52
|
+
attr_accessor metadata: metadata?
|
|
53
|
+
attr_accessor status: review_status
|
|
54
|
+
attr_accessor creator: untyped
|
|
55
|
+
attr_accessor reviewable: untyped
|
|
56
|
+
|
|
57
|
+
def open_threads_count: () -> ::Integer
|
|
58
|
+
def resolved_threads_count: () -> ::Integer
|
|
59
|
+
def approve!: () -> bool
|
|
60
|
+
def reject!: () -> bool
|
|
61
|
+
def close!: () -> bool
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
class Document
|
|
65
|
+
attr_accessor intraline_review_document_count: ::Integer?
|
|
66
|
+
attr_accessor path: ::String
|
|
67
|
+
attr_accessor language: ::String
|
|
68
|
+
attr_accessor old_content: ::String?
|
|
69
|
+
attr_accessor new_content: ::String?
|
|
70
|
+
attr_accessor metadata: metadata?
|
|
71
|
+
attr_accessor position: ::Integer
|
|
72
|
+
attr_accessor status: document_status
|
|
73
|
+
attr_accessor diff_cache: ::Hash[::String, untyped]
|
|
74
|
+
|
|
75
|
+
def additions_count: () -> ::Integer
|
|
76
|
+
def deletions_count: () -> ::Integer
|
|
77
|
+
def diff_rows: () -> ::Array[diff_row]
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
class ReviewThread
|
|
81
|
+
attr_accessor line_code: ::String
|
|
82
|
+
attr_accessor side: "old" | "new"
|
|
83
|
+
attr_accessor old_line: ::Integer?
|
|
84
|
+
attr_accessor new_line: ::Integer?
|
|
85
|
+
attr_accessor metadata: metadata?
|
|
86
|
+
attr_accessor status: thread_status
|
|
87
|
+
attr_accessor resolved_by: untyped
|
|
88
|
+
|
|
89
|
+
def resolve!: () -> bool
|
|
90
|
+
def reopen!: () -> bool
|
|
91
|
+
def mark_outdated!: () -> bool
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
class Comment
|
|
95
|
+
attr_accessor body: ::String
|
|
96
|
+
attr_accessor metadata: metadata?
|
|
97
|
+
attr_accessor author: untyped
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
module Reviews
|
|
101
|
+
class Create
|
|
102
|
+
def self.call: (
|
|
103
|
+
title: ::String,
|
|
104
|
+
?description: ::String?,
|
|
105
|
+
?creator: untyped,
|
|
106
|
+
?reviewable: untyped,
|
|
107
|
+
?external_reference: ::String?,
|
|
108
|
+
?metadata: metadata,
|
|
109
|
+
?review_attributes: attributes,
|
|
110
|
+
?status: review_status,
|
|
111
|
+
?documents: ::Array[attributes]
|
|
112
|
+
) -> Review
|
|
113
|
+
|
|
114
|
+
def initialize: (
|
|
115
|
+
title: ::String,
|
|
116
|
+
?description: ::String?,
|
|
117
|
+
?creator: untyped,
|
|
118
|
+
?reviewable: untyped,
|
|
119
|
+
?external_reference: ::String?,
|
|
120
|
+
?metadata: metadata,
|
|
121
|
+
?review_attributes: attributes,
|
|
122
|
+
?status: review_status,
|
|
123
|
+
?documents: ::Array[attributes]
|
|
124
|
+
) -> void
|
|
125
|
+
|
|
126
|
+
def call: () -> Review
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: reviewkit
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Dhairya Gabhawala
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: diff-lcs
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.6'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.6'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: importmap-rails
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '2.0'
|
|
33
|
+
- - "<"
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: '3.0'
|
|
36
|
+
type: :runtime
|
|
37
|
+
prerelease: false
|
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
39
|
+
requirements:
|
|
40
|
+
- - ">="
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '2.0'
|
|
43
|
+
- - "<"
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '3.0'
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: rails
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
requirements:
|
|
50
|
+
- - ">="
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: 8.1.2
|
|
53
|
+
- - "<"
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '8.2'
|
|
56
|
+
type: :runtime
|
|
57
|
+
prerelease: false
|
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - ">="
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: 8.1.2
|
|
63
|
+
- - "<"
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: '8.2'
|
|
66
|
+
- !ruby/object:Gem::Dependency
|
|
67
|
+
name: rouge
|
|
68
|
+
requirement: !ruby/object:Gem::Requirement
|
|
69
|
+
requirements:
|
|
70
|
+
- - "~>"
|
|
71
|
+
- !ruby/object:Gem::Version
|
|
72
|
+
version: '4.5'
|
|
73
|
+
type: :runtime
|
|
74
|
+
prerelease: false
|
|
75
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
76
|
+
requirements:
|
|
77
|
+
- - "~>"
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: '4.5'
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: stimulus-rails
|
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
|
83
|
+
requirements:
|
|
84
|
+
- - ">="
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '1.3'
|
|
87
|
+
- - "<"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '2.0'
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '1.3'
|
|
97
|
+
- - "<"
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '2.0'
|
|
100
|
+
- !ruby/object:Gem::Dependency
|
|
101
|
+
name: turbo-rails
|
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
|
103
|
+
requirements:
|
|
104
|
+
- - ">="
|
|
105
|
+
- !ruby/object:Gem::Version
|
|
106
|
+
version: '2.0'
|
|
107
|
+
- - "<"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '3.0'
|
|
110
|
+
type: :runtime
|
|
111
|
+
prerelease: false
|
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '2.0'
|
|
117
|
+
- - "<"
|
|
118
|
+
- !ruby/object:Gem::Version
|
|
119
|
+
version: '3.0'
|
|
120
|
+
description: Reviewkit is a mountable Rails engine for rendering Git-like code diffs,
|
|
121
|
+
persisting threaded line comments, and embedding review workflows into host apps.
|
|
122
|
+
email:
|
|
123
|
+
- gabhawaladhairya@gmail.com
|
|
124
|
+
executables: []
|
|
125
|
+
extensions: []
|
|
126
|
+
extra_rdoc_files: []
|
|
127
|
+
files:
|
|
128
|
+
- CHANGELOG.md
|
|
129
|
+
- CODE_OF_CONDUCT.md
|
|
130
|
+
- CONTRIBUTING.md
|
|
131
|
+
- MIT-LICENSE
|
|
132
|
+
- README.md
|
|
133
|
+
- Rakefile
|
|
134
|
+
- SECURITY.md
|
|
135
|
+
- app/assets/builds/reviewkit/application.css
|
|
136
|
+
- app/assets/javascripts/reviewkit/application.js
|
|
137
|
+
- app/assets/javascripts/reviewkit/controllers/file_nav_controller.js
|
|
138
|
+
- app/assets/javascripts/reviewkit/controllers/review_index_controller.js
|
|
139
|
+
- app/assets/tailwind/reviewkit/application.css
|
|
140
|
+
- app/controllers/reviewkit/application_controller.rb
|
|
141
|
+
- app/controllers/reviewkit/comments_controller.rb
|
|
142
|
+
- app/controllers/reviewkit/review_threads_controller.rb
|
|
143
|
+
- app/controllers/reviewkit/reviews_controller.rb
|
|
144
|
+
- app/helpers/reviewkit/application_helper.rb
|
|
145
|
+
- app/helpers/reviewkit/asset_helper.rb
|
|
146
|
+
- app/helpers/reviewkit/diff_helper.rb
|
|
147
|
+
- app/helpers/reviewkit/flash_helper.rb
|
|
148
|
+
- app/helpers/reviewkit/frame_helper.rb
|
|
149
|
+
- app/helpers/reviewkit/icon_helper.rb
|
|
150
|
+
- app/helpers/reviewkit/review_thread_helper.rb
|
|
151
|
+
- app/models/concerns/reviewkit/notifies_lifecycle_events.rb
|
|
152
|
+
- app/models/reviewkit/application_record.rb
|
|
153
|
+
- app/models/reviewkit/comment.rb
|
|
154
|
+
- app/models/reviewkit/current.rb
|
|
155
|
+
- app/models/reviewkit/document.rb
|
|
156
|
+
- app/models/reviewkit/review.rb
|
|
157
|
+
- app/models/reviewkit/review_thread.rb
|
|
158
|
+
- app/services/reviewkit/diffs/intraline_budget.rb
|
|
159
|
+
- app/services/reviewkit/diffs/intraline_diff.rb
|
|
160
|
+
- app/services/reviewkit/diffs/split_diff.rb
|
|
161
|
+
- app/services/reviewkit/reviews/create.rb
|
|
162
|
+
- app/views/layouts/reviewkit/application.html.erb
|
|
163
|
+
- app/views/reviewkit/comments/_comment.html.erb
|
|
164
|
+
- app/views/reviewkit/comments/_edit_form.html.erb
|
|
165
|
+
- app/views/reviewkit/comments/_form.html.erb
|
|
166
|
+
- app/views/reviewkit/review_threads/_bucket.html.erb
|
|
167
|
+
- app/views/reviewkit/review_threads/_bucket_frame.html.erb
|
|
168
|
+
- app/views/reviewkit/review_threads/_bucket_row.html.erb
|
|
169
|
+
- app/views/reviewkit/review_threads/_edit_form.html.erb
|
|
170
|
+
- app/views/reviewkit/review_threads/_thread.html.erb
|
|
171
|
+
- app/views/reviewkit/reviews/_document.html.erb
|
|
172
|
+
- app/views/reviewkit/reviews/_document_split.html.erb
|
|
173
|
+
- app/views/reviewkit/reviews/_document_unified.html.erb
|
|
174
|
+
- app/views/reviewkit/reviews/_edit_form.html.erb
|
|
175
|
+
- app/views/reviewkit/reviews/_index_content.html.erb
|
|
176
|
+
- app/views/reviewkit/reviews/_review_sidebar.html.erb
|
|
177
|
+
- app/views/reviewkit/reviews/_show_content.html.erb
|
|
178
|
+
- app/views/reviewkit/reviews/index.html.erb
|
|
179
|
+
- app/views/reviewkit/reviews/show.html.erb
|
|
180
|
+
- app/views/reviewkit/shared/_flash.html.erb
|
|
181
|
+
- bin/console
|
|
182
|
+
- bin/lint
|
|
183
|
+
- bin/rails
|
|
184
|
+
- bin/setup
|
|
185
|
+
- bin/test
|
|
186
|
+
- config/importmap.rb
|
|
187
|
+
- config/routes.rb
|
|
188
|
+
- db/migrate/20260331181500_create_reviewkit_reviews.rb
|
|
189
|
+
- db/migrate/20260331181600_create_reviewkit_documents.rb
|
|
190
|
+
- db/migrate/20260331181700_create_reviewkit_review_threads.rb
|
|
191
|
+
- db/migrate/20260331181800_create_reviewkit_comments.rb
|
|
192
|
+
- db/migrate/20260401093000_add_description_to_reviewkit_reviews.rb
|
|
193
|
+
- lib/generators/reviewkit/controllers/controllers_generator.rb
|
|
194
|
+
- lib/generators/reviewkit/controllers/templates/comments_controller_extension.rb
|
|
195
|
+
- lib/generators/reviewkit/controllers/templates/review_threads_controller_extension.rb
|
|
196
|
+
- lib/generators/reviewkit/controllers/templates/reviews_controller_extension.rb
|
|
197
|
+
- lib/generators/reviewkit/install/install_generator.rb
|
|
198
|
+
- lib/generators/reviewkit/install/templates/importmap.rb
|
|
199
|
+
- lib/generators/reviewkit/install/templates/reviewkit.rb
|
|
200
|
+
- lib/generators/reviewkit/models/models_generator.rb
|
|
201
|
+
- lib/generators/reviewkit/models/templates/comment_extension.rb
|
|
202
|
+
- lib/generators/reviewkit/models/templates/review_extension.rb
|
|
203
|
+
- lib/generators/reviewkit/models/templates/review_thread_extension.rb
|
|
204
|
+
- lib/generators/reviewkit/views/views_generator.rb
|
|
205
|
+
- lib/reviewkit.rb
|
|
206
|
+
- lib/reviewkit/configuration.rb
|
|
207
|
+
- lib/reviewkit/engine.rb
|
|
208
|
+
- lib/reviewkit/version.rb
|
|
209
|
+
- lib/tasks/reviewkit_tasks.rake
|
|
210
|
+
- sig/reviewkit.rbs
|
|
211
|
+
homepage: https://reviewkit.dhairyagabhawala.com
|
|
212
|
+
licenses:
|
|
213
|
+
- MIT
|
|
214
|
+
metadata:
|
|
215
|
+
homepage_uri: https://reviewkit.dhairyagabhawala.com
|
|
216
|
+
source_code_uri: https://github.com/dhairyagabha/reviewkit
|
|
217
|
+
bug_tracker_uri: https://github.com/dhairyagabha/reviewkit/issues
|
|
218
|
+
changelog_uri: https://github.com/dhairyagabha/reviewkit/blob/main/CHANGELOG.md
|
|
219
|
+
documentation_uri: https://reviewkit.dhairyagabhawala.com/docs/installation
|
|
220
|
+
rdoc_options: []
|
|
221
|
+
require_paths:
|
|
222
|
+
- lib
|
|
223
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
224
|
+
requirements:
|
|
225
|
+
- - ">="
|
|
226
|
+
- !ruby/object:Gem::Version
|
|
227
|
+
version: 3.2.0
|
|
228
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
|
+
requirements:
|
|
230
|
+
- - ">="
|
|
231
|
+
- !ruby/object:Gem::Version
|
|
232
|
+
version: '0'
|
|
233
|
+
requirements: []
|
|
234
|
+
rubygems_version: 4.0.6
|
|
235
|
+
specification_version: 4
|
|
236
|
+
summary: Git-style code review Rails engine with diff rendering and threaded line
|
|
237
|
+
comments.
|
|
238
|
+
test_files: []
|