Commit a0586dbc authored by Adam Pahlevi's avatar Adam Pahlevi

replace `find_with_namespace` with `find_by_full_path`

add complete changelog for !8949
parent d777e6f1
......@@ -45,7 +45,7 @@ class Admin::ProjectsController < Admin::ApplicationController
protected
def project
@project = Project.find_with_namespace(
@project = Project.find_by_full_path(
[params[:namespace_id], '/', params[:id]].join('')
)
@project || render_404
......
......@@ -24,7 +24,7 @@ class Admin::RunnerProjectsController < Admin::ApplicationController
private
def project
@project = Project.find_with_namespace(
@project = Project.find_by_full_path(
[params[:namespace_id], '/', params[:project_id]].join('')
)
@project || render_404
......
......@@ -24,7 +24,7 @@ class Projects::ApplicationController < ApplicationController
end
project_path = "#{namespace}/#{id}"
@project = Project.find_with_namespace(project_path)
@project = Project.find_by_full_path(project_path)
if can?(current_user, :read_project, @project) && !@project.pending_delete?
if @project.path_with_namespace != project_path
......
......@@ -79,7 +79,7 @@ class Projects::GitHttpClientController < Projects::ApplicationController
if project_id.blank?
@project = nil
else
@project = Project.find_with_namespace("#{params[:namespace_id]}/#{project_id}")
@project = Project.find_by_full_path("#{params[:namespace_id]}/#{project_id}")
end
end
......
......@@ -36,7 +36,7 @@ class Projects::UploadsController < Projects::ApplicationController
namespace = params[:namespace_id]
id = params[:project_id]
file_project = Project.find_with_namespace("#{namespace}/#{id}")
file_project = Project.find_by_full_path("#{namespace}/#{id}")
if file_project.nil?
@uploader = nil
......
......@@ -37,7 +37,7 @@ module ApplicationHelper
if project_id.is_a?(Project)
project_id
else
Project.find_with_namespace(project_id)
Project.find_by_full_path(project_id)
end
if project.avatar_url
......
......@@ -369,10 +369,6 @@ class Project < ActiveRecord::Base
def group_ids
joins(:namespace).where(namespaces: { type: 'Group' }).select(:namespace_id)
end
# Add alias for Routable method for compatibility with old code.
# In future all calls `find_with_namespace` should be replaced with `find_by_full_path`
alias_method :find_with_namespace, :find_by_full_path
end
def lfs_enabled?
......@@ -1345,6 +1341,6 @@ class Project < ActiveRecord::Base
def pending_delete_twin
return false unless path
Project.unscoped.where(pending_delete: true).find_with_namespace(path_with_namespace)
Project.unscoped.where(pending_delete: true).find_by_full_path(path_with_namespace)
end
end
......@@ -61,7 +61,7 @@ module Auth
end
def process_repository_access(type, name, actions)
requested_project = Project.find_with_namespace(name)
requested_project = Project.find_by_full_path(name)
return unless requested_project
actions = actions.select do |action|
......
---
title: replace `find_with_namespace` with `find_by_full_path`
merge_request: 8949
author: Adam Pahlevi
......@@ -26,7 +26,7 @@ Gitlab::Seeder.quiet do
end
end
project = Project.find_with_namespace('gitlab-org/gitlab-test')
project = Project.find_by_full_path('gitlab-org/gitlab-test')
params = {
source_branch: 'feature',
......
......@@ -45,7 +45,7 @@ module API
if id =~ /^\d+$/
Project.find_by(id: id)
else
Project.find_with_namespace(id)
Project.find_by_full_path(id)
end
end
......
......@@ -30,7 +30,7 @@ module API
def wiki?
@wiki ||= project_path.end_with?('.wiki') &&
!Project.find_with_namespace(project_path)
!Project.find_by_full_path(project_path)
end
def project
......@@ -41,7 +41,7 @@ module API
# the wiki repository as well.
project_path.chomp!('.wiki') if wiki?
Project.find_with_namespace(project_path)
Project.find_by_full_path(project_path)
end
end
......
......@@ -14,7 +14,7 @@ module Banzai
def project_from_ref(ref)
return context[:project] unless ref
Project.find_with_namespace(ref)
Project.find_by_full_path(ref)
end
end
end
......@@ -8,6 +8,6 @@ class ProjectUrlConstrainer
return false
end
Project.find_with_namespace(full_path).present?
Project.find_by_full_path(full_path).present?
end
end
......@@ -34,7 +34,7 @@ module Gitlab
end
def project
@project ||= Project.find_with_namespace(project_path)
@project ||= Project.find_by_full_path(project_path)
end
private
......
......@@ -30,11 +30,11 @@ module Gitlab
def retrieve_project_and_type
@type = :project
@project = Project.find_with_namespace(@repo_path)
@project = Project.find_by_full_path(@repo_path)
if @repo_path.end_with?('.wiki') && !@project
@type = :wiki
@project = Project.find_with_namespace(@repo_path.gsub(/\.wiki\z/, ''))
@project = Project.find_by_full_path(@repo_path.gsub(/\.wiki\z/, ''))
end
end
......
......@@ -58,7 +58,7 @@ namespace :gitlab do
sub(%r{^/*}, '').
chomp('.git').
chomp('.wiki')
next if Project.find_with_namespace(repo_with_namespace)
next if Project.find_by_full_path(repo_with_namespace)
new_path = path + move_suffix
puts path.inspect + ' -> ' + new_path.inspect
File.rename(path, new_path)
......
......@@ -29,7 +29,7 @@ namespace :gitlab do
next
end
project = Project.find_with_namespace(path)
project = Project.find_by_full_path(path)
if project
puts " * #{project.name} (#{repo_path}) exists"
......
......@@ -7,7 +7,7 @@ namespace :gitlab do
unless args.project.present?
abort "Please specify the project you want to drop PostReceive jobs for:\n rake gitlab:sidekiq:drop_post_receive[group/project]"
end
project_path = Project.find_with_namespace(args.project).repository.path_to_repo
project_path = Project.find_by_full_path(args.project).repository.path_to_repo
Sidekiq.redis do |redis|
unless redis.exists(QUEUE)
......
......@@ -24,7 +24,7 @@ describe Banzai::CrossProjectReference, lib: true do
it 'returns the referenced project' do
project2 = double('referenced project')
expect(Project).to receive(:find_with_namespace).
expect(Project).to receive(:find_by_full_path).
with('cross/reference').and_return(project2)
expect(project_from_ref('cross/reference')).to eq project2
......
......@@ -2,8 +2,8 @@ require 'spec_helper'
describe 'project routing' do
before do
allow(Project).to receive(:find_with_namespace).and_return(false)
allow(Project).to receive(:find_with_namespace).with('gitlab/gitlabhq').and_return(true)
allow(Project).to receive(:find_by_full_path).and_return(false)
allow(Project).to receive(:find_by_full_path).with('gitlab/gitlabhq').and_return(true)
end
# Shared examples for a resource inside a Project
......@@ -86,13 +86,13 @@ describe 'project routing' do
end
context 'name with dot' do
before { allow(Project).to receive(:find_with_namespace).with('gitlab/gitlabhq.keys').and_return(true) }
before { allow(Project).to receive(:find_by_full_path).with('gitlab/gitlabhq.keys').and_return(true) }
it { expect(get('/gitlab/gitlabhq.keys')).to route_to('projects#show', namespace_id: 'gitlab', id: 'gitlabhq.keys') }
end
context 'with nested group' do
before { allow(Project).to receive(:find_with_namespace).with('gitlab/subgroup/gitlabhq').and_return(true) }
before { allow(Project).to receive(:find_by_full_path).with('gitlab/subgroup/gitlabhq').and_return(true) }
it { expect(get('/gitlab/subgroup/gitlabhq')).to route_to('projects#show', namespace_id: 'gitlab/subgroup', id: 'gitlabhq') }
end
......
......@@ -74,7 +74,7 @@ describe PostReceive do
context "webhook" do
it "fetches the correct project" do
expect(Project).to receive(:find_with_namespace).with(project.path_with_namespace).and_return(project)
expect(Project).to receive(:find_by_full_path).with(project.path_with_namespace).and_return(project)
PostReceive.new.perform(pwd(project), key_id, base64_changes)
end
......@@ -89,7 +89,7 @@ describe PostReceive do
end
it "asks the project to trigger all hooks" do
allow(Project).to receive(:find_with_namespace).and_return(project)
allow(Project).to receive(:find_by_full_path).and_return(project)
expect(project).to receive(:execute_hooks).twice
expect(project).to receive(:execute_services).twice
......@@ -97,7 +97,7 @@ describe PostReceive do
end
it "enqueues a UpdateMergeRequestsWorker job" do
allow(Project).to receive(:find_with_namespace).and_return(project)
allow(Project).to receive(:find_by_full_path).and_return(project)
expect(UpdateMergeRequestsWorker).to receive(:perform_async).with(project.id, project.owner.id, any_args)
PostReceive.new.perform(pwd(project), key_id, base64_changes)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment