Class: Gitlab::GithubImport::Settings
- Inherits:
-
Object
- Object
- Gitlab::GithubImport::Settings
- Defined in:
- lib/gitlab/github_import/settings.rb
Constant Summary collapse
- OPTIONAL_STAGES =
{ single_endpoint_issue_events_import: { label: 'Import issue and pull request events', selected: false, details: <<-TEXT.split("\n").map(&:strip).join(' ') For example, opened or closed, renamed, and labeled or unlabeled. Time required to import these events depends on how many issues or pull requests your project has. TEXT }, single_endpoint_notes_import: { label: 'Use alternative comments import method', selected: false, details: <<-TEXT.split("\n").map(&:strip).join(' ') The default method can skip some comments in large projects because of limitations of the GitHub API. TEXT }, attachments_import: { label: 'Import Markdown attachments (links)', selected: false, details: <<-TEXT.split("\n").map(&:strip).join(' ') Import Markdown attachments (links) from repository comments, release posts, issue descriptions, and pull request descriptions. These can include images, text, or binary attachments. If not imported, links in Markdown to attachments break after you remove the attachments from GitHub. TEXT }, collaborators_import: { label: 'Import collaborators', selected: true, details: <<-TEXT.split("\n").map(&:strip).join(' ') Import direct repository collaborators who are not outside collaborators. Imported collaborators who aren't members of the group you imported the project into consume seats on your GitLab instance. TEXT } }.freeze
Class Method Summary collapse
Instance Method Summary collapse
- #disabled?(stage_name) ⇒ Boolean
- #enabled?(stage_name) ⇒ Boolean
-
#initialize(project) ⇒ Settings
constructor
A new instance of Settings.
- #write(user_settings) ⇒ Object
Constructor Details
#initialize(project) ⇒ Settings
Returns a new instance of Settings.
52 53 54 |
# File 'lib/gitlab/github_import/settings.rb', line 52 def initialize(project) @project = project end |
Class Method Details
.stages_array ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/gitlab/github_import/settings.rb', line 41 def self.stages_array OPTIONAL_STAGES.map do |stage_name, data| { name: stage_name.to_s, label: s_(format("GitHubImport|%{text}", text: data[:label])), selected: data[:selected], details: s_(format("GitHubImport|%{text}", text: data[:details])) } end end |
Instance Method Details
#disabled?(stage_name) ⇒ Boolean
79 80 81 |
# File 'lib/gitlab/github_import/settings.rb', line 79 def disabled?(stage_name) !enabled?(stage_name) end |
#enabled?(stage_name) ⇒ Boolean
75 76 77 |
# File 'lib/gitlab/github_import/settings.rb', line 75 def enabled?(stage_name) project.import_data&.data&.dig('optional_stages', stage_name.to_s) || false end |
#write(user_settings) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/gitlab/github_import/settings.rb', line 56 def write(user_settings) user_settings = user_settings.to_h.with_indifferent_access optional_stages = fetch_stages_from_params(user_settings[:optional_stages]) credentials = project.import_data&.credentials&.merge( additional_access_tokens: user_settings[:additional_access_tokens] ) import_data = project.create_or_update_import_data( data: { optional_stages: optional_stages, timeout_strategy: user_settings[:timeout_strategy] }, credentials: credentials ) import_data.save! end |