diff --git a/Rakefile b/Rakefile index 5e3a5e7a96fe9852c3ed3f46da356cc4a0f35cb1..a55bbac6ae44d5d83eef89f615366d0de221adfc 100644 --- a/Rakefile +++ b/Rakefile @@ -59,19 +59,19 @@ task :sync do if skip?('ee') $stdout.puts 'Skipping sync for EE'.colorize(:yellow) else - Sync.new(Remotes.ee_remotes).execute + Sync.new(Project::GitlabEe.remotes).execute end if skip?('ce') $stdout.puts 'Skipping sync for CE'.colorize(:yellow) else - Sync.new(Remotes.ce_remotes).execute + Sync.new(Project::GitlabCe.remotes).execute end if skip?('og') $stdout.puts 'Skipping sync for Omnibus Gitlab'.colorize(:yellow) else - Sync.new(Remotes.omnibus_gitlab_remotes).execute + Sync.new(Project::OmnibusGitlab.remotes).execute end end diff --git a/init.rb b/init.rb index fd20f54b433e8118c4515d47e27300603793784b..316ba34912203e13372f0bcda0fea78628581250 100644 --- a/init.rb +++ b/init.rb @@ -3,6 +3,9 @@ require 'dotenv' Dotenv.load require_relative 'lib/version' +require_relative 'lib/project/gitlab_ce' +require_relative 'lib/project/gitlab_ee' +require_relative 'lib/project/omnibus_gitlab' require_relative 'lib/monthly_issue' require_relative 'lib/patch_issue' require_relative 'lib/regression_issue' @@ -10,5 +13,4 @@ require_relative 'lib/merge_request' require_relative 'lib/security_patch_issue' require_relative 'lib/release/gitlab_ce_release' require_relative 'lib/release/gitlab_ee_release' -require_relative 'lib/remotes' require_relative 'lib/sync' diff --git a/lib/project/base_project.rb b/lib/project/base_project.rb new file mode 100644 index 0000000000000000000000000000000000000000..f9c1063e40ff82499585cc85ef68b565738f9b4e --- /dev/null +++ b/lib/project/base_project.rb @@ -0,0 +1,11 @@ +module Project + class BaseProject + def self.remotes(dev_only: false) + if dev_only + self::REMOTES.slice(:dev) + else + self::REMOTES + end + end + end +end diff --git a/lib/project/gitlab_ce.rb b/lib/project/gitlab_ce.rb index 3aa6116a011ee50256da0b6a83ff9c3749d82cd1..aec3ebc44c62a9e6643ddbf479552d9bf7623657 100644 --- a/lib/project/gitlab_ce.rb +++ b/lib/project/gitlab_ce.rb @@ -1,5 +1,13 @@ +require_relative 'base_project' + module Project - class GitlabCe + class GitlabCe < BaseProject + REMOTES = { + dev: 'git@dev.gitlab.org:gitlab/gitlabhq.git', + gitlab: 'git@gitlab.com:gitlab-org/gitlab-ce.git', + github: 'git@github.com:gitlabhq/gitlabhq.git' + }.freeze + def self.path 'gitlab-org/gitlab-ce' end diff --git a/lib/project/gitlab_ee.rb b/lib/project/gitlab_ee.rb index 63efe4a7ad86ad709dd227b99d0d4b83c9a5b12f..56ae3869b258ca8d0d5c204e9ee46eda2ae6bf64 100644 --- a/lib/project/gitlab_ee.rb +++ b/lib/project/gitlab_ee.rb @@ -1,5 +1,12 @@ +require_relative 'base_project' + module Project - class GitlabEe + class GitlabEe < BaseProject + REMOTES = { + dev: 'git@dev.gitlab.org:gitlab/gitlab-ee.git', + gitlab: 'git@gitlab.com:gitlab-org/gitlab-ee.git' + }.freeze + def self.path 'gitlab-org/gitlab-ee' end diff --git a/lib/project/omnibus_gitlab.rb b/lib/project/omnibus_gitlab.rb new file mode 100644 index 0000000000000000000000000000000000000000..3b5911ab9be2b992cf87d2b9cb9b20ac8afd98ed --- /dev/null +++ b/lib/project/omnibus_gitlab.rb @@ -0,0 +1,15 @@ +require_relative 'base_project' + +module Project + class OmnibusGitlab < BaseProject + REMOTES = { + dev: 'git@dev.gitlab.org:gitlab/omnibus-gitlab.git', + gitlab: 'git@gitlab.com:gitlab-org/omnibus-gitlab.git', + github: 'git@github.com:gitlabhq/omnibus-gitlab.git' + }.freeze + + def self.path + 'gitlab-org/omnibus-gitlab' + end + end +end diff --git a/lib/release/gitlab_ce_release.rb b/lib/release/gitlab_ce_release.rb index e3224a55a476312924cde3be7027d0198cc3aa08..b9b802d177db54b35e031677e3473af619157224 100644 --- a/lib/release/gitlab_ce_release.rb +++ b/lib/release/gitlab_ce_release.rb @@ -1,13 +1,13 @@ -require_relative '../remotes' require_relative 'base_release' require_relative 'omnibus_gitlab_release' +require_relative '../project/gitlab_ce' module Release class GitlabCeRelease < BaseRelease private def remotes - Remotes.remotes(:ce, dev_only: options[:security]) + Project::GitlabCe.remotes(dev_only: options[:security]) end def before_execute_hook diff --git a/lib/release/gitlab_ee_release.rb b/lib/release/gitlab_ee_release.rb index 1e65817d2a690d5559cf0ddc973bea6802fc5d3b..56c6056b2664100c13ca01c12afe04b60d8327a9 100644 --- a/lib/release/gitlab_ee_release.rb +++ b/lib/release/gitlab_ee_release.rb @@ -1,11 +1,12 @@ require_relative 'gitlab_ce_release' +require_relative '../project/gitlab_ee' module Release class GitlabEeRelease < GitlabCeRelease private def remotes - Remotes.remotes(:ee, dev_only: options[:security]) + Project::GitlabEe.remotes(dev_only: options[:security]) end end end diff --git a/lib/release/omnibus_gitlab_release.rb b/lib/release/omnibus_gitlab_release.rb index 844c349588687b8859276b0efe7a982bff0299eb..1c11d2ba62d93f5d3e2400fed2f1c82bf6946f64 100644 --- a/lib/release/omnibus_gitlab_release.rb +++ b/lib/release/omnibus_gitlab_release.rb @@ -1,5 +1,6 @@ require_relative 'base_release' require_relative '../omnibus_gitlab_version' +require_relative '../project/omnibus_gitlab' require 'time' module Release @@ -99,7 +100,7 @@ module Release end def remotes - Remotes.remotes(:omnibus_gitlab, dev_only: options[:security]) + Project::OmnibusGitlab.remotes(dev_only: options[:security]) end def version_class diff --git a/lib/remotes.rb b/lib/remotes.rb deleted file mode 100644 index f4fe5c22cc3b88a7b0da92267c0fb12b7758a7b9..0000000000000000000000000000000000000000 --- a/lib/remotes.rb +++ /dev/null @@ -1,41 +0,0 @@ -module Remotes - require 'active_support/core_ext/hash/slice' - - CE_REMOTES = - { - dev: 'git@dev.gitlab.org:gitlab/gitlabhq.git', - gitlab: 'git@gitlab.com:gitlab-org/gitlab-ce.git', - github: 'git@github.com:gitlabhq/gitlabhq.git' - }.freeze - - EE_REMOTES = - { - dev: 'git@dev.gitlab.org:gitlab/gitlab-ee.git', - gitlab: 'git@gitlab.com:gitlab-org/gitlab-ee.git' - }.freeze - - OMNIBUS_GITLAB_REMOTES = - { - dev: 'git@dev.gitlab.org:gitlab/omnibus-gitlab.git', - gitlab: 'git@gitlab.com:gitlab-org/omnibus-gitlab.git', - github: 'git@github.com:gitlabhq/omnibus-gitlab.git' - }.freeze - - def self.remotes(repo_key, dev_only: false) - remotes = - case repo_key - when :ce - CE_REMOTES - when :ee - EE_REMOTES - when :omnibus_gitlab - OMNIBUS_GITLAB_REMOTES - end - - if dev_only - remotes.slice(:dev) - else - remotes - end - end -end diff --git a/spec/lib/project/gitlab_ce_spec.rb b/spec/lib/project/gitlab_ce_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..32407834f8a71e7336b1c319f51c3fe361031159 --- /dev/null +++ b/spec/lib/project/gitlab_ce_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' +require 'project/gitlab_ce' + +describe Project::GitlabCe do + it_behaves_like 'project #remotes' + + describe '.path' do + it { expect(described_class.path).to eq 'gitlab-org/gitlab-ce' } + end +end diff --git a/spec/lib/project/gitlab_ee_spec.rb b/spec/lib/project/gitlab_ee_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..ba710a9f9da1cd31e7ed2eedbed9034734425d1d --- /dev/null +++ b/spec/lib/project/gitlab_ee_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' +require 'project/gitlab_ee' + +describe Project::GitlabEe do + it_behaves_like 'project #remotes' + + describe '.path' do + it { expect(described_class.path).to eq 'gitlab-org/gitlab-ee' } + end +end diff --git a/spec/lib/project/omnibus_gitlab_spec.rb b/spec/lib/project/omnibus_gitlab_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..3e8fb1c7ace04aaa72b46eed7652237675fcfeea --- /dev/null +++ b/spec/lib/project/omnibus_gitlab_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' +require 'project/omnibus_gitlab' + +describe Project::OmnibusGitlab do + it_behaves_like 'project #remotes' + + describe '.path' do + it { expect(described_class.path).to eq 'gitlab-org/omnibus-gitlab' } + end +end diff --git a/spec/lib/remotes_spec.rb b/spec/lib/remotes_spec.rb deleted file mode 100644 index 8197f1522f287f5f015f409b0c3a18b80bce0cb4..0000000000000000000000000000000000000000 --- a/spec/lib/remotes_spec.rb +++ /dev/null @@ -1,59 +0,0 @@ -require 'spec_helper' -require 'remotes' - -describe Remotes do - describe '.remotes' do - describe 'CE remotes' do - it 'returns all remotes by default' do - expect(described_class.remotes(:ce)) - .to eq( - dev: 'git@dev.gitlab.org:gitlab/gitlabhq.git', - gitlab: 'git@gitlab.com:gitlab-org/gitlab-ce.git', - github: 'git@github.com:gitlabhq/gitlabhq.git' - ) - end - - it 'returns only dev remote with dev_only flag' do - expect(described_class.remotes(:ce, dev_only: true)) - .to eq( - dev: 'git@dev.gitlab.org:gitlab/gitlabhq.git' - ) - end - end - - describe 'EE remotes' do - it 'returns all remotes by default' do - expect(described_class.remotes(:ee)) - .to eq( - dev: 'git@dev.gitlab.org:gitlab/gitlab-ee.git', - gitlab: 'git@gitlab.com:gitlab-org/gitlab-ee.git' - ) - end - - it 'returns only dev remote with dev_only flag' do - expect(described_class.remotes(:ee, dev_only: true)) - .to eq( - dev: 'git@dev.gitlab.org:gitlab/gitlab-ee.git' - ) - end - end - - describe 'Omnibus GitLab remotes' do - it 'returns all remotes by default' do - expect(described_class.remotes(:omnibus_gitlab)) - .to eq( - dev: 'git@dev.gitlab.org:gitlab/omnibus-gitlab.git', - gitlab: 'git@gitlab.com:gitlab-org/omnibus-gitlab.git', - github: 'git@github.com:gitlabhq/omnibus-gitlab.git' - ) - end - - it 'returns only dev remote with dev_only flag' do - expect(described_class.remotes(:omnibus_gitlab, dev_only: true)) - .to eq( - dev: 'git@dev.gitlab.org:gitlab/omnibus-gitlab.git' - ) - end - end - end -end diff --git a/spec/support/shared_examples/project_shared_examples.rb b/spec/support/shared_examples/project_shared_examples.rb new file mode 100644 index 0000000000000000000000000000000000000000..edcc159bc286a3e763a762fd0082de51d5bcc2e4 --- /dev/null +++ b/spec/support/shared_examples/project_shared_examples.rb @@ -0,0 +1,10 @@ +RSpec.shared_examples 'project #remotes' do + it 'returns all remotes by default' do + expect(described_class.remotes).to eq(described_class::REMOTES) + end + + it 'returns only dev remote with dev_only flag' do + expect(described_class.remotes(dev_only: true)) + .to eq(described_class::REMOTES.slice(:dev)) + end +end