diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index f3f9324eeaf..a13d795045a 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -1079,7 +1079,6 @@ Layout/LineLength: - 'ee/lib/ee/api/helpers/settings_helpers.rb' - 'ee/lib/ee/api/helpers/users_helpers.rb' - 'ee/lib/ee/api/internal/base.rb' - - 'ee/lib/ee/api/internal/kubernetes.rb' - 'ee/lib/ee/api/issues.rb' - 'ee/lib/ee/api/members.rb' - 'ee/lib/ee/api/merge_request_approvals.rb' diff --git a/Gemfile b/Gemfile index a9fe070a722..9f92be1d64a 100644 --- a/Gemfile +++ b/Gemfile @@ -140,7 +140,7 @@ gem 'grape-path-helpers', '~> 2.0.1', feature_category: :api gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory # GraphQL API -gem 'graphql', '~> 2.3.4', feature_category: :api +gem 'graphql', '~> 2.3.5', feature_category: :api gem 'graphql-docs', '~> 4.0.0', group: [:development, :test], feature_category: :api gem 'graphiql-rails', '~> 1.8.0', feature_category: :api gem 'apollo_upload_server', '~> 2.1.6', feature_category: :api @@ -561,7 +561,7 @@ group :test do gem 'gitlab_quality-test_tooling', '~> 1.29.1', require: false, feature_category: :tooling end -gem 'octokit', '~> 8.1', feature_category: :importers +gem 'octokit', '~> 9.0', feature_category: :importers gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared diff --git a/Gemfile.checksum b/Gemfile.checksum index 537791de46b..634aedb54bd 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -279,7 +279,7 @@ {"name":"graphiql-rails","version":"1.8.0","platform":"ruby","checksum":"02e2c5098be2c6c29219a0e9b2910a2cd3c494301587a3199a7c4484d8038ed1"}, {"name":"graphlient","version":"0.6.0","platform":"ruby","checksum":"b8d8664b4c8ec215012cbe3cca918a045b0a206d709712d68b6db51fd215c5c0"}, {"name":"graphlyte","version":"1.0.0","platform":"ruby","checksum":"b5af4ab67dde6e961f00ea1c18f159f73b52ed11395bb4ece297fe628fa1804d"}, -{"name":"graphql","version":"2.3.4","platform":"ruby","checksum":"020f313608237723e576e2621ab469a54087eaac2240261f9e41478d2725c935"}, +{"name":"graphql","version":"2.3.5","platform":"ruby","checksum":"9c367835f86541660d24c3d81632267ecee553d304577aaee070f8ac05860af1"}, {"name":"graphql-client","version":"0.19.0","platform":"ruby","checksum":"fe699d81976f916bd8f989216155326449cb8475a5d69fa1dd054012a86969c7"}, {"name":"graphql-docs","version":"4.0.0","platform":"ruby","checksum":"f68296959263db26e1b7ba7058856d67b641cf508187222268be58f09dfa02d7"}, {"name":"grpc","version":"1.63.0","platform":"aarch64-linux","checksum":"dc75c5fd570b819470781d9512105dddfdd11d984f38b8e60bb946f92d1f79ee"}, @@ -355,7 +355,7 @@ {"name":"letter_opener_web","version":"2.0.0","platform":"ruby","checksum":"33860ad41e1785d75456500e8ca8bba8ed71ee6eaf08a98d06bbab67c5577b6f"}, {"name":"libyajl2","version":"2.1.0","platform":"ruby","checksum":"aa5df6c725776fc050c8418450de0f7c129cb7200b811907c4c0b3b5c0aea0ef"}, {"name":"license_finder","version":"7.1.0","platform":"ruby","checksum":"6d020b3639f74da1488ddff052b3c93410cbf89a82dc884d404caa5ad072c66c"}, -{"name":"licensee","version":"9.16.1","platform":"ruby","checksum":"04c0b57d20b91fa82ac9dcb3637da9cdc1c3823e217c0781e5d0514958e2e515"}, +{"name":"licensee","version":"9.17.1","platform":"ruby","checksum":"0be022c66d8853d35b08171a0f2575d5ccb5aef8a7020a1815938b4f26f4089a"}, {"name":"listen","version":"3.7.1","platform":"ruby","checksum":"3b80caa7aa77fae836916c2f9e3fbcafbd15f5d695dd487c1f5b5e7e465efe29"}, {"name":"llhttp-ffi","version":"0.4.0","platform":"ruby","checksum":"e5f7327db3cf8007e648342ef76347d6e0ae545a8402e519cca9c886eb37b001"}, {"name":"locale","version":"2.1.3","platform":"ruby","checksum":"b6ddee011e157817cb98e521b3ce7cb626424d5882f1e844aafdee3e8b212725"}, @@ -426,7 +426,7 @@ {"name":"numerizer","version":"0.2.0","platform":"ruby","checksum":"e58076d5ee5370417b7e52d9cb25836d62acd1b8d9a194c308707986c1705d7b"}, {"name":"oauth","version":"0.5.6","platform":"ruby","checksum":"4085fe28e0c5e2434135e00a6555294fd2a4ff96a98d1bdecdcd619fc6368dff"}, {"name":"oauth2","version":"2.0.9","platform":"ruby","checksum":"b21f9defcf52dc1610e0dfab4c868342173dcd707fd15c777d9f4f04e153f7fb"}, -{"name":"octokit","version":"8.1.0","platform":"ruby","checksum":"82229ce9b54e910e27ae75ff21e54bc97072913b5af06750999966e6817af8cd"}, +{"name":"octokit","version":"9.1.0","platform":"ruby","checksum":"7849a659d2722c629181f48d1d7e567c9539f1a85c9676144dbdbfc6ce288253"}, {"name":"ohai","version":"18.1.3","platform":"ruby","checksum":"980cfd6a6597f897e157532ba2168d29afb83a8f5e125f682ec3248c3407df95"}, {"name":"oj","version":"3.13.23","platform":"ruby","checksum":"206dfdc4020ad9974705037f269cfba211d61b7662a58c717cce771829ccef51"}, {"name":"oj-introspect","version":"0.7.2","platform":"ruby","checksum":"c415a44567ed2870d8e963a69421d9322128e194fab7867e37e54d5a25d5333d"}, @@ -649,7 +649,7 @@ {"name":"spring-commands-rspec","version":"1.0.4","platform":"ruby","checksum":"6202e54fa4767452e3641461a83347645af478bf45dddcca9737b43af0dd1a2c"}, {"name":"sprite-factory","version":"1.7.1","platform":"ruby","checksum":"5586524a1aec003241f1abc6852b61433e988aba5ee2b55f906387bf49b01ba2"}, {"name":"sprockets","version":"3.7.2","platform":"ruby","checksum":"5ea1d7facd09203c1aa196afd6178208cd25abdbcc2a9978810a2f0754e152a0"}, -{"name":"sprockets-rails","version":"3.4.2","platform":"ruby","checksum":"36d6327757ccf7460a00d1d52b2d5ef0019a4670503046a129fa1fb1300931ad"}, +{"name":"sprockets-rails","version":"3.5.1","platform":"ruby","checksum":"c44626cb3887a1a8b572ca258685db33b4ebd041aa73428a716eac444ee5ef48"}, {"name":"ssh_data","version":"1.3.0","platform":"ruby","checksum":"ec7c1e95a3aebeee412147998f4c147b4b05da6ed0aafda6083f9449318eaac0"}, {"name":"ssrf_filter","version":"1.0.8","platform":"ruby","checksum":"03f49f54837e407d43ee93ec733a8a94dc1bcf8185647ac61606e63aaedaa0db"}, {"name":"stackprof","version":"0.2.25","platform":"ruby","checksum":"28db0e2d22b817ae35def7163822505a04a026b02ef119b6aa89d70b967b0d2e"}, diff --git a/Gemfile.lock b/Gemfile.lock index 171ddfccd57..f5c88409463 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -876,7 +876,7 @@ GEM faraday_middleware graphql-client graphlyte (1.0.0) - graphql (2.3.4) + graphql (2.3.5) base64 graphql-client (0.19.0) activesupport (>= 3.0) @@ -1042,9 +1042,9 @@ GEM tomlrb (>= 1.3, < 2.1) with_env (= 1.1.0) xml-simple (~> 1.1.9) - licensee (9.16.1) - dotenv (~> 2.0) - octokit (>= 4.20, < 9.0) + licensee (9.17.1) + dotenv (>= 2, < 4) + octokit (>= 4.20, < 10.0) reverse_markdown (>= 1, < 3) rugged (>= 0.24, < 2.0) thor (>= 0.19, < 2.0) @@ -1156,8 +1156,7 @@ GEM rack (>= 1.2, < 4) snaky_hash (~> 2.0) version_gem (~> 1.1) - octokit (8.1.0) - base64 + octokit (9.1.0) faraday (>= 1, < 3) sawyer (~> 0.9) ohai (18.1.3) @@ -1724,9 +1723,9 @@ GEM sprockets (3.7.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) + sprockets-rails (3.5.1) + actionpack (>= 6.1) + activesupport (>= 6.1) sprockets (>= 3.0.0) ssh_data (1.3.0) ssrf_filter (1.0.8) @@ -2053,7 +2052,7 @@ DEPENDENCIES graphiql-rails (~> 1.8.0) graphlient (~> 0.6.0) graphlyte (~> 1.0.0) - graphql (~> 2.3.4) + graphql (~> 2.3.5) graphql-docs (~> 4.0.0) grpc (~> 1.63) gssapi (~> 1.3.1) @@ -2107,7 +2106,7 @@ DEPENDENCIES net-protocol (~> 0.1.3) nokogiri (~> 1.16) oauth2 (~> 2.0) - octokit (~> 8.1) + octokit (~> 9.0) ohai (~> 18.1) oj (~> 3.13.21) oj-introspect (~> 0.7) diff --git a/app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue b/app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue index c167019861a..88ed6afb0ea 100644 --- a/app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue +++ b/app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue @@ -85,7 +85,8 @@ export default { }, update({ project: { jobs: { nodes = [], pageInfo = {} } = {} } }) { this.pageInfo = pageInfo; - return nodes + + const jobNodes = nodes .map(mapArchivesToJobNodes) .map(mapBooleansToJobNodes) .map((jobNode) => { @@ -96,6 +97,12 @@ export default { _showDetails: this.expandedJobs.includes(jobNode.id), }; }); + + if (jobNodes.some((jobNode) => !jobNode.hasArtifacts)) { + this.$apollo.queries.jobArtifacts.refetch(); + } + + return jobNodes; }, error() { createAlert({ @@ -367,6 +374,9 @@ export default { createdLabel: I18N_CREATED, artifactsCount: I18N_ARTIFACTS_COUNT, }, + TBODY_TR_ATTR: { + 'data-testid': 'job-artifact-table-row', + }, };