diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-04 03:09:55 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-04 03:09:55 +0300 |
commit | 73fd5a897364c6f91f86a0dd6d4b566c2574ca6e (patch) | |
tree | 0f77959883c969bf93ac6c8804e10d3dbeddc59a /app | |
parent | e701659ba316541833e50d68f14720d17be58f8c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
38 files changed, 94 insertions, 63 deletions
diff --git a/app/assets/javascripts/ide/components/ide.vue b/app/assets/javascripts/ide/components/ide.vue index f1dc855362b..f8568f46cd6 100644 --- a/app/assets/javascripts/ide/components/ide.vue +++ b/app/assets/javascripts/ide/components/ide.vue @@ -1,5 +1,6 @@ <script> import { mapActions, mapGetters, mapState } from 'vuex'; +import { GlButton, GlLoadingIcon } from '@gitlab/ui'; import { __ } from '~/locale'; import { WEBIDE_MARK_APP_START, @@ -29,15 +30,17 @@ export default { components: { IdeSidebar, RepoEditor, - 'error-message': () => import('./error_message.vue'), - 'gl-button': () => import('@gitlab/ui/src/components/base/button/button.vue'), - 'gl-loading-icon': () => import('@gitlab/ui/src/components/base/loading_icon/loading_icon.vue'), - 'commit-editor-header': () => import('./commit_sidebar/editor_header.vue'), - 'repo-tabs': () => import('./repo_tabs.vue'), - 'ide-status-bar': () => import('./ide_status_bar.vue'), - 'find-file': () => import('~/vue_shared/components/file_finder/index.vue'), - 'right-pane': () => import('./panes/right.vue'), - 'new-modal': () => import('./new_dropdown/modal.vue'), + GlButton, + GlLoadingIcon, + ErrorMessage: () => import(/* webpackChunkName: 'ide_runtime' */ './error_message.vue'), + CommitEditorHeader: () => + import(/* webpackChunkName: 'ide_runtime' */ './commit_sidebar/editor_header.vue'), + RepoTabs: () => import(/* webpackChunkName: 'ide_runtime' */ './repo_tabs.vue'), + IdeStatusBar: () => import(/* webpackChunkName: 'ide_runtime' */ './ide_status_bar.vue'), + FindFile: () => + import(/* webpackChunkName: 'ide_runtime' */ '~/vue_shared/components/file_finder/index.vue'), + RightPane: () => import(/* webpackChunkName: 'ide_runtime' */ './panes/right.vue'), + NewModal: () => import(/* webpackChunkName: 'ide_runtime' */ './new_dropdown/modal.vue'), }, mixins: [glFeatureFlagsMixin()], data() { diff --git a/app/assets/javascripts/ide/components/ide_side_bar.vue b/app/assets/javascripts/ide/components/ide_side_bar.vue index 99215d6c3f1..135b28685ed 100644 --- a/app/assets/javascripts/ide/components/ide_side_bar.vue +++ b/app/assets/javascripts/ide/components/ide_side_bar.vue @@ -14,8 +14,10 @@ export default { ResizablePanel, ActivityBar, IdeTree, - [leftSidebarViews.review.name]: () => import('./ide_review.vue'), - [leftSidebarViews.commit.name]: () => import('./repo_commit_section.vue'), + [leftSidebarViews.review.name]: () => + import(/* webpackChunkName: 'ide_runtime' */ './ide_review.vue'), + [leftSidebarViews.commit.name]: () => + import(/* webpackChunkName: 'ide_runtime' */ './repo_commit_section.vue'), CommitForm, IdeProjectHeader, }, diff --git a/app/assets/javascripts/ide/components/terminal/view.vue b/app/assets/javascripts/ide/components/terminal/view.vue index db97e95eed9..fcf23eb1f73 100644 --- a/app/assets/javascripts/ide/components/terminal/view.vue +++ b/app/assets/javascripts/ide/components/terminal/view.vue @@ -1,12 +1,11 @@ <script> import { mapActions, mapGetters, mapState } from 'vuex'; import EmptyState from './empty_state.vue'; -import TerminalSession from './session.vue'; export default { components: { EmptyState, - TerminalSession, + TerminalSession: () => import(/* webpackChunkName: 'ide_terminal' */ './session.vue'), }, computed: { ...mapState('terminal', ['isShowSplash', 'paths']), diff --git a/app/assets/javascripts/jobs/store/actions.js b/app/assets/javascripts/jobs/store/actions.js index 1e4b5e986db..f8156dc2441 100644 --- a/app/assets/javascripts/jobs/store/actions.js +++ b/app/assets/javascripts/jobs/store/actions.js @@ -20,8 +20,7 @@ export const init = ({ dispatch }, { endpoint, logState, pagePath }) => { logState, pagePath, }); - - return Promise.all([dispatch('fetchJob'), dispatch('fetchTrace')]); + dispatch('fetchJob'); }; export const setJobEndpoint = ({ commit }, endpoint) => commit(types.SET_JOB_ENDPOINT, endpoint); @@ -39,6 +38,7 @@ export const toggleSidebar = ({ dispatch, state }) => { }; let eTagPoll; +let isTraceReadyForRender; export const clearEtagPoll = () => { eTagPoll = null; @@ -70,7 +70,14 @@ export const fetchJob = ({ state, dispatch }) => { }); if (!Visibility.hidden()) { - eTagPoll.makeRequest(); + // eslint-disable-next-line promise/catch-or-return + eTagPoll.makeRequest().then(() => { + // if a job is canceled we still need to dispatch + // fetchTrace to get the trace so we check for has_trace + if (state.job.started || state.job.has_trace) { + dispatch('fetchTrace'); + } + }); } else { axios .get(state.jobEndpoint) @@ -80,9 +87,15 @@ export const fetchJob = ({ state, dispatch }) => { Visibility.change(() => { if (!Visibility.hidden()) { + // This check is needed to ensure the loading icon + // is not shown for a finished job during a visibility change + if (!isTraceReadyForRender) { + dispatch('startPollingTrace'); + } dispatch('restartPolling'); } else { dispatch('stopPolling'); + dispatch('stopPollingTrace'); } }); }; @@ -163,6 +176,8 @@ export const fetchTrace = ({ dispatch, state }) => params: { state: state.traceState }, }) .then(({ data }) => { + isTraceReadyForRender = data.complete; + dispatch('toggleScrollisInBottom', isScrolledToBottom()); dispatch('receiveTraceSuccess', data); diff --git a/app/assets/javascripts/jobs/store/mutations.js b/app/assets/javascripts/jobs/store/mutations.js index 924b811d0d6..dea53f715a7 100644 --- a/app/assets/javascripts/jobs/store/mutations.js +++ b/app/assets/javascripts/jobs/store/mutations.js @@ -49,6 +49,7 @@ export default { [types.SET_TRACE_TIMEOUT](state, id) { state.traceTimeout = id; + state.isTraceComplete = false; }, /** diff --git a/app/graphql/mutations/alert_management/base.rb b/app/graphql/mutations/alert_management/base.rb index 81d5ee95f06..8c6b4005cf8 100644 --- a/app/graphql/mutations/alert_management/base.rb +++ b/app/graphql/mutations/alert_management/base.rb @@ -11,7 +11,7 @@ module Mutations argument :iid, GraphQL::STRING_TYPE, required: true, - description: "The iid of the alert to mutate" + description: "The IID of the alert to mutate" field :alert, Types::AlertManagement::AlertType, diff --git a/app/graphql/mutations/alert_management/http_integration/destroy.rb b/app/graphql/mutations/alert_management/http_integration/destroy.rb index 0f478760aab..45d4bd778da 100644 --- a/app/graphql/mutations/alert_management/http_integration/destroy.rb +++ b/app/graphql/mutations/alert_management/http_integration/destroy.rb @@ -8,7 +8,7 @@ module Mutations argument :id, Types::GlobalIDType[::AlertManagement::HttpIntegration], required: true, - description: "The id of the integration to remove" + description: "The ID of the integration to remove" def resolve(id:) integration = authorized_find!(id: id) diff --git a/app/graphql/mutations/alert_management/http_integration/reset_token.rb b/app/graphql/mutations/alert_management/http_integration/reset_token.rb index eefab156825..3938b38260e 100644 --- a/app/graphql/mutations/alert_management/http_integration/reset_token.rb +++ b/app/graphql/mutations/alert_management/http_integration/reset_token.rb @@ -8,7 +8,7 @@ module Mutations argument :id, Types::GlobalIDType[::AlertManagement::HttpIntegration], required: true, - description: "The id of the integration to mutate" + description: "The ID of the integration to mutate" def resolve(id:) integration = authorized_find!(id: id) diff --git a/app/graphql/mutations/alert_management/http_integration/update.rb b/app/graphql/mutations/alert_management/http_integration/update.rb index 309c45b04ac..98e0f7eb14f 100644 --- a/app/graphql/mutations/alert_management/http_integration/update.rb +++ b/app/graphql/mutations/alert_management/http_integration/update.rb @@ -8,7 +8,7 @@ module Mutations argument :id, Types::GlobalIDType[::AlertManagement::HttpIntegration], required: true, - description: "The id of the integration to mutate" + description: "The ID of the integration to mutate" argument :name, GraphQL::STRING_TYPE, required: false, diff --git a/app/graphql/mutations/alert_management/prometheus_integration/reset_token.rb b/app/graphql/mutations/alert_management/prometheus_integration/reset_token.rb index 745ac51f6e3..effecd8364d 100644 --- a/app/graphql/mutations/alert_management/prometheus_integration/reset_token.rb +++ b/app/graphql/mutations/alert_management/prometheus_integration/reset_token.rb @@ -8,7 +8,7 @@ module Mutations argument :id, Types::GlobalIDType[::PrometheusService], required: true, - description: "The id of the integration to mutate" + description: "The ID of the integration to mutate" def resolve(id:) integration = authorized_find!(id: id) diff --git a/app/graphql/mutations/alert_management/prometheus_integration/update.rb b/app/graphql/mutations/alert_management/prometheus_integration/update.rb index 1f0dea119c5..46f4c23b739 100644 --- a/app/graphql/mutations/alert_management/prometheus_integration/update.rb +++ b/app/graphql/mutations/alert_management/prometheus_integration/update.rb @@ -8,7 +8,7 @@ module Mutations argument :id, Types::GlobalIDType[::PrometheusService], required: true, - description: "The id of the integration to mutate" + description: "The ID of the integration to mutate" argument :active, GraphQL::BOOLEAN_TYPE, required: false, diff --git a/app/graphql/mutations/award_emojis/base.rb b/app/graphql/mutations/award_emojis/base.rb index 28140054dea..4bd8304c3fc 100644 --- a/app/graphql/mutations/award_emojis/base.rb +++ b/app/graphql/mutations/award_emojis/base.rb @@ -12,7 +12,7 @@ module Mutations argument :awardable_id, ::Types::GlobalIDType[::Awardable], required: true, - description: 'The global id of the awardable resource' + description: 'The global ID of the awardable resource' argument :name, GraphQL::STRING_TYPE, diff --git a/app/graphql/mutations/ci/base.rb b/app/graphql/mutations/ci/base.rb index aaece2a3021..0ccee5661b7 100644 --- a/app/graphql/mutations/ci/base.rb +++ b/app/graphql/mutations/ci/base.rb @@ -7,7 +7,7 @@ module Mutations argument :id, PipelineID, required: true, - description: 'The id of the pipeline to mutate' + description: 'The ID of the pipeline to mutate' private diff --git a/app/graphql/mutations/design_management/base.rb b/app/graphql/mutations/design_management/base.rb index 918e5709b94..69fd22e46cd 100644 --- a/app/graphql/mutations/design_management/base.rb +++ b/app/graphql/mutations/design_management/base.rb @@ -11,7 +11,7 @@ module Mutations argument :iid, GraphQL::ID_TYPE, required: true, - description: "The iid of the issue to modify designs for" + description: "The IID of the issue to modify designs for" private diff --git a/app/graphql/mutations/discussions/toggle_resolve.rb b/app/graphql/mutations/discussions/toggle_resolve.rb index 4492da74706..0e3baf8d548 100644 --- a/app/graphql/mutations/discussions/toggle_resolve.rb +++ b/app/graphql/mutations/discussions/toggle_resolve.rb @@ -10,7 +10,7 @@ module Mutations argument :id, Types::GlobalIDType[Discussion], required: true, - description: 'The global id of the discussion' + description: 'The global ID of the discussion' argument :resolve, GraphQL::BOOLEAN_TYPE, diff --git a/app/graphql/mutations/merge_requests/base.rb b/app/graphql/mutations/merge_requests/base.rb index 96228855ace..57920259cf7 100644 --- a/app/graphql/mutations/merge_requests/base.rb +++ b/app/graphql/mutations/merge_requests/base.rb @@ -11,7 +11,7 @@ module Mutations argument :iid, GraphQL::STRING_TYPE, required: true, - description: "The iid of the merge request to mutate" + description: "The IID of the merge request to mutate" field :merge_request, Types::MergeRequestType, diff --git a/app/graphql/mutations/metrics/dashboard/annotations/create.rb b/app/graphql/mutations/metrics/dashboard/annotations/create.rb index b064f55825f..c2ec88c68ed 100644 --- a/app/graphql/mutations/metrics/dashboard/annotations/create.rb +++ b/app/graphql/mutations/metrics/dashboard/annotations/create.rb @@ -20,12 +20,12 @@ module Mutations argument :environment_id, ::Types::GlobalIDType[::Environment], required: false, - description: 'The global id of the environment to add an annotation to' + description: 'The global ID of the environment to add an annotation to' argument :cluster_id, ::Types::GlobalIDType[::Clusters::Cluster], required: false, - description: 'The global id of the cluster to add an annotation to' + description: 'The global ID of the cluster to add an annotation to' argument :starting_at, Types::TimeType, required: true, diff --git a/app/graphql/mutations/notes/create/base.rb b/app/graphql/mutations/notes/create/base.rb index 3cfdaf84760..a1d81c62d91 100644 --- a/app/graphql/mutations/notes/create/base.rb +++ b/app/graphql/mutations/notes/create/base.rb @@ -11,7 +11,7 @@ module Mutations argument :noteable_id, ::Types::GlobalIDType[::Noteable], required: true, - description: 'The global id of the resource to add a note to' + description: 'The global ID of the resource to add a note to' argument :body, GraphQL::STRING_TYPE, diff --git a/app/graphql/mutations/notes/create/note.rb b/app/graphql/mutations/notes/create/note.rb index e97037171f7..f1cd3bddca8 100644 --- a/app/graphql/mutations/notes/create/note.rb +++ b/app/graphql/mutations/notes/create/note.rb @@ -9,7 +9,7 @@ module Mutations argument :discussion_id, ::Types::GlobalIDType[::Discussion], required: false, - description: 'The global id of the discussion this note is in reply to' + description: 'The global ID of the discussion this note is in reply to' private diff --git a/app/graphql/mutations/notes/destroy.rb b/app/graphql/mutations/notes/destroy.rb index 63e5eeb5ecf..0e6a215bf00 100644 --- a/app/graphql/mutations/notes/destroy.rb +++ b/app/graphql/mutations/notes/destroy.rb @@ -10,7 +10,7 @@ module Mutations argument :id, ::Types::GlobalIDType[::Note], required: true, - description: 'The global id of the note to destroy' + description: 'The global ID of the note to destroy' def resolve(id:) note = authorized_find!(id: id) diff --git a/app/graphql/mutations/notes/reposition_image_diff_note.rb b/app/graphql/mutations/notes/reposition_image_diff_note.rb index 0d88bcd9a30..15bfb361b13 100644 --- a/app/graphql/mutations/notes/reposition_image_diff_note.rb +++ b/app/graphql/mutations/notes/reposition_image_diff_note.rb @@ -16,7 +16,7 @@ module Mutations loads: Types::Notes::NoteType, as: :note, required: true, - description: 'The global id of the DiffNote to update' + description: 'The global ID of the DiffNote to update' argument :position, Types::Notes::UpdateDiffImagePositionInputType, diff --git a/app/graphql/mutations/notes/update/base.rb b/app/graphql/mutations/notes/update/base.rb index 1d5738ada77..42dac20f5d3 100644 --- a/app/graphql/mutations/notes/update/base.rb +++ b/app/graphql/mutations/notes/update/base.rb @@ -11,7 +11,7 @@ module Mutations argument :id, ::Types::GlobalIDType[::Note], required: true, - description: 'The global id of the note to update' + description: 'The global ID of the note to update' def resolve(args) note = authorized_find!(id: args[:id]) diff --git a/app/graphql/mutations/snippets/destroy.rb b/app/graphql/mutations/snippets/destroy.rb index 4915d7dd77a..bee6503372d 100644 --- a/app/graphql/mutations/snippets/destroy.rb +++ b/app/graphql/mutations/snippets/destroy.rb @@ -9,7 +9,7 @@ module Mutations argument :id, ::Types::GlobalIDType[::Snippet], required: true, - description: 'The global id of the snippet to destroy' + description: 'The global ID of the snippet to destroy' def resolve(id:) snippet = authorized_find!(id: id) diff --git a/app/graphql/mutations/snippets/mark_as_spam.rb b/app/graphql/mutations/snippets/mark_as_spam.rb index d6b96c699c0..598d47c60ab 100644 --- a/app/graphql/mutations/snippets/mark_as_spam.rb +++ b/app/graphql/mutations/snippets/mark_as_spam.rb @@ -7,7 +7,7 @@ module Mutations argument :id, ::Types::GlobalIDType[::Snippet], required: true, - description: 'The global id of the snippet to update' + description: 'The global ID of the snippet to update' def resolve(id:) snippet = authorized_find!(id: id) diff --git a/app/graphql/mutations/snippets/update.rb b/app/graphql/mutations/snippets/update.rb index bcaa807e4c1..bda43f243c1 100644 --- a/app/graphql/mutations/snippets/update.rb +++ b/app/graphql/mutations/snippets/update.rb @@ -9,7 +9,7 @@ module Mutations argument :id, ::Types::GlobalIDType[::Snippet], required: true, - description: 'The global id of the snippet to update' + description: 'The global ID of the snippet to update' argument :title, GraphQL::STRING_TYPE, required: false, diff --git a/app/graphql/mutations/todos/mark_done.rb b/app/graphql/mutations/todos/mark_done.rb index 3d73022f266..2ae50846108 100644 --- a/app/graphql/mutations/todos/mark_done.rb +++ b/app/graphql/mutations/todos/mark_done.rb @@ -10,7 +10,7 @@ module Mutations argument :id, ::Types::GlobalIDType[::Todo], required: true, - description: 'The global id of the todo to mark as done' + description: 'The global ID of the todo to mark as done' field :todo, Types::TodoType, null: false, diff --git a/app/graphql/mutations/todos/restore.rb b/app/graphql/mutations/todos/restore.rb index 7c8f92d32f5..c532b455a16 100644 --- a/app/graphql/mutations/todos/restore.rb +++ b/app/graphql/mutations/todos/restore.rb @@ -10,7 +10,7 @@ module Mutations argument :id, ::Types::GlobalIDType[::Todo], required: true, - description: 'The global id of the todo to restore' + description: 'The global ID of the todo to restore' field :todo, Types::TodoType, null: false, diff --git a/app/graphql/mutations/todos/restore_many.rb b/app/graphql/mutations/todos/restore_many.rb index 9e0a95c48ec..59965589856 100644 --- a/app/graphql/mutations/todos/restore_many.rb +++ b/app/graphql/mutations/todos/restore_many.rb @@ -10,11 +10,11 @@ module Mutations argument :ids, [::Types::GlobalIDType[::Todo]], required: true, - description: 'The global ids of the todos to restore (a maximum of 50 is supported at once)' + description: 'The global IDs of the todos to restore (a maximum of 50 is supported at once)' field :updated_ids, [::Types::GlobalIDType[Todo]], null: false, - description: 'The ids of the updated todo items', + description: 'The IDs of the updated todo items', deprecated: { reason: 'Use todos', milestone: '13.2' } field :todos, [::Types::TodoType], diff --git a/app/graphql/types/jira_users_mapping_input_type.rb b/app/graphql/types/jira_users_mapping_input_type.rb index 61cf1474493..d5b4b2f618a 100644 --- a/app/graphql/types/jira_users_mapping_input_type.rb +++ b/app/graphql/types/jira_users_mapping_input_type.rb @@ -8,7 +8,7 @@ module Types argument :jira_account_id, GraphQL::STRING_TYPE, required: true, - description: 'Jira account id of the user' + description: 'Jira account ID of the user' argument :gitlab_id, GraphQL::INT_TYPE, required: false, diff --git a/app/models/project_repository_storage_move.rb b/app/models/project_repository_storage_move.rb index 43a35f92084..f6b96a15099 100644 --- a/app/models/project_repository_storage_move.rb +++ b/app/models/project_repository_storage_move.rb @@ -52,7 +52,7 @@ class ProjectRepositoryStorageMove < ApplicationRecord begin storage_move.project.set_repository_read_only!(skip_git_transfer_check: true) rescue => err - errors.add(:project, err.message) + storage_move.errors.add(:project, err.message) next false end diff --git a/app/services/packages/composer/create_package_service.rb b/app/services/packages/composer/create_package_service.rb index 2d2f1568187..0f5429f667e 100644 --- a/app/services/packages/composer/create_package_service.rb +++ b/app/services/packages/composer/create_package_service.rb @@ -16,6 +16,8 @@ module Packages composer_json: composer_json }) end + + created_package end private diff --git a/app/services/packages/conan/create_package_file_service.rb b/app/services/packages/conan/create_package_file_service.rb index 2db5c4e507b..1bde9606492 100644 --- a/app/services/packages/conan/create_package_file_service.rb +++ b/app/services/packages/conan/create_package_file_service.rb @@ -12,7 +12,7 @@ module Packages end def execute - package.package_files.create!( + package_file = package.package_files.build( file: file, size: params['file.size'], file_name: params[:file_name], @@ -25,6 +25,13 @@ module Packages conan_file_type: params[:conan_file_type] } ) + + if params[:build].present? + package_file.package_file_build_infos << package_file.package_file_build_infos.build(pipeline: params[:build].pipeline) + end + + package_file.save! + package_file end end end diff --git a/app/services/packages/create_package_service.rb b/app/services/packages/create_package_service.rb index e3b0ad218e2..fcf252cf971 100644 --- a/app/services/packages/create_package_service.rb +++ b/app/services/packages/create_package_service.rb @@ -8,9 +8,9 @@ module Packages project .packages .with_package_type(package_type) - .safe_find_or_create_by!(name: name, version: version) do |pkg| - pkg.creator = package_creator - yield pkg if block_given? + .safe_find_or_create_by!(name: name, version: version) do |package| + package.creator = package_creator + add_build_info(package) end end @@ -18,7 +18,9 @@ module Packages project .packages .with_package_type(package_type) - .create!(package_attrs(attrs)) + .create!(package_attrs(attrs)) do |package| + add_build_info(package) + end end private @@ -34,5 +36,11 @@ module Packages def package_creator current_user if current_user.is_a?(User) end + + def add_build_info(package) + if params[:build].present? + package.build_infos.new(pipeline: params[:build].pipeline) + end + end end end diff --git a/app/services/packages/generic/create_package_file_service.rb b/app/services/packages/generic/create_package_file_service.rb index f25e8b0ae56..b14b1c193ec 100644 --- a/app/services/packages/generic/create_package_file_service.rb +++ b/app/services/packages/generic/create_package_file_service.rb @@ -18,9 +18,12 @@ module Packages build: params[:build] } - ::Packages::Generic::FindOrCreatePackageService + package = ::Packages::Generic::FindOrCreatePackageService .new(project, current_user, package_params) .execute + + package.build_infos.safe_find_or_create_by!(pipeline: params[:build].pipeline) if params[:build].present? + package end def create_package_file(package) diff --git a/app/services/packages/generic/find_or_create_package_service.rb b/app/services/packages/generic/find_or_create_package_service.rb index 97f774a836b..0a6099e4d35 100644 --- a/app/services/packages/generic/find_or_create_package_service.rb +++ b/app/services/packages/generic/find_or_create_package_service.rb @@ -4,11 +4,7 @@ module Packages module Generic class FindOrCreatePackageService < ::Packages::CreatePackageService def execute - find_or_create_package!(::Packages::Package.package_types['generic']) do |package| - if params[:build].present? - package.build_infos.new(pipeline: params[:build].pipeline) - end - end + find_or_create_package!(::Packages::Package.package_types['generic']) end end end diff --git a/app/services/packages/maven/find_or_create_package_service.rb b/app/services/packages/maven/find_or_create_package_service.rb index a2a61ff8d93..f598b5e7cd4 100644 --- a/app/services/packages/maven/find_or_create_package_service.rb +++ b/app/services/packages/maven/find_or_create_package_service.rb @@ -46,7 +46,7 @@ module Packages .execute end - package.build_infos.create!(pipeline: params[:build].pipeline) if params[:build].present? + package.build_infos.safe_find_or_create_by!(pipeline: params[:build].pipeline) if params[:build].present? package end diff --git a/app/services/packages/npm/create_package_service.rb b/app/services/packages/npm/create_package_service.rb index c4b75348bba..22396eb7687 100644 --- a/app/services/packages/npm/create_package_service.rb +++ b/app/services/packages/npm/create_package_service.rb @@ -17,10 +17,6 @@ module Packages def create_npm_package! package = create_package!(:npm, name: name, version: version) - if build.present? - package.build_infos.create!(pipeline: build.pipeline) - end - ::Packages::CreatePackageFileService.new(package, file_params).execute ::Packages::CreateDependencyService.new(package, package_dependencies).execute ::Packages::Npm::CreateTagService.new(package, dist_tag).execute @@ -50,10 +46,6 @@ module Packages params[:versions][version] end - def build - params[:build] - end - def dist_tag params['dist-tags'].each_key.first end diff --git a/app/services/packages/pypi/create_package_service.rb b/app/services/packages/pypi/create_package_service.rb index c49efca0fc5..cb8d9559dc9 100644 --- a/app/services/packages/pypi/create_package_service.rb +++ b/app/services/packages/pypi/create_package_service.rb @@ -19,6 +19,8 @@ module Packages Packages::Pypi::Metadatum.upsert(meta.attributes) ::Packages::CreatePackageFileService.new(created_package, file_params).execute + + created_package end end @@ -32,6 +34,7 @@ module Packages def file_params { + build: params[:build], file: params[:content], file_name: params[:content].original_filename, file_md5: params[:md5_digest], |