Index: head/www/gitlab/Makefile =================================================================== --- head/www/gitlab/Makefile (revision 432935) +++ head/www/gitlab/Makefile (revision 432936) @@ -1,196 +1,196 @@ # Created by: Torsten Zuehlsdorff # $FreeBSD$ PORTNAME= gitlab PORTVERSION= 8.11.11 DISTVERSIONPREFIX= v -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= www devel MAINTAINER= tz@FreeBSD.org COMMENT= Web GUI for managing git repositories LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= gem:devel/ruby-gems # the rubygems of RUN_DEPENDS matches the order of the Gemfile # which makes maintaining this long list much easier! RUN_DEPENDS= git>=2.7.4:devel/git \ gitlab-shell>=3.4.0:devel/gitlab-shell\ gitlab-workhorse>=0.7.11:www/gitlab-workhorse \ redis>=2.8.23:databases/redis \ rubygem-rails4>=4.2.7.1:www/rubygem-rails4 \ rubygem-rails-deprecated_sanitizer>=1.0.3:devel/rubygem-rails-deprecated_sanitizer \ rubygem-responders>=2.0:www/rubygem-responders \ rubygem-sprockets3>=3.6:devel/rubygem-sprockets3 \ rubygem-sprockets-es6>=0:devel/rubygem-sprockets-es6 \ rubygem-default_value_for>=3.0.1:devel/rubygem-default_value_for \ rubygem-pg>=0.18.2:databases/rubygem-pg \ rubygem-devise>=4.0:devel/rubygem-devise \ rubygem-doorkeeper>=4.2:security/rubygem-doorkeeper \ rubygem-omniauth>=1.3.1:security/rubygem-omniauth \ rubygem-omniauth-auth0>=1.4.1:net/rubygem-omniauth-auth0 \ rubygem-omniauth-azure-oauth2>=0.0.6:net/rubygem-omniauth-azure-oauth2 \ rubygem-omniauth-bitbucket>=0.0.2:security/rubygem-omniauth-bitbucket \ rubygem-omniauth-cas3>=1.1.2:security/rubygem-omniauth-cas3 \ rubygem-omniauth-facebook>=3.0.0:net/rubygem-omniauth-facebook \ rubygem-omniauth-github>=1.1.1:net/rubygem-omniauth-github \ rubygem-omniauth-gitlab>=1.0.0:security/rubygem-omniauth-gitlab \ rubygem-omniauth-google-oauth2>=0.4.1:net/rubygem-omniauth-google-oauth2 \ rubygem-omniauth-saml>=1.6.0:security/rubygem-omniauth-saml \ rubygem-omniauth-shibboleth>=1.2.0:security/rubygem-omniauth-shibboleth \ rubygem-omniauth-twitter>=1.2.0:net/rubygem-omniauth-twitter \ rubygem-omniauth_crowd>=2.2.0:devel/rubygem-omniauth_crowd \ rubygem-rack-oauth2>=1.2.1:security/rubygem-rack-oauth2 \ rubygem-jwt>=1.0:www/rubygem-jwt \ rubygem-recaptcha>=3.0:devel/rubygem-recaptcha \ rubygem-akismet>=2.0:devel/rubygem-akismet \ rubygem-devise-two-factor>=3.0.0:security/rubygem-devise-two-factor \ rubygem-rqrcode-rails3>=0.1.7:www/rubygem-rqrcode-rails3 \ rubygem-attr_encrypted>=3.0.0:security/rubygem-attr_encrypted \ rubygem-u2f>=0.2.1:net/rubygem-u2f \ rubygem-browser>=2.2:www/rubygem-browser \ rubygem-gitlab_git>=10.5:devel/rubygem-gitlab_git \ rubygem-gitlab_omniauth-ldap>=1.2.1:net/rubygem-gitlab_omniauth-ldap \ rubygem-gollum-lib>=4.2.0:www/rubygem-gollum-lib \ rubygem-gollum-rugged_adapter>=0.4.2:www/rubygem-gollum-rugged_adapter \ rubygem-github-linguist>=4.7.0:textproc/rubygem-github-linguist \ rubygem-grape>=0.15.0:devel/rubygem-grape \ rubygem-grape-entity>=0.4.2:devel/rubygem-grape-entity \ rubygem-rack-cors>=0.4.0:www/rubygem-rack-cors \ rubygem-kaminari-rails4>=0.17.0:www/rubygem-kaminari-rails4 \ rubygem-hamlit>=2.6.1:www/rubygem-hamlit \ rubygem-carrierwave>=0.10.0:www/rubygem-carrierwave \ rubygem-dropzonejs-rails>=0.7.1:www/rubygem-dropzonejs-rails \ rubygem-fog-aws>=0.9:net/rubygem-fog-aws \ rubygem-fog-azure>=0.0:net/rubygem-fog-azure \ rubygem-fog-core>=1.40:devel/rubygem-fog-core \ rubygem-fog-local>=0.3:net/rubygem-fog-local \ rubygem-fog-google>=0.3:net/rubygem-fog-google \ rubygem-fog-openstack>=0.1:net/rubygem-fog-openstack \ rubygem-fog-rackspace>=0.1.1:net/rubygem-fog-rackspace \ rubygem-unf>=0.1.4:textproc/rubygem-unf \ rubygem-six>=0.2.0:security/rubygem-six \ rubygem-seed-fu>=2.3.5:databases/rubygem-seed-fu \ rubygem-html-pipeline1>=1.11.0:textproc/rubygem-html-pipeline1 \ rubygem-task_list>=1.0.2:www/rubygem-task_list \ rubygem-github-markup>=1.4:textproc/rubygem-github-markup \ rubygem-redcarpet>=3.3.3:textproc/rubygem-redcarpet \ rubygem-redcloth>=4.3.2:www/rubygem-redcloth \ rubygem-rdoc>=3.6:devel/rubygem-rdoc \ rubygem-org-ruby>=0.9.12:textproc/rubygem-org-ruby \ rubygem-creole>=0.5.0:textproc/rubygem-creole \ rubygem-wikicloth>=0.8.1:textproc/rubygem-wikicloth \ rubygem-asciidoctor>=1.5.2:textproc/rubygem-asciidoctor \ rubygem-rouge>=2.0:textproc/rubygem-rouge \ rubygem-nokogiri>=1.6.7.2:textproc/rubygem-nokogiri \ rubygem-diffy>=3.0.3:textproc/rubygem-diffy \ rubygem-unicorn>=4.9.0:www/rubygem-unicorn \ rubygem-unicorn-worker-killer>=0.4.2:www/rubygem-unicorn-worker-killer \ rubygem-state_machines-activerecord>=0.4.0:databases/rubygem-state_machines-activerecord \ rubygem-after_commit_queue>=1.3.0:databases/rubygem-after_commit_queue \ rubygem-acts-as-taggable-on3>=3.4.0:www/rubygem-acts-as-taggable-on3 \ rubygem-sinatra>=1.4.4:www/rubygem-sinatra \ rubygem-sidekiq>=4.0:devel/rubygem-sidekiq \ rubygem-sidekiq-cron>=0.4.0:devel/rubygem-sidekiq-cron \ rubygem-redis-namespace>=1.5.2:databases/rubygem-redis-namespace \ rubygem-httparty>=0.13.3:www/rubygem-httparty \ rubygem-rainbow>=2.1.0:devel/rubygem-rainbow \ rubygem-settingslogic>=2.0.9:devel/rubygem-settingslogic \ rubygem-version_sorter>=2.1.0:textproc/rubygem-version_sorter \ rubygem-redis-rails>=4.0.0:www/rubygem-redis-rails \ rubygem-redis>=3.2:databases/rubygem-redis \ rubygem-connection_pool>=2.0:net/rubygem-connection_pool \ rubygem-hipchat>=1.5.0:net-im/rubygem-hipchat \ rubygem-gitlab-flowdock-git-hook>=1.0.1:www/rubygem-gitlab-flowdock-git-hook \ rubygem-gemnasium-gitlab-service>=0.2:devel/rubygem-gemnasium-gitlab-service \ rubygem-slack-notifier>=1.2.0:devel/rubygem-slack-notifier \ rubygem-asana>=0.4.0:www/rubygem-asana \ rubygem-ruby-fogbugz>=0.2.1:devel/rubygem-ruby-fogbugz \ rubygem-d3_rails-rails4>=3.5.0:www/rubygem-d3_rails-rails4 \ rubygem-underscore-rails>=1.8.0:www/rubygem-underscore-rails \ rubygem-sanitize>=2.0:textproc/rubygem-sanitize \ rubygem-babosa>=1.0.2:textproc/rubygem-babosa \ rubygem-loofah>=2.0.3:textproc/rubygem-loofah \ rubygem-licensee>=8.0:devel/rubygem-licensee \ rubygem-rack-attack>=4.3.1:www/rubygem-rack-attack \ rubygem-ace-rails-ap>=4.1.0:www/rubygem-ace-rails-ap \ rubygem-mousetrap-rails>=1.4.6:www/rubygem-mousetrap-rails \ rubygem-charlock_holmes>=0.7.3:textproc/rubygem-charlock_holmes \ rubygem-chronic>=0.10.2:devel/rubygem-chronic \ rubygem-chronic_duration>=0.10.6:devel/rubygem-chronic_duration \ rubygem-sass-rails5>=5.0.0:textproc/rubygem-sass-rails5 \ rubygem-coffee-rails4>=4.1.0:devel/rubygem-coffee-rails4 \ rubygem-uglifier>=2.7.2:www/rubygem-uglifier \ rubygem-turbolinks-classic>=2.5.0:www/rubygem-turbolinks-classic \ rubygem-jquery-turbolinks>=2.1.0:www/rubygem-jquery-turbolinks \ rubygem-addressable>=2.3.8:www/rubygem-addressable \ rubygem-bootstrap-sass>=3.3.0:www/rubygem-bootstrap-sass \ rubygem-font-awesome-rails-rails4>=4.6.1:devel/rubygem-font-awesome-rails-rails4 \ rubygem-gemojione>=3:graphics/rubygem-gemojione \ rubygem-gon>=6.1.0:www/rubygem-gon \ rubygem-jquery-atwho-rails-rails4>=1.3.2:www/rubygem-jquery-atwho-rails-rails4 \ rubygem-jquery-rails4>=4.1.0:www/rubygem-jquery-rails4 \ - rubygem-jquery-ui-rails-rails4>=5.0.0:www/rubygem-jquery-ui-rails-rails4 \ + rubygem-jquery-ui-rails5-rails4>=5.0.0:www/rubygem-jquery-ui-rails5-rails4 \ rubygem-request_store>=1.3.0:devel/rubygem-request_store \ rubygem-select2-rails>=3.5.9:www/rubygem-select2-rails \ rubygem-virtus>=1.0.1:devel/rubygem-virtus \ rubygem-net-ssh>=3.0.1:security/rubygem-net-ssh \ rubygem-base32>=0.3.2:converters/rubygem-base32 \ rubygem-sentry-raven>=2.0.0:devel/rubygem-sentry-raven \ rubygem-premailer-rails>=1.9.0:mail/rubygem-premailer-rails \ rubygem-gitlab_meta>=7.0:devel/rubygem-gitlab_meta \ rubygem-newrelic-grape>=0:devel/rubygem-newrelic-grape \ rubygem-newrelic_rpm>=3.16:devel/rubygem-newrelic_rpm \ rubygem-octokit>=4.3.0:net/rubygem-octokit \ rubygem-mail_room>=0.8:mail/rubygem-mail_room \ rubygem-email_reply_parser>=0.5.8:mail/rubygem-email_reply_parser \ rubygem-ruby-prof>=0.15.9:devel/rubygem-ruby-prof \ rubygem-activerecord-deprecated_finders>=1.0.3:devel/rubygem-activerecord-deprecated_finders \ rubygem-activerecord-session_store>=1.0.0:databases/rubygem-activerecord-session_store \ rubygem-nested_form>=0.3.2:www/rubygem-nested_form \ rubygem-oauth2>=1.2.0:net/rubygem-oauth2 \ rubygem-paranoia>=2.0:databases/rubygem-paranoia \ rubygem-health_check>=2.1.0:devel/rubygem-health_check \ rubygem-vmstat>=2.2:sysutils/rubygem-vmstat \ rubygem-sys-filesystem>=1.1.6:sysutils/rubygem-sys-filesystem \ rubygem-rinku>=1.7.3:www/rubygem-rinku USES= pgsql USE_RUBY= yes USE_RC_SUBR= gitlab USE_GITHUB= yes GH_ACCOUNT= gitlabhq GH_PROJECT= gitlabhq USERS= git GROUPS= git NO_ARCH= yes NO_BUILD= yes do-install: ${FIND} ${WRKSRC} -name '*.orig' -delete ${FIND} ${WRKSRC} -name '*.bak' -delete ${FIND} ${WRKSRC} -name '*.gitkeep' -delete ${FIND} ${WRKSRC} -name '*.gitignore' -delete ${FIND} ${WRKSRC} -name "Gemfile.lock" -delete ${MV} ${WRKSRC}/config/gitlab.yml.example ${WRKSRC}/config/gitlab.yml.sample ${MV} ${WRKSRC}/config/unicorn.rb.example ${WRKSRC}/config/unicorn.rb.sample ${MV} ${WRKSRC}/config/resque.yml.example ${WRKSRC}/config/resque.yml.sample ${MV} ${WRKSRC}/config/secrets.yml.example ${WRKSRC}/config/secrets.yml.sample ${MV} ${WRKSRC}/config/initializers/rack_attack.rb.example ${WRKSRC}/config/initializers/rack_attack.rb.sample ${MV} ${WRKSRC}/lib/support/nginx/gitlab ${WRKSRC}/lib/support/nginx/gitlab.sample ${MV} ${WRKSRC}/lib/support/nginx/gitlab-ssl ${WRKSRC}/lib/support/nginx/gitlab-ssl.sample ${CP} ${WRKSRC}/config/database.yml.postgresql ${WRKSRC}/config/database.yml.sample ${MKDIR} ${STAGEDIR}/home/git/repositories ${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/public/assets ${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/tmp/cache ${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/tmp/sessions (cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/www/${PORTNAME}) .include Index: head/www/gitlab/files/patch-6130 =================================================================== --- head/www/gitlab/files/patch-6130 (nonexistent) +++ head/www/gitlab/files/patch-6130 (revision 432936) @@ -0,0 +1,189 @@ +--- app/models/repository.rb.orig 2017-01-31 15:55:26 UTC ++++ app/models/repository.rb +@@ -176,7 +176,7 @@ class Repository + before_remove_branch + + branch = find_branch(branch_name) +- oldrev = branch.try(:target).try(:id) ++ oldrev = branch.try(:dereferenced_target).try(:id) + newrev = Gitlab::Git::BLANK_SHA + ref = Gitlab::Git::BRANCH_REF_PREFIX + branch_name + +@@ -292,10 +292,10 @@ class Repository + # Rugged seems to throw a `ReferenceError` when given branch_names rather + # than SHA-1 hashes + number_commits_behind = raw_repository. +- count_commits_between(branch.target.sha, root_ref_hash) ++ count_commits_between(branch.dereferenced_target.sha, root_ref_hash) + + number_commits_ahead = raw_repository. +- count_commits_between(root_ref_hash, branch.target.sha) ++ count_commits_between(root_ref_hash, branch.dereferenced_target.sha) + + { behind: number_commits_behind, ahead: number_commits_ahead } + end +@@ -674,11 +674,11 @@ class Repository + branches.sort_by(&:name) + when 'updated_desc' + branches.sort do |a, b| +- commit(b.target).committed_date <=> commit(a.target).committed_date ++ commit(b.dereferenced_target).committed_date <=> commit(a.dereferenced_target).committed_date + end + when 'updated_asc' + branches.sort do |a, b| +- commit(a.target).committed_date <=> commit(b.target).committed_date ++ commit(a.dereferenced_target).committed_date <=> commit(b.dereferenced_target).committed_date + end + else + branches +@@ -884,7 +884,7 @@ class Repository + end + + def revert(user, commit, base_branch, revert_tree_id = nil) +- source_sha = find_branch(base_branch).target.sha ++ source_sha = find_branch(base_branch).dereferenced_target.sha + revert_tree_id ||= check_revert_content(commit, base_branch) + + return false unless revert_tree_id +@@ -901,7 +901,7 @@ class Repository + end + + def cherry_pick(user, commit, base_branch, cherry_pick_tree_id = nil) +- source_sha = find_branch(base_branch).target.sha ++ source_sha = find_branch(base_branch).dereferenced_target.sha + cherry_pick_tree_id ||= check_cherry_pick_content(commit, base_branch) + + return false unless cherry_pick_tree_id +@@ -930,7 +930,7 @@ class Repository + end + + def check_revert_content(commit, base_branch) +- source_sha = find_branch(base_branch).target.sha ++ source_sha = find_branch(base_branch).dereferenced_target.sha + args = [commit.id, source_sha] + args << { mainline: 1 } if commit.merge_commit? + +@@ -944,7 +944,7 @@ class Repository + end + + def check_cherry_pick_content(commit, base_branch) +- source_sha = find_branch(base_branch).target.sha ++ source_sha = find_branch(base_branch).dereferenced_target.sha + args = [commit.id, source_sha] + args << 1 if commit.merge_commit? + +--- lib/gitlab/popen.rb.orig 2016-11-09 05:10:18 UTC ++++ lib/gitlab/popen.rb +@@ -21,9 +21,9 @@ module Gitlab + @cmd_output = "" + @cmd_status = 0 + Open3.popen3(vars, *cmd, options) do |stdin, stdout, stderr, wait_thr| +- # We are not using stdin so we should close it, in case the command we +- # are running waits for input. ++ yield(stdin) if block_given? + stdin.close ++ + @cmd_output << stdout.read + @cmd_output << stderr.read + @cmd_status = wait_thr.value.exitstatus +--- spec/lib/gitlab/popen_spec.rb.orig 2016-11-09 05:10:18 UTC ++++ spec/lib/gitlab/popen_spec.rb +@@ -40,4 +40,13 @@ describe 'Gitlab::Popen', lib: true, no_ + it { expect(@status).to be_zero } + it { expect(@output).to include('spec') } + end ++ ++ context 'use stdin' do ++ before do ++ @output, @status = @klass.new.popen(%w[cat]) { |stdin| stdin.write 'hello' } ++ end ++ ++ it { expect(@status).to be_zero } ++ it { expect(@output).to eq('hello') } ++ end + end +--- spec/models/repository_spec.rb.orig 2016-11-09 05:10:18 UTC ++++ spec/models/repository_spec.rb +@@ -443,31 +443,32 @@ describe Repository, models: true do + + describe '#commit_with_hooks' do + let(:old_rev) { '0b4bc9a49b562e85de7cc9e834518ea6828729b9' } # git rev-parse feature ++ let(:new_rev) { 'a74ae73c1ccde9b974a70e82b901588071dc142a' } # commit whose parent is old_rev + + context 'when pre hooks were successful' do + before do + expect_any_instance_of(GitHooksService).to receive(:execute). +- with(user, repository.path_to_repo, old_rev, sample_commit.id, 'refs/heads/feature'). ++ with(user, repository.path_to_repo, old_rev, new_rev, 'refs/heads/feature'). + and_yield.and_return(true) + end + + it 'runs without errors' do + expect do +- repository.commit_with_hooks(user, 'feature') { sample_commit.id } ++ repository.commit_with_hooks(user, 'feature') { new_rev } + end.not_to raise_error + end + + it 'ensures the autocrlf Git option is set to :input' do + expect(repository).to receive(:update_autocrlf_option) + +- repository.commit_with_hooks(user, 'feature') { sample_commit.id } ++ repository.commit_with_hooks(user, 'feature') { new_rev } + end + + context "when the branch wasn't empty" do + it 'updates the head' do + expect(repository.find_branch('feature').target.id).to eq(old_rev) +- repository.commit_with_hooks(user, 'feature') { sample_commit.id } +- expect(repository.find_branch('feature').target.id).to eq(sample_commit.id) ++ repository.commit_with_hooks(user, 'feature') { new_rev } ++ expect(repository.find_branch('feature').target.id).to eq(new_rev) + end + end + end +@@ -477,7 +478,7 @@ describe Repository, models: true do + allow_any_instance_of(Gitlab::Git::Hook).to receive(:trigger).and_return([false, '']) + + expect do +- repository.commit_with_hooks(user, 'feature') { sample_commit.id } ++ repository.commit_with_hooks(user, 'feature') { new_rev } + end.to raise_error(GitHooksService::PreReceiveError) + end + end +@@ -485,6 +486,7 @@ describe Repository, models: true do + context 'when target branch is different from source branch' do + before do + allow_any_instance_of(Gitlab::Git::Hook).to receive(:trigger).and_return([true, '']) ++ allow(repository).to receive(:update_ref!) + end + + it 'expires branch cache' do +@@ -495,7 +497,7 @@ describe Repository, models: true do + expect(repository).to receive(:expire_has_visible_content_cache) + expect(repository).to receive(:expire_branch_count_cache) + +- repository.commit_with_hooks(user, 'new-feature') { sample_commit.id } ++ repository.commit_with_hooks(user, 'new-feature') { new_rev } + end + end + +@@ -1268,4 +1270,18 @@ describe Repository, models: true do + File.delete(path) + end + end ++ ++ describe '#update_ref!' do ++ it 'can create a ref' do ++ repository.update_ref!('refs/heads/foobar', 'refs/heads/master', Gitlab::Git::BLANK_SHA) ++ ++ expect(repository.find_branch('foobar')).not_to be_nil ++ end ++ ++ it 'raises CommitError when the ref update fails' do ++ expect do ++ repository.update_ref!('refs/heads/master', 'refs/heads/master', Gitlab::Git::BLANK_SHA) ++ end.to raise_error(Repository::CommitError) ++ end ++ end + end Property changes on: head/www/gitlab/files/patch-6130 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/www/gitlab/files/patch-Gemfile =================================================================== --- head/www/gitlab/files/patch-Gemfile (revision 432935) +++ head/www/gitlab/files/patch-Gemfile (revision 432936) @@ -1,264 +1,305 @@ --- Gemfile.orig 2016-11-09 05:10:18 UTC +++ Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -gem 'rails', '4.2.7.1' +gem 'rails', '>= 4.2.7.1' gem 'rails-deprecated_sanitizer', '~> 1.0.3' # Responders respond_to and respond_with @@ -8,15 +8,14 @@ gem 'responders', '~> 2.0' # Specify a sprockets version due to increased performance # See https://gitlab.com/gitlab-org/gitlab-ce/issues/6069 -gem 'sprockets', '~> 3.6.0' +gem 'sprockets', '>= 3.6.0' gem 'sprockets-es6' # Default values for AR models -gem 'default_value_for', '~> 3.0.0' +gem 'default_value_for', '>= 3.0.0' # Supported DBs -gem 'mysql2', '~> 0.3.16', group: :mysql -gem 'pg', '~> 0.18.2', group: :postgres +gem 'pg', '>= 0.18.2', group: :postgres # Authentication libraries gem 'devise', '~> 4.0' -@@ -30,12 +29,11 @@ gem 'omniauth-facebook', '~> 3.0.0' +@@ -26,20 +25,19 @@ gem 'omniauth-auth0', '~> 1.4.1' + gem 'omniauth-azure-oauth2', '~> 0.0.6' + gem 'omniauth-bitbucket', '~> 0.0.2' + gem 'omniauth-cas3', '~> 1.1.2' +-gem 'omniauth-facebook', '~> 3.0.0' ++gem 'omniauth-facebook', '>= 3.0.0' gem 'omniauth-github', '~> 1.1.1' gem 'omniauth-gitlab', '~> 1.0.0' gem 'omniauth-google-oauth2', '~> 0.4.1' -gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos - gem 'omniauth-saml', '~> 1.6.0' +-gem 'omniauth-saml', '~> 1.6.0' ++gem 'omniauth-saml', '>= 1.6.0' gem 'omniauth-shibboleth', '~> 1.2.0' - gem 'omniauth-twitter', '~> 1.2.0' +-gem 'omniauth-twitter', '~> 1.2.0' ++gem 'omniauth-twitter', '>= 1.2.0' gem 'omniauth_crowd', '~> 2.2.0' -gem 'rack-oauth2', '~> 1.2.1' +gem 'rack-oauth2', '>= 1.2.1' gem 'jwt' # Spam and anti-bot protection -@@ -66,11 +64,11 @@ gem 'gollum-lib', '~> 4.2', require: fal +-gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails' ++gem 'recaptcha', '>= 3.0', require: 'recaptcha/rails' + gem 'akismet', '~> 2.0' + + # Two-factor authentication +@@ -66,21 +64,21 @@ gem 'gollum-lib', '~> 4.2', require: fal gem 'gollum-rugged_adapter', '~> 0.4.2', require: false # Language detection -gem 'github-linguist', '~> 4.7.0', require: 'linguist' +gem 'github-linguist', '>= 4.7.0', require: 'linguist' # API -gem 'grape', '~> 0.15.0' -gem 'grape-entity', '~> 0.4.2' +gem 'grape', '>= 0.15.0' +gem 'grape-entity', '>= 0.4.2' gem 'rack-cors', '~> 0.4.0', require: 'rack/cors' # Pagination -@@ -80,7 +78,7 @@ gem 'kaminari', '~> 0.17.0' - gem 'hamlit', '~> 2.6.1' + gem 'kaminari', '~> 0.17.0' + # HAML +-gem 'hamlit', '~> 2.6.1' ++gem 'hamlit', '>= 2.6.1' + # Files attachments -gem 'carrierwave', '~> 0.10.0' +gem 'carrierwave', '>= 0.10.0' # Drag and Drop UI gem 'dropzonejs-rails', '~> 0.7.1' -@@ -109,10 +107,10 @@ gem 'task_list', '~> 1.0.2', require +@@ -107,25 +105,25 @@ gem 'seed-fu', '~> 2.3.5' + gem 'html-pipeline', '~> 1.11.0' + gem 'task_list', '~> 1.0.2', require: 'task_list/railtie' gem 'github-markup', '~> 1.4' - gem 'redcarpet', '~> 3.3.3' +-gem 'redcarpet', '~> 3.3.3' ++gem 'redcarpet', '>= 3.3.3' gem 'RedCloth', '~> 4.3.2' -gem 'rdoc', '~>3.6' +gem 'rdoc', '>= 3.6' gem 'org-ruby', '~> 0.9.12' gem 'creole', '~> 0.5.0' -gem 'wikicloth', '0.8.1' +gem 'wikicloth', '>= 0.8.1' gem 'asciidoctor', '~> 1.5.2' gem 'rouge', '~> 2.0' -@@ -121,11 +119,11 @@ gem 'rouge', '~> 2.0' - gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2' + # See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s + # and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM +-gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2' ++gem 'nokogiri', '>= 1.6.7.2' # Diffs -gem 'diffy', '~> 3.0.3' +gem 'diffy', '>= 3.0.3' # Application server group :unicorn do - gem 'unicorn', '~> 4.9.0' + gem 'unicorn', '>= 4.9.0' gem 'unicorn-worker-killer', '~> 0.4.2' end @@ -144,7 +142,7 @@ gem 'sidekiq-cron', '~> 0.4.0' gem 'redis-namespace', '~> 1.5.2' # HTTP requests -gem 'httparty', '~> 0.13.3' +gem 'httparty', '>= 0.13.3' # Colored output to console gem 'rainbow', '~> 2.1.0' @@ -173,10 +171,10 @@ gem 'gitlab-flowdock-git-hook', '~> 1.0. gem 'gemnasium-gitlab-service', '~> 0.2' # Slack integration -gem 'slack-notifier', '~> 1.2.0' +gem 'slack-notifier', '>= 1.2.0' # Asana integration -gem 'asana', '~> 0.4.0' +gem 'asana', '>= 0.4.0' # FogBugz integration gem 'ruby-fogbugz', '~> 0.2.1' @@ -188,17 +186,17 @@ gem 'd3_rails', '~> 3.5.0' gem 'underscore-rails', '~> 1.8.0' # Sanitize user input -gem 'sanitize', '~> 2.0' +gem 'sanitize', '>= 2.0' gem 'babosa', '~> 1.0.2' # Sanitizes SVG input gem 'loofah', '~> 2.0.3' # Working with license -gem 'licensee', '~> 8.0.0' +gem 'licensee', '>= 8.0.0' # Protect against bruteforcing -gem 'rack-attack', '~> 4.3.1' +gem 'rack-attack', '>= 4.3.1' # Ace editor gem 'ace-rails-ap', '~> 4.1.0' -@@ -215,22 +213,22 @@ gem 'chronic_duration', '~> 0.10.6' +@@ -215,125 +213,42 @@ gem 'chronic_duration', '~> 0.10.6' gem 'sass-rails', '~> 5.0.0' gem 'coffee-rails', '~> 4.1.0' -gem 'uglifier', '~> 2.7.2' +gem 'uglifier', '>= 2.7.2' gem 'turbolinks', '~> 2.5.0' gem 'jquery-turbolinks', '~> 2.1.0' -gem 'addressable', '~> 2.3.8' +gem 'addressable', '>= 2.3.8' gem 'bootstrap-sass', '~> 3.3.0' - gem 'font-awesome-rails', '~> 4.6.1' +-gem 'font-awesome-rails', '~> 4.6.1' ++gem 'font-awesome-rails', '>= 4.6.1' gem 'gemojione', '~> 3.0' gem 'gon', '~> 6.1.0' gem 'jquery-atwho-rails', '~> 1.3.2' -gem 'jquery-rails', '~> 4.1.0' +gem 'jquery-rails', '>= 4.1.0' gem 'jquery-ui-rails', '~> 5.0.0' -gem 'request_store', '~> 1.3.0' +gem 'request_store', '>= 1.3.0' gem 'select2-rails', '~> 3.5.9' gem 'virtus', '~> 1.0.1' -gem 'net-ssh', '~> 3.0.1' +gem 'net-ssh', '>= 3.0.1' gem 'base32', '~> 0.3.0' # Sentry integration -@@ -238,89 +236,6 @@ gem 'sentry-raven', '~> 2.0.0' +-gem 'sentry-raven', '~> 2.0.0' ++gem 'sentry-raven', '>= 2.0.0' gem 'premailer-rails', '~> 1.9.0' -# Metrics -group :metrics do - gem 'allocations', '~> 1.0', require: false, platform: :mri - gem 'method_source', '~> 0.8', require: false - gem 'influxdb', '~> 0.2', require: false -end - -group :development do - gem 'foreman', '~> 0.78.0' - gem 'brakeman', '~> 3.3.0', require: false - - gem 'letter_opener_web', '~> 1.3.0' - gem 'rerun', '~> 0.11.0' - gem 'bullet', '~> 5.2.0', require: false - gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false - gem 'web-console', '~> 2.0' - - # Better errors handler - gem 'better_errors', '~> 1.0.1' - gem 'binding_of_caller', '~> 0.7.2' - - # Docs generator - gem 'sdoc', '~> 0.3.20' - - # thin instead webrick - gem 'thin', '~> 1.7.0' -end - -group :development, :test do - gem 'byebug', '~> 8.2.1', platform: :mri - gem 'pry-rails', '~> 0.3.4' - - gem 'awesome_print', '~> 1.2.0', require: false - gem 'fuubar', '~> 2.0.0' - - gem 'database_cleaner', '~> 1.5.0' - gem 'factory_girl_rails', '~> 4.6.0' - gem 'rspec-rails', '~> 3.5.0' - gem 'rspec-retry', '~> 0.4.5' - gem 'spinach-rails', '~> 0.2.1' - gem 'spinach-rerun-reporter', '~> 0.0.2' - - # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) - gem 'minitest', '~> 5.7.0' - - # Generate Fake data - gem 'ffaker', '~> 2.0.0' - - gem 'capybara', '~> 2.6.2' - gem 'capybara-screenshot', '~> 1.0.0' - gem 'poltergeist', '~> 1.9.0' - - gem 'teaspoon', '~> 1.1.0' - gem 'teaspoon-jasmine', '~> 2.2.0' - - gem 'spring', '~> 1.7.0' - gem 'spring-commands-rspec', '~> 1.0.4' - gem 'spring-commands-spinach', '~> 1.1.0' - gem 'spring-commands-teaspoon', '~> 0.0.2' - - gem 'rubocop', '~> 0.41.2', require: false - gem 'rubocop-rspec', '~> 1.5.0', require: false - gem 'scss_lint', '~> 0.47.0', require: false - gem 'simplecov', '0.12.0', require: false - gem 'flog', '~> 4.3.2', require: false - gem 'flay', '~> 2.6.1', require: false - gem 'bundler-audit', '~> 0.5.0', require: false - - gem 'benchmark-ips', '~> 2.3.0', require: false - - gem 'license_finder', '~> 2.1.0', require: false - gem 'knapsack', '~> 1.11.0' -end - -group :test do - gem 'shoulda-matchers', '~> 2.8.0', require: false - gem 'email_spec', '~> 1.6.0' - gem 'json-schema', '~> 2.6.2' - gem 'webmock', '~> 1.21.0' - gem 'test_after_commit', '~> 0.4.2' - gem 'sham_rack', '~> 1.3.6' -end - group :production do gem 'gitlab_meta', '7.0' end -@@ -349,5 +264,7 @@ gem 'paranoia', '~> 2.0' - gem 'health_check', '~> 2.1.0' + + gem 'newrelic_rpm', '~> 3.16' + +-gem 'octokit', '~> 4.3.0' ++gem 'octokit', '>= 4.3.0' + + gem 'mail_room', '~> 0.8' + + gem 'email_reply_parser', '~> 0.5.8' + +-gem 'ruby-prof', '~> 0.15.9' ++gem 'ruby-prof', '>= 0.15.9' + + ## CI + gem 'activerecord-session_store', '~> 1.0.0' +@@ -346,8 +261,10 @@ gem 'oauth2', '~> 1.2.0' + gem 'paranoia', '~> 2.0' + + # Health check +-gem 'health_check', '~> 2.1.0' ++gem 'health_check', '>= 2.1.0' # System information -gem 'vmstat', '~> 2.2' +gem 'vmstat', '>= 2.1.1' gem 'sys-filesystem', '~> 1.1.6' + +gem 'rinku' Index: head/www/gitlab/files/patch-new-gitlab-git =================================================================== --- head/www/gitlab/files/patch-new-gitlab-git (nonexistent) +++ head/www/gitlab/files/patch-new-gitlab-git (revision 432936) @@ -0,0 +1,104 @@ +--- app/controllers/projects/tags_controller.rb.orig 2016-11-09 05:10:18 UTC ++++ app/controllers/projects/tags_controller.rb +@@ -17,7 +17,7 @@ class Projects::TagsController < Project + @tag = @repository.find_tag(params[:id]) + + @release = @project.releases.find_or_initialize_by(tag: @tag.name) +- @commit = @repository.commit(@tag.target) ++ @commit = @repository.commit(@tag.dereferenced_target) + end + + def create +--- app/services/delete_branch_service.rb.orig 2016-11-09 05:10:18 UTC ++++ app/services/delete_branch_service.rb +@@ -42,7 +42,7 @@ class DeleteBranchService < BaseService + Gitlab::DataBuilder::Push.build( + project, + current_user, +- branch.target.sha, ++ branch.dereferenced_target.sha, + Gitlab::Git::BLANK_SHA, + "#{Gitlab::Git::BRANCH_REF_PREFIX}#{branch.name}", + []) +--- app/services/delete_tag_service.rb.orig 2016-11-09 05:10:18 UTC ++++ app/services/delete_tag_service.rb +@@ -36,7 +36,7 @@ class DeleteTagService < BaseService + Gitlab::DataBuilder::Push.build( + project, + current_user, +- tag.target.sha, ++ tag.dereferenced_target.sha, + Gitlab::Git::BLANK_SHA, + "#{Gitlab::Git::TAG_REF_PREFIX}#{tag.name}", + []) +--- app/services/git_tag_push_service.rb.orig 2016-11-09 05:10:18 UTC ++++ app/services/git_tag_push_service.rb +@@ -27,8 +27,8 @@ class GitTagPushService < BaseService + tag_name = Gitlab::Git.ref_name(params[:ref]) + tag = project.repository.find_tag(tag_name) + +- if tag && tag.object_sha == params[:newrev] +- commit = project.commit(tag.target) ++ if tag && tag.target == params[:newrev] ++ commit = project.commit(tag.dereferenced_target) + commits = [commit].compact + message = tag.message + end +--- app/views/projects/branches/_branch.html.haml.orig 2016-11-09 05:10:18 UTC ++++ app/views/projects/branches/_branch.html.haml +@@ -1,4 +1,4 @@ +-- commit = @repository.commit(branch.target) ++- commit = @repository.commit(branch.dereferenced_target) + - bar_graph_width_factor = @max_commits > 0 ? 100.0/@max_commits : 0 + - diverging_commit_counts = @repository.diverging_commit_counts(branch) + - number_commits_behind = diverging_commit_counts[:behind] +--- app/views/projects/issues/_related_branches.html.haml.orig 2016-11-09 05:10:18 UTC ++++ app/views/projects/issues/_related_branches.html.haml +@@ -4,7 +4,7 @@ + %ul.unstyled-list + - @related_branches.each do |branch| + %li +- - target = @project.repository.find_branch(branch).target ++ - target = @project.repository.find_branch(branch).dereferenced_target + - pipeline = @project.pipeline(target.sha, branch) if target + - if pipeline + %span.related-branch-ci-status +--- app/views/projects/tags/_tag.html.haml.orig 2016-11-09 05:10:18 UTC ++++ app/views/projects/tags/_tag.html.haml +@@ -1,4 +1,4 @@ +-- commit = @repository.commit(tag.target) ++- commit = @repository.commit(tag.dereferenced_target) + - release = @releases.find { |release| release.tag == tag.name } + %li + %div +--- lib/api/entities.rb.orig 2016-11-09 05:10:18 UTC ++++ lib/api/entities.rb +@@ -125,7 +125,7 @@ module API + expose :name + + expose :commit do |repo_branch, options| +- options[:project].repository.commit(repo_branch.target) ++ options[:project].repository.commit(repo_branch.dereferenced_target) + end + + expose :protected do |repo_branch, options| +@@ -449,7 +449,7 @@ module API + expose :name, :message + + expose :commit do |repo_tag, options| +- options[:project].repository.commit(repo_tag.target) ++ options[:project].repository.commit(repo_tag.dereferenced_target) + end + + expose :release, using: Entities::Release do |repo_tag, options| +--- lib/gitlab/data_builder/push.rb.orig 2016-11-09 05:10:18 UTC ++++ lib/gitlab/data_builder/push.rb +@@ -83,7 +83,7 @@ module Gitlab + tag = repository.find_tag(tag_name) + + if tag +- commit = repository.commit(tag.target) ++ commit = repository.commit(tag.dereferenced_target) + commit.try(:sha) + end + else Property changes on: head/www/gitlab/files/patch-new-gitlab-git ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property