Skip to content
Snippets Groups Projects
Commit 8bf8c70c authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Import repo feature

parent ab0cfc00
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -36,6 +36,10 @@ $ ->
# Click a .one_click_select field, select the contents
$(".one_click_select").on 'click', -> $(@).select()
 
# Click a .appear-link, appear-data fadeout
$(".appear-link").on 'click', ->
$('.appear-data').fadeIn()
# Initialize chosen selects
$('select.chosen').chosen()
 
Loading
Loading
Loading
Loading
@@ -564,3 +564,7 @@ img.emoji {
vertical-align: middle;
width: 20px;
}
.appear-data {
display: none;
}
Loading
Loading
@@ -34,13 +34,23 @@ module Projects
 
@project.creator = current_user
 
# Import project from cloneable resource
if @project.valid? && @project.import_url.present?
shell = Gitlab::Shell.new
if shell.import_repository(@project.path_with_namespace, @project.import_url)
true
else
@project.errors.add(:import_url, 'cannot clone repo')
end
end
if @project.save
@project.users_projects.create(project_access: UsersProject::MASTER, user: current_user)
end
 
@project
rescue => ex
@project.errors.add(:base, "Can't save project. Please try again later")
#rescue => ex
#@project.errors.add(:base, "Can't save project. Please try again later")
@project
end
 
Loading
Loading
Loading
Loading
@@ -25,12 +25,13 @@ class Project < ActiveRecord::Base
 
class TransferError < StandardError; end
 
attr_accessible :name, :path, :description, :default_branch, :issues_enabled,
:wall_enabled, :merge_requests_enabled, :wiki_enabled, :public, as: [:default, :admin]
attr_accessible :name, :path, :description, :default_branch,
:issues_enabled, :wall_enabled, :merge_requests_enabled,
:wiki_enabled, :public, :import_url, as: [:default, :admin]
 
attr_accessible :namespace_id, :creator_id, as: :admin
 
attr_accessor :error_code
attr_accessor :import_url
 
# Relations
belongs_to :creator, foreign_key: "creator_id", class_name: "User"
Loading
Loading
@@ -75,6 +76,8 @@ class Project < ActiveRecord::Base
validates_uniqueness_of :name, scope: :namespace_id
validates_uniqueness_of :path, scope: :namespace_id
 
validates :import_url, format: { with: URI::regexp(%w(http https)), message: "should be a valid url" }
validate :check_limit, :repo_name
 
# Scopes
Loading
Loading
Loading
Loading
@@ -16,6 +16,20 @@
.input
= f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user), {}, {class: 'chosen'}
 
.clearfix
.input
= link_to "#", class: 'appear-link' do
%i.icon-upload-alt
%span Import existing repository?
.clearfix.appear-data
= f.label :import_url do
%span Import existing repo
.input
= f.text_field :import_url, class: 'xlarge'
.light
URL should be clonable
%p.padded
New projects are private by default. You choose who can see the project and commit to repository.
%hr
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment