Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
gem 'deface', '> 1.0.0'
gem 'acts_as_list'
gem 'deface', '>= 1.5.3'
gem 'hashie'
gem 'protected_attributes_continued'

group :development do
gem 'diffy'
end

group :test do
gem 'factory_girl_rails'
gem 'factory_bot_rails'
end
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ When accessing a remote or local repository, UndevGit clones it and then works w

## Compatibility

This plugin version is compatible only with Redmine 3.3.1 and later.
This plugin version is compatible with Redmine 6.x

## Installation

Expand Down
21 changes: 16 additions & 5 deletions app/controllers/global_hooks_controller.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class GlobalHooksController < ApplicationController

before_filter :authorize_global
before_action :authorize_global

layout 'admin'

Expand Down Expand Up @@ -35,10 +35,21 @@ def edit
def update
@hook = GlobalHook.find(params[:id])
if @hook.update_attributes(global_hook_params)
flash[:notice] = l(:notice_successful_update)
redirect_to action: 'index'
respond_to do |format|
format.html do
flash[:notice] = l(:notice_successful_update)
redirect_to action: 'index'
end
format.js {head :ok}
end
else
render action: 'edit'
respond_to do |format|
format.html do
edit
render :action => 'edit'
end
format.js {head :unprocessable_content}
end
end
end

Expand All @@ -55,6 +66,6 @@ def destroy
def global_hook_params
params.required(:global_hook).
permit(:branches, :keywords, :status_id, :done_ratio, :assignee_type,
:assigned_to_id, :move_to)
:assigned_to_id, :position)
end
end
27 changes: 19 additions & 8 deletions app/controllers/project_hooks_controller.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class ProjectHooksController < ApplicationController

before_filter :find_project_by_project_id
before_filter :authorize
before_action :find_project_by_project_id
before_action :authorize

helper :sort
include SortHelper
Expand All @@ -14,7 +14,7 @@ def new

def create
@hook = @project.hooks.build(project_hook_params)
cfv = params[:project_hook][:custom_field_values]
cfv = params[:project_hook][:custom_field_values]
if cfv
@hook.reset_custom_values!
@hook.custom_field_values = cfv
Expand All @@ -30,10 +30,21 @@ def create
def update
@hook = @project.hooks.find(params[:id])
if @hook.update_attributes(project_hook_params_with_cfv)
flash[:notice] = l(:notice_successful_update)
redirect_to_settings_in_projects
respond_to do |format|
format.html do
flash[:notice] = l(:notice_successful_update)
redirect_to_settings_in_projects
end
format.js { head :ok }
end
else
render action: 'edit'
respond_to do |format|
format.html do
edit
render :action => 'edit'
end
format.js { head :unprocessable_content }
end
end
end

Expand All @@ -58,12 +69,12 @@ def redirect_to_settings_in_projects
def project_hook_params
params.required(:project_hook).
permit(:branches, :keywords, :status_id, :done_ratio, :assignee_type,
:assigned_to_id, :move_to, :repository_id)
:assigned_to_id, :position, :repository_id)
end

def project_hook_params_with_cfv
params.required(:project_hook).
permit(:branches, :keywords, :status_id, :done_ratio, :assignee_type,
:assigned_to_id, :custom_field_values, :move_to, :repository_id)
:assigned_to_id, :custom_field_values, :position, :repository_id)
end
end
4 changes: 2 additions & 2 deletions app/controllers/remote_committers_controller.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class RemoteCommittersController < ApplicationController
layout 'admin'

before_filter :require_admin
before_action :require_admin

helper_method :remote_repo_site
helper_method :committers
Expand All @@ -11,7 +11,7 @@ def index
end

def create
if params[:committers].is_a?(Hash)
if params[:committers].present?
params[:committers].values.each do |email, user_id|
remote_repo_site.update_user_mapping(email, user_id)
end
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/remote_repo_sites_controller.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class RemoteRepoSitesController < ApplicationController
layout 'admin'

before_filter :require_admin
before_action :require_admin

helper_method :remote_repo_sites

Expand Down
2 changes: 1 addition & 1 deletion app/controllers/remote_repos_controller.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class RemoteReposController < ApplicationController
layout 'admin'

before_filter :require_admin
before_action :require_admin

def refetch
Workers::RemoteRepoFetcher.defer(remote_repo.id, :refetch)
Expand Down
2 changes: 2 additions & 0 deletions app/controllers/undev_git_hooks_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
class UndevGitHooksController < ActionController::Base

skip_before_action :verify_authenticity_token, only: [:gitlab_push, :github_push, :bitbucket_push]

def gitlab_push
RedmineUndevGit::Services::Gitlab.handle_request(request)
head :ok
Expand Down
6 changes: 3 additions & 3 deletions app/helpers/undev_git_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def links_to_remote_branches(revision)
def undev_git_field_tags(form, repository)
[
undev_git_url_tag(form, repository),
undev_git_extra_report_last_commit_tag(form, repository),
undev_git_report_last_commit(form, repository),
undev_git_use_init_hooks_tag(form, repository),
undev_git_use_init_refs_tag(form, repository),
undev_git_fetch_by_web_hook_tag(form, repository)
Expand All @@ -92,9 +92,9 @@ def undev_git_url_tag(form, repository)
disabled: repository.persisted?))
end

def undev_git_extra_report_last_commit_tag(form, repository)
def undev_git_report_last_commit(form, repository)
content_tag('p', form.check_box(
:extra_report_last_commit,
:report_last_commit,
label: l(:label_git_report_last_commit)))
end

Expand Down
2 changes: 1 addition & 1 deletion app/models/fetch_event.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class FetchEvent < ActiveRecord::Base
class FetchEvent < ApplicationRecord
belongs_to :repository

after_commit :cleanup_fetch_events, on: :create
Expand Down
2 changes: 1 addition & 1 deletion app/models/global_hook.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class GlobalHook < HookBase
acts_as_list
acts_as_list scope: "(type = '#{:GlobalHook}')"

# Users/groups issues can be assigned to
def assignable_users
Expand Down
4 changes: 2 additions & 2 deletions app/models/hook_base.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class HookBase < ActiveRecord::Base
class HookBase < ApplicationRecord
self.table_name = 'hooks'

NOBODY = 'nobody'
Expand All @@ -10,7 +10,7 @@ class HookBase < ActiveRecord::Base

acts_as_customizable

serialize :custom_field_values, Hash
serialize :custom_field_values, type: Hash

safe_attributes %w{branches keywords status_id done_ratio assigned_to_id custom_field_values}

Expand Down
2 changes: 1 addition & 1 deletion app/models/project_hook.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class ProjectHook < HookBase

acts_as_list scope: '(project_id = #{project_id} AND repository_id #{repository_id ? "= #{repository_id}" : "IS NULL"})'
acts_as_list scope: '(type = "#{:ProjectHook}" AND project_id = #{project_id} AND repository_id #{repository_id ? "= #{repository_id}" : "IS NULL"})'

safe_attributes %w{project_id repository_id}

Expand Down
4 changes: 2 additions & 2 deletions app/models/remote_repo.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class RemoteRepo < ActiveRecord::Base
class RemoteRepo < ApplicationRecord
belongs_to :site, class_name: 'RemoteRepoSite', foreign_key: 'remote_repo_site_id'
has_many :revisions,
class_name: 'RemoteRepoRevision',
Expand All @@ -10,7 +10,7 @@ class RemoteRepo < ActiveRecord::Base

validates :site, presence: true

serialize :tail_revisions, Array
serialize :tail_revisions, type: Array

scope :related_to_project, ->(project) {
joins(revisions: :related_issues).where("#{Issue.table_name}.project_id = ?", project.id).uniq
Expand Down
2 changes: 1 addition & 1 deletion app/models/remote_repo_hook.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class RemoteRepoHook < ActiveRecord::Base
class RemoteRepoHook < ApplicationRecord
belongs_to :revision, class_name: 'RemoteRepoRevision', foreign_key: 'remote_repo_revision_id'
belongs_to :hook, class_name: 'HookBase'
belongs_to :issue
Expand Down
2 changes: 1 addition & 1 deletion app/models/remote_repo_ref.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class RemoteRepoRef < ActiveRecord::Base
class RemoteRepoRef < ApplicationRecord
belongs_to :repo, class_name: 'RemoteRepo', foreign_key: 'remote_repo_id'
has_many :applied_hooks, class_name: 'RemoteRepoHook', dependent: :nullify

Expand Down
2 changes: 1 addition & 1 deletion app/models/remote_repo_refs_rev.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class RemoteRepoRefsRev < ActiveRecord::Base
class RemoteRepoRefsRev < ApplicationRecord
belongs_to :revision, class_name: 'RemoteRepoRevision', foreign_key: 'remote_repo_revision_id'
belongs_to :ref, class_name: 'RemoteRepoRef', foreign_key: 'remote_repo_ref_id'
end
2 changes: 1 addition & 1 deletion app/models/remote_repo_revision.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class RemoteRepoRevision < ActiveRecord::Base
class RemoteRepoRevision < ApplicationRecord
belongs_to :repo, class_name: 'RemoteRepo', foreign_key: 'remote_repo_id'
belongs_to :author, class_name: 'User'
belongs_to :committer, class_name: 'User'
Expand Down
4 changes: 2 additions & 2 deletions app/models/remote_repo_site.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# remote repository storage service like github.com, gitlab.com, bitbucket.com, etc

class RemoteRepoSite < ActiveRecord::Base
class RemoteRepoSite < ApplicationRecord

has_many :repos,
class_name: 'RemoteRepo',
Expand Down Expand Up @@ -34,7 +34,7 @@ def uri
end

def all_committers_with_mappings
unmapped = revisions.where(committer_id: nil).uniq.pluck(:committer_email)
unmapped = revisions.where(committer_id: nil).pluck(:committer_email).uniq
mapped = user_mappings.to_a
unmapped = unmapped - mapped.map(&:email)
unmapped.map! { |e| [e, nil] }
Expand Down
2 changes: 2 additions & 0 deletions app/models/remote_repo_site/bitbucket.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class RemoteRepoSite::Bitbucket < RemoteRepoSite
end
2 changes: 1 addition & 1 deletion app/models/remote_repo_site_user.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class RemoteRepoSiteUser < ActiveRecord::Base
class RemoteRepoSiteUser < ApplicationRecord

belongs_to :site, class_name: 'RemoteRepoSite', foreign_key: 'remote_repo_site_id'
belongs_to :user
Expand Down
8 changes: 4 additions & 4 deletions app/models/repository/remote_git.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require_dependency 'redmine/scm/adapters/undev_git_adapter'
require_dependency 'redmine_undev_git/includes/repo_store'
require_dependency 'redmine_undev_git/includes/repo_fetch'
require_dependency 'redmine_undev_git/includes/repo_validate'
#require_dependency 'redmine/scm/adapters/undev_git_adapter'
#require_dependency 'redmine_undev_git/includes/repo_store'
#require_dependency 'redmine_undev_git/includes/repo_fetch'
#require_dependency 'redmine_undev_git/includes/repo_validate'

class Repository::RemoteGit < Repository

Expand Down
26 changes: 24 additions & 2 deletions app/models/repository/undev_git.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require_dependency 'redmine/scm/adapters/undev_git_adapter'
#require_dependency 'redmine/scm/adapters/undev_git_adapter'

class Repository::UndevGit < Repository

Expand All @@ -7,7 +7,7 @@ class Repository::UndevGit < Repository
include RedmineUndevGit::Includes::RepoFetch
include RedmineUndevGit::Includes::RepoHooks

safe_attributes 'use_init_hooks', 'use_init_refs', 'fetch_by_web_hook'
safe_attributes 'use_init_hooks', 'use_init_refs', 'fetch_by_web_hook', 'report_last_commit'

has_many :hooks,
class_name: 'ProjectHook',
Expand All @@ -16,6 +16,28 @@ class Repository::UndevGit < Repository

validates :project, presence: true

def self.scm_adapter_class
Redmine::Scm::Adapters::UndevGitAdapter
end

def self.scm_name
'UndevGit'
end

def report_last_commit
return false if extra_info.nil?

v = extra_info["extra_report_last_commit"]
return false if v.nil?

v.to_s != '0'
end

def report_last_commit=(arg)
puts "report_last_commit: #{arg}"
merge_extra_info "extra_report_last_commit" => arg
end

def supports_directory_revisions?
true
end
Expand Down
9 changes: 0 additions & 9 deletions app/overrides/issues/_changesets.rb

This file was deleted.

20 changes: 0 additions & 20 deletions app/overrides/issues/show.rb

This file was deleted.

16 changes: 16 additions & 0 deletions app/overrides/issues/tabs/_changesets.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module Issues
module Tabs
module Changesets
Deface::Override.new(
virtual_path: 'issues/tabs/_changesets',
name: 'branches_for_assoc',
:original => '8517551ea080196491724e180de939f340061640',
insert_after: 'erb:contains("link_to_revision")',
text: <<INCLUDES
<%= changeset_branches(changeset, RedmineUndevGit.max_branches_in_assoc) %>
<%= link_to_repository(changeset.repository) %>
INCLUDES
)
end
end
end
Loading