Increase release tag on github(wip)
This commit is contained in:
parent
e4501330c7
commit
72e8faa988
5
Gemfile
5
Gemfile
|
@ -1,4 +1,4 @@
|
|||
source 'https://rubygems.org'
|
||||
source 'http://rubygems.org'
|
||||
|
||||
gem 'rails'
|
||||
|
||||
|
@ -95,12 +95,11 @@ gem 'sitemap_generator'
|
|||
|
||||
gem 'codemirror-rails', '~> 4.5'
|
||||
|
||||
source 'https://rails-assets.org' do
|
||||
source 'http://rails-assets.org' do
|
||||
gem 'rails-assets-notifyjs'
|
||||
end
|
||||
|
||||
gem 'rack-utf8_sanitizer'
|
||||
gem 'web-console', '~> 2.0'
|
||||
|
||||
#github api
|
||||
gem 'github_api'
|
||||
|
|
10
Gemfile.lock
10
Gemfile.lock
|
@ -43,8 +43,8 @@ GIT
|
|||
posix-spawn (~> 0.3.6)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
remote: https://rails-assets.org/
|
||||
remote: http://rubygems.org/
|
||||
remote: http://rails-assets.org/
|
||||
specs:
|
||||
RedCloth (4.2.9)
|
||||
actionmailer (4.2.2)
|
||||
|
@ -649,11 +649,6 @@ GEM
|
|||
rack (>= 1.0.0)
|
||||
warden (1.2.3)
|
||||
rack (>= 1.0)
|
||||
web-console (2.2.1)
|
||||
activemodel (>= 4.0)
|
||||
binding_of_caller (>= 0.7.2)
|
||||
railties (>= 4.0)
|
||||
sprockets-rails (>= 2.0, < 4.0)
|
||||
webmock (1.21.0)
|
||||
addressable (>= 2.3.6)
|
||||
crack (>= 0.3.2)
|
||||
|
@ -775,7 +770,6 @@ DEPENDENCIES
|
|||
timecop
|
||||
uglifier
|
||||
underscore-rails
|
||||
web-console (~> 2.0)
|
||||
webmock
|
||||
whenever
|
||||
wikicloth
|
||||
|
|
|
@ -562,12 +562,11 @@ class BuildList < ActiveRecord::Base
|
|||
include_repos_hash["container_#{bl.id}"] = insert_token_to_path(path, bl.save_to_platform)
|
||||
end
|
||||
|
||||
git_project_address = project.git_project_address user
|
||||
# git_project_address.gsub!(/^http:\/\/(0\.0\.0\.0|localhost)\:[\d]+/, 'https://abf.rosalinux.ru') unless Rails.env.production?
|
||||
|
||||
git_project_address = project.git_project_address
|
||||
|
||||
cmd_params = {
|
||||
'GIT_PROJECT_ADDRESS' => git_project_address,
|
||||
'PACKAGE' => project.name,
|
||||
'GIT_REPO' => git_project_address,
|
||||
'COMMIT_HASH' => commit_hash,
|
||||
'USE_EXTRA_TESTS' => use_extra_tests?,
|
||||
'SAVE_BUILDROOT' => save_buildroot?,
|
||||
|
@ -584,7 +583,7 @@ class BuildList < ActiveRecord::Base
|
|||
sha1 = build_for_platform.cached_chroot(arch.name)
|
||||
cmd_params.merge!('CACHED_CHROOT_SHA1' => sha1) if sha1.present?
|
||||
end
|
||||
cmd_params = cmd_params.map{ |k, v| "#{k}='#{v}'" }.join(' ')
|
||||
#cmd_params = cmd_params.map{ |k, v| "#{k}='#{v}'" }.join(' ')
|
||||
|
||||
{
|
||||
id: id,
|
||||
|
|
|
@ -31,7 +31,6 @@ module CommitAndVersion
|
|||
end
|
||||
end
|
||||
self.commit_hash = res
|
||||
#self.commit_hash = project.repo.commits(project_version).try(:first).try(:id)
|
||||
elsif project_version.blank? && commit_hash.present?
|
||||
self.project_version = commit_hash
|
||||
end
|
||||
|
|
|
@ -34,13 +34,13 @@ module Git
|
|||
repo.tags.map(&:name) + repo.branches.map(&:name)
|
||||
end
|
||||
|
||||
def find_blob_and_raw_of_spec_file(project_version)
|
||||
blob = repo.tree(project_version).contents.find{ |n| n.is_a?(Grit::Blob) && n.name =~ /.spec$/ }
|
||||
return unless blob
|
||||
#def find_blob_and_raw_of_spec_file(project_version)
|
||||
# blob = repo.tree(project_version).contents.find{ |n| n.is_a?(Grit::Blob) && n.name =~ /.spec$/ }
|
||||
# return unless blob
|
||||
|
||||
raw = Grit::GitRuby::Repository.new(repo.path).get_raw_object_by_sha1(blob.id)
|
||||
[blob, raw]
|
||||
end
|
||||
# raw = Grit::GitRuby::Repository.new(repo.path).get_raw_object_by_sha1(blob.id)
|
||||
# [blob, raw]
|
||||
#end
|
||||
|
||||
def create_branch(new_ref, from_ref, user)
|
||||
return false if new_ref.blank? || from_ref.blank? || !(from_commit = repo.commit(from_ref))
|
||||
|
|
|
@ -6,12 +6,6 @@ module Project::DefaultBranch
|
|||
|
||||
include DefaultBranchable
|
||||
|
||||
included do
|
||||
validate :check_default_branch
|
||||
|
||||
after_update :set_new_git_head
|
||||
end
|
||||
|
||||
######################################
|
||||
# Instance methods #
|
||||
######################################
|
||||
|
@ -19,10 +13,8 @@ module Project::DefaultBranch
|
|||
# Public: Get default branch according to owner configs.
|
||||
#
|
||||
# Returns found String branch name.
|
||||
|
||||
def resolve_default_branch
|
||||
return default_branch unless owner.is_a?(Group) && owner.default_branch.present?
|
||||
return default_branch unless repo.branches.map(&:name).include?(owner.default_branch)
|
||||
return owner.default_branch unless default_branch.present?
|
||||
default_branch == 'master' ? owner.default_branch : default_branch
|
||||
end
|
||||
|
||||
|
@ -33,47 +25,7 @@ module Project::DefaultBranch
|
|||
#
|
||||
# Returns found String branch name.
|
||||
def project_version_for(save_to_platform, build_for_platform)
|
||||
if repo.commits("#{save_to_platform.default_branch}").try(:first).try(:id)
|
||||
save_to_platform.default_branch
|
||||
elsif repo.commits("#{build_for_platform.default_branch}").try(:first).try(:id)
|
||||
return save_to_platform.default_branch if save_to_platform.name != build_for_platform.name
|
||||
build_for_platform.default_branch
|
||||
else
|
||||
resolve_default_branch
|
||||
end
|
||||
end
|
||||
|
||||
# Public: Finds default head.
|
||||
#
|
||||
# treeish - The String treeish.
|
||||
#
|
||||
# Returns found String head.
|
||||
def default_head(treeish = nil) # maybe need change 'head'?
|
||||
# Attention!
|
||||
# repo.commit(nil) => <Grit::Commit "b6c0f81deb17590d22fc07ba0bbd4aa700256f61">
|
||||
# repo.commit(nil.to_s) => nil
|
||||
return treeish if treeish.present? && repo.commit(treeish).present?
|
||||
if repo.branches_and_tags.map(&:name).include?(treeish || resolve_default_branch)
|
||||
treeish || resolve_default_branch
|
||||
else
|
||||
repo.branches_and_tags[0].try(:name) || resolve_default_branch
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
# Private: Set git head.
|
||||
def set_new_git_head
|
||||
if default_branch_changed? && repo.branches.map(&:name).include?(default_branch)
|
||||
repo.git.send(:'symbolic-ref', {}, 'HEAD', "refs/heads/#{default_branch}")
|
||||
Project.project_aliases(self).update_all default_branch: default_branch
|
||||
end
|
||||
end
|
||||
|
||||
# Private: Validation for checking that the default branch is exist.
|
||||
def check_default_branch
|
||||
if self.repo.branches.count > 0 && self.repo.branches.map(&:name).exclude?(self.default_branch)
|
||||
errors.add :default_branch, I18n.t('activerecord.errors.project.default_branch')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require 'base64'
|
||||
|
||||
module Project::GithubApi
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
|
@ -13,10 +15,36 @@ module Project::GithubApi
|
|||
Github.repos.tags user: github_get_organization, repo: name rescue nil
|
||||
end
|
||||
|
||||
def github_branch(branch_name)
|
||||
Github.repos.branch user: github_get_organization, repo: name, branch: branch_name rescue nil
|
||||
end
|
||||
|
||||
def github_get_commit(hash)
|
||||
Github.repos.commits.list user: github_get_organization, repo: name, sha: hash rescue nil
|
||||
end
|
||||
|
||||
def github_tree(hash)
|
||||
Github.git_data.trees.get user: github_get_organization, repo: name, sha: hash rescue nil
|
||||
end
|
||||
|
||||
def find_blob_and_raw_of_spec_file(project_version)
|
||||
return unless branch = github_branch(project_version)
|
||||
commit_sha = branch.commit.sha
|
||||
return unless root_tree = github_tree(commit_sha)
|
||||
spec_file = root_tree.tree.select do |item|
|
||||
item.type=="blob" and item.path =~ /.spec$/
|
||||
end
|
||||
return if spec_file.empty?
|
||||
spec_file_sha = spec_file[0].sha
|
||||
blob_data = Github.git_data.blobs.get user: github_get_organization, repo: name, sha: spec_file_sha rescue return nil
|
||||
content = Base64.decode64(blob_data.content).gsub('\n', "\n")
|
||||
[spec_file_sha, content]
|
||||
end
|
||||
|
||||
def update_file(path, data, options = {})
|
||||
|
||||
end
|
||||
|
||||
def github_get_organization
|
||||
return github_organization if github_organization.presence
|
||||
APP_CONFIG['github_organization']
|
||||
|
|
|
@ -86,6 +86,7 @@ class MassBuild < ActiveRecord::Base
|
|||
return unless start
|
||||
# later with resque
|
||||
arches_list = arch_names ? Arch.where(name: arch_names.split(', ')) : Arch.all
|
||||
|
||||
projects_list.lines.each do |name|
|
||||
next if name.blank?
|
||||
name.chomp!; name.strip!
|
||||
|
|
|
@ -61,7 +61,6 @@ class Project < ActiveRecord::Base
|
|||
before_save -> { self.owner_uname = owner.uname if owner_uname.blank? || owner_id_changed? || owner_type_changed? }
|
||||
before_create :set_maintainer
|
||||
after_save :attach_to_personal_repository
|
||||
after_update -> { update_path_to_project(name_was) }, if: :name_changed?
|
||||
|
||||
attr_accessor :url, :srpms_list, :mass_import, :add_to_repository_id, :mass_create
|
||||
|
||||
|
@ -101,12 +100,6 @@ class Project < ActiveRecord::Base
|
|||
@platforms ||= repositories.map(&:platform).uniq
|
||||
end
|
||||
|
||||
def in_main_platform?
|
||||
platforms.map do |platform|
|
||||
platform.platform_type
|
||||
end.include?('main')
|
||||
end
|
||||
|
||||
def admins
|
||||
admins = self.collaborators.where("relations.role = 'admin'")
|
||||
grs = self.groups.where("relations.role = 'admin'")
|
||||
|
@ -125,12 +118,8 @@ class Project < ActiveRecord::Base
|
|||
owner == user
|
||||
end
|
||||
|
||||
def git_project_address auth_user
|
||||
github_data.git_url
|
||||
#opts = default_url_options
|
||||
#opts.merge!({user: auth_user.authentication_token, password: ''}) unless self.public?
|
||||
#Rails.application.routes.url_helpers.project_url(self.name_with_owner, opts) + '.git'
|
||||
#path #share by NFS
|
||||
def git_project_address
|
||||
"git://github.com/" + github_get_organization + "/" + name + ".git"
|
||||
end
|
||||
|
||||
def build_for(mass_build, repository_id, arch = Arch.find_by(name: 'i586'), priority = 0, increase_rt = false)
|
||||
|
@ -170,30 +159,6 @@ class Project < ActiveRecord::Base
|
|||
build_list.save
|
||||
end
|
||||
|
||||
def get_project_tag_sha1(tag, format)
|
||||
format_id = ProjectTag::FORMATS["#{tag_file_format(format)}"]
|
||||
project_tag = project_tags.where(tag_name: tag.name, format_id: format_id).first
|
||||
|
||||
return project_tag.sha1 if project_tag && project_tag.commit_id == tag.commit.id && FileStoreService::File.new(sha1: project_tag.sha1).exist?
|
||||
|
||||
archive = archive_by_treeish_and_format tag.name, format
|
||||
sha1 = FileStoreService::File.new(data: archive).save
|
||||
return nil if sha1.blank?
|
||||
|
||||
if project_tag
|
||||
project_tag.destroy_files_from_file_store(project_tag.sha1)
|
||||
project_tag.update_attributes(sha1: sha1)
|
||||
else
|
||||
project_tags.create(
|
||||
tag_name: tag.name,
|
||||
format_id: format_id,
|
||||
commit_id: tag.commit.id,
|
||||
sha1: sha1
|
||||
)
|
||||
end
|
||||
return sha1
|
||||
end
|
||||
|
||||
def archive_by_treeish_and_format(treeish, format)
|
||||
@archive ||= create_archive treeish, format
|
||||
end
|
||||
|
@ -319,25 +284,4 @@ class Project < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def update_path_to_project(old_name)
|
||||
new_name, new_path = name, path
|
||||
self.name = old_name
|
||||
old_path = path
|
||||
self.name = new_name
|
||||
FileUtils.mv old_path, new_path, force: true if Dir.exists?(old_path)
|
||||
|
||||
pull_requests_old_path = File.join(APP_CONFIG['git_path'], 'pull_requests', owner.uname, old_name)
|
||||
if Dir.exists?(pull_requests_old_path)
|
||||
FileUtils.mv pull_requests_old_path,
|
||||
File.join(APP_CONFIG['git_path'], 'pull_requests', owner.uname, new_name),
|
||||
force: true
|
||||
end
|
||||
|
||||
PullRequest.where(from_project_id: id).update_all(from_project_name: new_name)
|
||||
|
||||
PullRequest.where(from_project_id: id).each{ |p| p.update_relations(old_name) }
|
||||
pull_requests.where('from_project_id != to_project_id').each(&:update_relations)
|
||||
end
|
||||
later :update_path_to_project, queue: :middle
|
||||
|
||||
end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- content_for :submenu do
|
||||
- act = action_name.to_sym; contr = controller_name.to_sym; treeish = @project.default_head(params[:treeish])
|
||||
- act = action_name.to_sym; contr = controller_name.to_sym;
|
||||
- github_success = @project.github_data != nil
|
||||
- github_base_url = @project.github_data.html_url unless not github_success
|
||||
nav.navbar.navbar-default role='navigation'
|
||||
|
|
|
@ -67,6 +67,5 @@ module Rosa
|
|||
config.log_redis = false
|
||||
|
||||
config.angular_templates.ignore_prefix = 'angularjs/templates/'
|
||||
config.web_console.whitelisted_ips = '127.0.0.0/24'
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue