diff --git a/Gemfile b/Gemfile index b722dc44906..06a0155b1d9 100644 --- a/Gemfile +++ b/Gemfile @@ -277,7 +277,7 @@ gem 're2', '2.7.0' # rubocop:todo Gemfile/MissingFeatureCategory # Misc -gem 'semver_dialects', '~> 2.0', feature_category: :static_application_security_testing +gem 'semver_dialects', '~> 2.0', '>= 2.0.2', feature_category: :static_application_security_testing gem 'version_sorter', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory gem 'csv_builder', path: 'gems/csv_builder' # rubocop:todo Gemfile/MissingFeatureCategory @@ -418,7 +418,7 @@ group :development do gem 'ruby-lsp', "~> 0.14.6", require: false, feature_category: :tooling - gem 'ruby-lsp-rails', "~> 0.3.0", feature_category: :tooling + gem 'ruby-lsp-rails', "~> 0.3.3", feature_category: :tooling gem 'ruby-lsp-rspec', "~> 0.1.10", require: false, feature_category: :tooling @@ -563,7 +563,7 @@ gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory # Gitaly GRPC protocol definitions -gem 'gitaly', '~> 16.10.1', feature_category: :gitaly +gem 'gitaly', '~> 16.11.0.pre.rc1', feature_category: :gitaly # KAS GRPC protocol definitions gem 'kas-grpc', '~> 0.4.0', feature_category: :deployment_management @@ -645,7 +645,7 @@ gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' # rubocop:todo Gemfile/Missi gem 'arr-pm', '~> 0.0.12' # rubocop:todo Gemfile/MissingFeatureCategory # Remote Development -gem 'devfile', '~> 0.0.25.pre.alpha1', feature_category: :remote_development +gem 'devfile', '~> 0.0.26.pre.alpha1', feature_category: :remote_development # Apple plist parsing gem 'CFPropertyList', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory diff --git a/Gemfile.checksum b/Gemfile.checksum index c0b924520ec..9db7b469c3b 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -112,9 +112,9 @@ {"name":"deprecation_toolkit","version":"1.5.1","platform":"ruby","checksum":"a8a1ab1a19ae40ea12560b65010e099f3459ebde390b76621ef0c21c516a04ba"}, {"name":"derailed_benchmarks","version":"2.1.2","platform":"ruby","checksum":"eaadc6206ceeb5538ff8f5e04a0023d54ebdd95d04f33e8960fb95a5f189a14f"}, {"name":"descendants_tracker","version":"0.0.4","platform":"ruby","checksum":"e9c41dd4cfbb85829a9301ea7e7c48c2a03b26f09319db230e6479ccdc780897"}, -{"name":"devfile","version":"0.0.25.pre.alpha1","platform":"arm64-darwin","checksum":"cf8d5d16ad1ff1ff9ef6f086e58fbad17bdc95dad7fc0c46af3a833c659dd10e"}, -{"name":"devfile","version":"0.0.25.pre.alpha1","platform":"ruby","checksum":"0ff071727acc6561766e115bd9aa63c4a52cb910ff64bf77129568a1c08621dc"}, -{"name":"devfile","version":"0.0.25.pre.alpha1","platform":"x86_64-linux","checksum":"b448240d1cfeb62fbe32e447d62a69efc1d099beac6f6b1778926f72dcf5672f"}, +{"name":"devfile","version":"0.0.26.pre.alpha1","platform":"arm64-darwin","checksum":"9865844fb87a616d3fa8f6bdc4b2c3fc7c8d67b7126b39afc7049ffa3dd419ba"}, +{"name":"devfile","version":"0.0.26.pre.alpha1","platform":"ruby","checksum":"2012962fa924e51b5444f22c68055a6f02c72cb129c5180876468a0361dec9e4"}, +{"name":"devfile","version":"0.0.26.pre.alpha1","platform":"x86_64-linux","checksum":"050e1a996fbae10ad6b9db00201b683bf9a11987d2869672172e7342003636ef"}, {"name":"device_detector","version":"1.0.0","platform":"ruby","checksum":"b800fb3150b00c23e87b6768011808ac1771fffaae74c3238ebaf2b782947a7d"}, {"name":"devise","version":"4.9.3","platform":"ruby","checksum":"480638d6c51b97f56da6e28d4f3e2a1b8e606681b316aa594b87c6ab94923488"}, {"name":"devise-two-factor","version":"4.1.1","platform":"ruby","checksum":"c95f5b07533e62217aaed3c386874d94e2d472fb5f2b6598afe8600fc17a8b95"}, @@ -206,7 +206,7 @@ {"name":"gettext","version":"3.4.9","platform":"ruby","checksum":"292864fe6a15c224cee4125a4a72fab426fdbb280e4cff3cfe44935f549b009a"}, {"name":"gettext_i18n_rails","version":"1.12.0","platform":"ruby","checksum":"6ac4817731a9e2ce47e1e83381ac34f9142263bc2911aaaafb2526d2f1afc1be"}, {"name":"git","version":"1.18.0","platform":"ruby","checksum":"c9b80462e4565cd3d7a9ba8440c41d2c52244b17b0dad0bfddb46de70630c465"}, -{"name":"gitaly","version":"16.10.1","platform":"ruby","checksum":"8f416e71d70fcea89941ca02ddd74b0938ec31e11d5d297bc99e8e3a8861df5a"}, +{"name":"gitaly","version":"16.11.0.pre.rc1","platform":"ruby","checksum":"24334f5f3fd5b6c3d278eea9fe2b6732dd08e87a4146cd4374615506b1a6e7ae"}, {"name":"gitlab","version":"4.19.0","platform":"ruby","checksum":"3f645e3e195dbc24f0834fbf83e8ccfb2056d8e9712b01a640aad418a6949679"}, {"name":"gitlab-chronic","version":"0.10.5","platform":"ruby","checksum":"f80f18dc699b708870a80685243331290bc10cfeedb6b99c92219722f729c875"}, {"name":"gitlab-dangerfiles","version":"4.7.0","platform":"ruby","checksum":"2576876a8dcb7290853fc3aef8048001cfe593b87318dd0016959d42e0e145ca"}, @@ -571,7 +571,7 @@ {"name":"rubocop-rspec","version":"2.25.0","platform":"ruby","checksum":"083f8a0481dbb9969b2a9eae85670a454fe91d46812e6ec97b34e7f6227b99f3"}, {"name":"ruby-fogbugz","version":"0.3.0","platform":"ruby","checksum":"5e04cde474648f498a71cf1e1a7ab42c66b953862fbe224f793ec0a7a1d5f657"}, {"name":"ruby-lsp","version":"0.14.6","platform":"ruby","checksum":"543bedcbe2f073b78285a88a46c9282ab6fd50eac2e922dcd21d7180c5534349"}, -{"name":"ruby-lsp-rails","version":"0.3.1","platform":"ruby","checksum":"81e0aff084c54933cc150d8f544752da9a64b714cb312c196196fb5b8aec730c"}, +{"name":"ruby-lsp-rails","version":"0.3.3","platform":"ruby","checksum":"03bc63aea84d6dc9a000396d2019121f646cfcd2dfefd1ec361b35bb751a2bc3"}, {"name":"ruby-lsp-rspec","version":"0.1.10","platform":"ruby","checksum":"71b638b46b08bfda425477aff705bcc0f48d703983afd1fde50e7b43425afd5a"}, {"name":"ruby-magic","version":"0.6.0","platform":"ruby","checksum":"7b2138877b7d23aff812c95564eba6473b74b815ef85beb0eb792e729a2b6101"}, {"name":"ruby-openai","version":"3.7.0","platform":"ruby","checksum":"fb735d4c055e282ade264cab9864944c05a8a10e0cddd45a0551e8a9851b1850"}, @@ -591,7 +591,7 @@ {"name":"sd_notify","version":"0.1.1","platform":"ruby","checksum":"cbc7ac6caa7cedd26b30a72b5eeb6f36050dc0752df263452ea24fb5a4ad3131"}, {"name":"seed-fu","version":"2.3.7","platform":"ruby","checksum":"f19673443e9af799b730e3d4eca6a89b39e5a36825015dffd00d02ea3365cf74"}, {"name":"selenium-webdriver","version":"4.19.0","platform":"ruby","checksum":"4c8bd1d6016a456154b4ba71a3bb4d532a0ae185a38acf9cec0acbd38b4e5066"}, -{"name":"semver_dialects","version":"2.0.0","platform":"ruby","checksum":"2199413894d88635f15f4ba55835af5b846db78e123ffa84a31207b44bb64587"}, +{"name":"semver_dialects","version":"2.0.2","platform":"ruby","checksum":"60059c9f416f931b5212d862fad2879d6b9affb8e0b9afb0d91b793639c116fe"}, {"name":"sentry-rails","version":"5.10.0","platform":"ruby","checksum":"99aa2fac136c26942eb1897c65de65dac88ad43ac5eb183ff20711287a137ebd"}, {"name":"sentry-raven","version":"3.1.2","platform":"ruby","checksum":"103d3b122958810d34898ce2e705bcf549ddb9d855a70ce9a3970ee2484f364a"}, {"name":"sentry-ruby","version":"5.10.0","platform":"ruby","checksum":"115c24c0aee1309210f3a2988fb118e2bec1f11609feeda90e694388b1183619"}, diff --git a/Gemfile.lock b/Gemfile.lock index e533578b286..78d01bf03e6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -482,7 +482,7 @@ GEM thor (>= 0.19, < 2) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devfile (0.0.25.pre.alpha1) + devfile (0.0.26.pre.alpha1) device_detector (1.0.0) devise (4.9.3) bcrypt (~> 3.0) @@ -687,7 +687,7 @@ GEM git (1.18.0) addressable (~> 2.8) rchardet (~> 1.8) - gitaly (16.10.1) + gitaly (16.11.0.pre.rc1) grpc (~> 1.0) gitlab (4.19.0) httparty (~> 0.20) @@ -1517,7 +1517,7 @@ GEM language_server-protocol (~> 3.17.0) prism (>= 0.22.0, < 0.25) sorbet-runtime (>= 0.5.10782) - ruby-lsp-rails (0.3.1) + ruby-lsp-rails (0.3.3) actionpack (>= 6.0) activerecord (>= 6.0) railties (>= 6.0) @@ -1560,7 +1560,7 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) - semver_dialects (2.0.0) + semver_dialects (2.0.2) deb_version (~> 1.0.1) pastel (~> 0.8.0) thor (~> 1.3) @@ -1871,7 +1871,7 @@ DEPENDENCIES declarative_policy (~> 1.1.0) deprecation_toolkit (~> 1.5.1) derailed_benchmarks - devfile (~> 0.0.25.pre.alpha1) + devfile (~> 0.0.26.pre.alpha1) device_detector devise (~> 4.9.3) devise-pbkdf2-encryptable (~> 0.0.0)! @@ -1907,7 +1907,7 @@ DEPENDENCIES gdk-toogle (~> 0.9) gettext (~> 3.4, >= 3.4.9) gettext_i18n_rails (~> 1.12.0) - gitaly (~> 16.10.1) + gitaly (~> 16.11.0.pre.rc1) gitlab-backup-cli! gitlab-chronic (~> 0.10.5) gitlab-dangerfiles (~> 4.7.0) @@ -2086,7 +2086,7 @@ DEPENDENCIES rubocop ruby-fogbugz (~> 0.3.0) ruby-lsp (~> 0.14.6) - ruby-lsp-rails (~> 0.3.0) + ruby-lsp-rails (~> 0.3.3) ruby-lsp-rspec (~> 0.1.10) ruby-magic (~> 0.6) ruby-openai (~> 3.7) @@ -2098,7 +2098,7 @@ DEPENDENCIES sd_notify (~> 0.1.0) seed-fu (~> 2.3.7) selenium-webdriver (~> 4.19) - semver_dialects (~> 2.0) + semver_dialects (~> 2.0, >= 2.0.2) sentry-rails (~> 5.10.0) sentry-raven (~> 3.1) sentry-ruby (~> 5.10.0) diff --git a/app/assets/javascripts/api/projects_api.js b/app/assets/javascripts/api/projects_api.js index 2c6d835d53e..e85553cc292 100644 --- a/app/assets/javascripts/api/projects_api.js +++ b/app/assets/javascripts/api/projects_api.js @@ -44,6 +44,12 @@ export function createProject(projectData) { }); } +export function updateProject(projectId, data) { + const url = buildApiUrl(PROJECT_PATH).replace(':id', projectId); + + return axios.put(url, data); +} + export function deleteProject(projectId, params) { const url = buildApiUrl(PROJECT_PATH).replace(':id', projectId); diff --git a/app/assets/javascripts/editor/schema/ci.json b/app/assets/javascripts/editor/schema/ci.json index fd3623162b8..febefd6b38d 100644 --- a/app/assets/javascripts/editor/schema/ci.json +++ b/app/assets/javascripts/editor/schema/ci.json @@ -1175,11 +1175,60 @@ ] }, "exists": { - "type": "array", "markdownDescription": "Additional attributes will be provided to job if any of the provided paths matches an existing file in the repository. [Learn More](https://docs.gitlab.com/ee/ci/yaml/#rulesexists).", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "paths" + ], + "properties": { + "paths": { + "type": "array", + "description": "List of file paths.", + "items": { + "type": "string" + } + }, + "project": { + "type": "string", + "description": "Path of the project to search in." + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "paths", + "project" + ], + "properties": { + "paths": { + "type": "array", + "description": "List of file paths.", + "items": { + "type": "string" + } + }, + "project": { + "type": "string", + "description": "Path of the project to search in." + }, + "ref": { + "type": "string", + "description": "Ref of the project to search in." + } + } + } + ] }, "timeout": { "type": "string", diff --git a/app/assets/javascripts/organizations/projects/edit/components/app.vue b/app/assets/javascripts/organizations/projects/edit/components/app.vue index a7707430dc1..abf4e32ac65 100644 --- a/app/assets/javascripts/organizations/projects/edit/components/app.vue +++ b/app/assets/javascripts/organizations/projects/edit/components/app.vue @@ -1,23 +1,74 @@