大家好,
我在尝试升级我的 Discourse 实例时遇到了问题,似乎找不到原因。我像往常一样运行 ./launcher rebuild app。
重建的完整日志
./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20231218-0429: Pulling from discourse/base
Digest: sha256:468f70b9bb4c6d0c6c2bbb3efc1a5e12d145eae57bdb6946b7fe5558beb52dc1
Status: Image is up to date for discourse/base:2.0.20231218-0429
docker.io/discourse/base:2.0.20231218-0429
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-04-16T04:27:06.052594 #1] INFO -- : Reading from stdin
I, [2024-04-16T04:27:06.063582 #1] INFO -- : File > /etc/service/postgres/run chmod: +x chown:
I, [2024-04-16T04:27:06.067286 #1] INFO -- : File > /etc/service/postgres/log/run chmod: +x chown:
I, [2024-04-16T04:27:06.071430 #1] INFO -- : File > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2024-04-16T04:27:06.075274 #1] INFO -- : File > /root/install_postgres chmod: +x chown:
I, [2024-04-16T04:27:06.078912 #1] INFO -- : File > /root/upgrade_postgres chmod: +x chown:
I, [2024-04-16T04:27:06.080229 #1] INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.080618 #1] INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.080887 #1] INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.081189 #1] INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.081531 #1] INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.081763 #1] INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.081997 #1] INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.082227 #1] INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.082463 #1] INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-04-16T04:27:06.082944 #1] INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres peer in /etc/postgresql/13/main/pg_hba.conf
I, [2024-04-16T04:27:06.083141 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-04-16T04:27:06.083324 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-04-16T04:27:06.083595 #1] INFO -- : > [ -f /root/install_postgres ] && /root/install_postgres && rm -f /root/install_postgres
I, [2024-04-16T04:27:06.941238 #1] INFO -- : Generating locales (this might take a while)...
Generation complete.
I, [2024-04-16T04:27:06.941466 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-04-16T04:27:06.946713 #1] INFO -- : File > /usr/local/bin/create_db chmod: +x chown:
I, [2024-04-16T04:27:06.951353 #1] INFO -- : File > /var/lib/postgresql/take-database-backup chmod: +x chown: postgres:postgres
I, [2024-04-16T04:27:06.957369 #1] INFO -- : File > /var/spool/cron/crontabs/postgres chmod: chown:
I, [2024-04-16T04:27:06.957531 #1] INFO -- : > sleep 5
2024-04-16 04:27:07.012 UTC [35] LOG: starting PostgreSQL 13.13 (Debian 13.13-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-04-16 04:27:07.014 UTC [35] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-04-16 04:27:07.014 UTC [35] LOG: listening on IPv6 address "::", port 5432
2024-04-16 04:27:07.016 UTC [35] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-04-16 04:27:07.024 UTC [44] LOG: database system was shut down at 2024-04-16 04:26:59 UTC
2024-04-16 04:27:07.030 UTC [35] LOG: database system is ready to accept connections
I, [2024-04-16T04:27:11.959331 #1] INFO -- :
I, [2024-04-16T04:27:11.959510 #1] INFO -- : > /usr/local/bin/create_db
2024-04-16 04:27:12.030 UTC [54] postgres@postgres ERROR: database "discourse" already exists
2024-04-16 04:27:12.030 UTC [54] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR: database "discourse" already exists
2024-04-16 04:27:12.089 UTC [57] postgres@discourse ERROR: role "discourse" already exists
2024-04-16 04:27:12.089 UTC [57] postgres@discourse STATEMENT: create user discourse;
ERROR: role "discourse" already exists
NOTICE: extension "hstore" already exists, skipping
NOTICE: extension "pg_trgm" already exists, skipping
NOTICE: extension "vector" already exists, skipping
NOTICE: extension "hstore" already exists, skipping
NOTICE: extension "pg_trgm" already exists, skipping
NOTICE: extension "vector" already exists, skipping
I, [2024-04-16T04:27:12.495382 #1] INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
UPDATE 0
I, [2024-04-16T04:27:12.495506 #1] INFO -- : > echo postgres installed!
I, [2024-04-16T04:27:12.498377 #1] INFO -- : postgres installed!
I, [2024-04-16T04:27:12.503359 #1] INFO -- : File > /etc/service/redis/run chmod: +x chown:
I, [2024-04-16T04:27:12.508813 #1] INFO -- : File > /etc/service/redis/log/run chmod: +x chown:
I, [2024-04-16T04:27:12.514019 #1] INFO -- : File > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2024-04-16T04:27:12.515024 #1] INFO -- : Replacing daemonize yes with in /etc/redis/redis.conf
I, [2024-04-16T04:27:12.515773 #1] INFO -- : Replacing (?-mix:^pidfile.*$) with in /etc/redis/redis.conf
I, [2024-04-16T04:27:12.516342 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2024-04-16T04:27:12.521412 #1] INFO -- :
I, [2024-04-16T04:27:12.521756 #1] INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2024-04-16T04:27:12.522348 #1] INFO -- : Replacing (?-mix:^bind .*$) with in /etc/redis/redis.conf
I, [2024-04-16T04:27:12.523040 #1] INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2024-04-16T04:27:12.523673 #1] INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2024-04-16T04:27:12.524231 #1] INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2024-04-16T04:27:12.524936 #1] INFO -- : > echo redis installed
I, [2024-04-16T04:27:12.528483 #1] INFO -- : redis installed
I, [2024-04-16T04:27:12.528734 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2024-04-16T04:27:12.533177 #1] INFO -- : logfile ""
I, [2024-04-16T04:27:12.533505 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-04-16T04:27:12.536383 #1] INFO -- : > sleep 10
97:C 16 Apr 2024 04:27:12.547 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
97:C 16 Apr 2024 04:27:12.547 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=97, just started
97:C 16 Apr 2024 04:27:12.547 # Configuration loaded
97:M 16 Apr 2024 04:27:12.548 * monotonic clock: POSIX clock_gettime
97:M 16 Apr 2024 04:27:12.549 * Running mode=standalone, port=6379.
97:M 16 Apr 2024 04:27:12.549 # Server initialized
97:M 16 Apr 2024 04:27:12.550 * Loading RDB produced by version 7.0.7
97:M 16 Apr 2024 04:27:12.550 * RDB age 14 seconds
97:M 16 Apr 2024 04:27:12.550 * RDB memory usage when created 16.10 Mb
97:M 16 Apr 2024 04:27:12.587 * Done loading RDB, keys loaded: 3352, keys expired: 13.
97:M 16 Apr 2024 04:27:12.587 * DB loaded from disk: 0.038 seconds
97:M 16 Apr 2024 04:27:12.587 * Ready to accept connections
I, [2024-04-16T04:27:22.538944 #1] INFO -- :
I, [2024-04-16T04:27:22.539374 #1] INFO -- : > thpoff echo "thpoff is installed!"
I, [2024-04-16T04:27:22.543511 #1] INFO -- : thpoff is installed!
I, [2024-04-16T04:27:22.543790 #1] INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2024-04-16T04:27:22.602903 #1] INFO -- :
I, [2024-04-16T04:27:22.602991 #1] INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2024-04-16T04:27:22.690663 #1] INFO -- :
I, [2024-04-16T04:27:22.690831 #1] INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2024-04-16T04:27:22.772957 #1] INFO -- :
I, [2024-04-16T04:27:22.773266 #1] INFO -- : > rm -f /etc/cron.d/anacron
I, [2024-04-16T04:27:22.777060 #1] INFO -- :
I, [2024-04-16T04:27:22.780213 #1] INFO -- : File > /etc/cron.d/anacron chmod: chown:
I, [2024-04-16T04:27:22.787317 #1] INFO -- : File > /etc/runit/1.d/copy-env chmod: +x chown:
I, [2024-04-16T04:27:22.793052 #1] INFO -- : File > /etc/service/unicorn/run chmod: +x chown:
I, [2024-04-16T04:27:22.797560 #1] INFO -- : File > /etc/service/nginx/run chmod: +x chown:
I, [2024-04-16T04:27:22.801026 #1] INFO -- : File > /etc/runit/3.d/01-nginx chmod: +x chown:
I, [2024-04-16T04:27:22.805620 #1] INFO -- : File > /etc/runit/3.d/02-unicorn chmod: +x chown:
I, [2024-04-16T04:27:22.805779 #1] INFO -- : Replacing # postgres with if [ -f /root/install_postgres ]; then
/root/install_postgres
rm /root/install_postgres
fi
sv start postgres || exit 1
in /etc/service/unicorn/run
I, [2024-04-16T04:27:22.807193 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
Updating files: 100% (33715/33715), done.
I, [2024-04-16T04:27:26.404988 #1] INFO -- : HEAD is now at 6ab1a19e9 DEV: Convert min_trust_level_to_allow_invite to groups (#24893)
I, [2024-04-16T04:27:26.405131 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-04-16T04:27:26.524171 #1] INFO -- :
I, [2024-04-16T04:27:26.524306 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
git remote set-branches --add origin main
git remote set-branches origin tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
From https://github.com/discourse/discourse
- [deleted] (none) -> origin/0-assets-spec2
- [deleted] (none) -> origin/0-drop-code
- [deleted] (none) -> origin/0-file-join-no
- [deleted] (none) -> origin/0-followup
- [deleted] (none) -> origin/0-gjs-iframed-html
- [deleted] (none) -> origin/a11y-sidebar-contrast
- [deleted] (none) -> origin/a11y–focus-tooltip
- [deleted] (none) -> origin/add-ds-store-to-gitignore
- [deleted] (none) -> origin/add-new-chat-indicator-preference-only-mentions
- [deleted] (none) -> origin/add-topic-voting-webhook
- [deleted] (none) -> origin/after-topic-list
- [deleted] (none) -> origin/api-reduce-motion
- [deleted] (none) -> origin/api-topic-title-decorator
- [deleted] (none) -> origin/boosted-searches
- [deleted] (none) -> origin/bulk-button-class
- [deleted] (none) -> origin/card-container-plugin-outlet
- [deleted] (none) -> origin/composer-warnings-use-notice-alt
- [deleted] (none) -> origin/confirm-session-only-after-5-mins
- [deleted] (none) -> origin/dependabot/bundler/excon-0.108.0
- [deleted] (none) -> origin/dependabot/bundler/hashdiff-1.1.0
- [deleted] (none) -> origin/dependabot/bundler/parallel-1.24.0
- [deleted] (none) -> origin/dependabot/bundler/rubocop-discourse-3.6.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.6.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.10.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/drop-target-2.0.2
- [deleted] (none) -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/utils-5.7.0
- [deleted] (none) -> origin/desktop-notification-handlers
- [deleted] (none) -> origin/dev-rework-codeblock-fix
- [deleted] (none) -> origin/dev/add-new-chat-metrics
- [deleted] (none) -> origin/dev/allow-chat-mentions-to-have-several-notifications
- [deleted] (none) -> origin/dev/convert-min-trust-level-to-create-tag-to-group
- [deleted] (none) -> origin/dev/convert-min-trust-level-to-ignore-to-groups
- [deleted] (none) -> origin/dev/drop-notification_id-column-on-chat-mentions
- [deleted] (none) -> origin/dev/dry-up-user-status-serializers
- [deleted] (none) -> origin/dev/flaky-chat-details-collapser-spec
- [deleted] (none) -> origin/dev/no-need-to-include-user-status-twice
- [deleted] (none) -> origin/dev/rafactor-the-export-csv-file-job
- [deleted] (none) -> origin/dev/rethink-mass-mentions-polymorphic
- [deleted] (none) -> origin/dev/revert-guardian-devex
- [deleted] (none) -> origin/dev/simplify-lib-test-js
- [deleted] (none) -> origin/dev/test-status-tooltip-in-its-own-test-2
- [deleted] (none) -> origin/dev/trust-level-value-object
- [deleted] (none) -> origin/dev_categories
- [deleted] (none) -> origin/dev_watched_words
- [deleted] (none) -> origin/drop-kit
- [deleted] (none) -> origin/experimantal/deleted-channel-and-messages-export
- [deleted] (none) -> origin/extract_stripper
- [deleted] (none) -> origin/feat-render-images-in-local-onebox
- [deleted] (none) -> origin/feature/admin-sidebar-v0
- [deleted] (none) -> origin/feature/bookmark-menu-and-modal-redesign
- [deleted] (none) -> origin/feature/experimental-passkeys
- [deleted] (none) -> origin/feature/migrations-schema-generator
- [deleted] (none) -> origin/feature/watched-word-groups
- [deleted] (none) -> origin/feature_watched_words_validation
- [deleted] (none) -> origin/filtered-events
- [deleted] (none) -> origin/fix-client-tests-for-status
- [deleted] (none) -> origin/fix-join-filter-upload
- [deleted] (none) -> origin/fix-modal-flash-minor
- [deleted] (none) -> origin/fix/count-mass-mentions-correctly
- [deleted] (none) -> origin/fix/do-not-consider-codeblocks-when-parsing-mentions-alt
- [deleted] (none) -> origin/fix/dont-fail-when-exporting-chat-messages-from-deleted-channels-or-of-deleted-users
- [deleted] (none) -> origin/fix/multi-tag-search
- [deleted] (none) -> origin/float-kit-3
- [deleted] (none) -> origin/generic-import-latest-snowflake
- [deleted] (none) -> origin/global-notice-reactive
- [deleted] (none) -> origin/group-directory-cleanup
- [deleted] (none) -> origin/issue/fix-guardian-init-basic-user
- [deleted] (none) -> origin/keyword-site-setting
- [deleted] (none) -> origin/labeler
- [deleted] (none) -> origin/large-notification-table
- [deleted] (none) -> origin/loic-use-ar-enums-posts
- [deleted] (none) -> origin/low-ram-help
- [deleted] (none) -> origin/migrations-convert
- [deleted] (none) -> origin/mobile-categories-refactor
- [deleted] (none) -> origin/mobile-view-param-key
- [deleted] (none) -> origin/move-automation-to-core
- [deleted] (none) -> origin/move-checkbox-public-up
- [deleted] (none) -> origin/move_inflector
- [deleted] (none) -> origin/multi-invite
- [deleted] (none) -> origin/noised
- [deleted] (none) -> origin/offline-indicator-by-default
- [deleted] (none) -> origin/passkeys-part-3
- [deleted] (none) -> origin/plugin-extra-js
- [deleted] (none) -> origin/poc/auto-after-before-plugin-outlets
- [deleted] (none) -> origin/poc/insert-before-after-wrapping-outlet
- [deleted] (none) -> origin/rails-6.x-update
- [deleted] (none) -> origin/rebake-quotes
- [deleted] (none) -> origin/redirect-cat-trail
- [deleted] (none) -> origin/reply-where-position
- [deleted] (none) -> origin/revert-maxmind
- [deleted] (none) -> origin/rotate-token-on-ip-change
- [deleted] (none) -> origin/search_refactor
- [deleted] (none) -> origin/security/bookmark-notification-unread-visibility
- [deleted] (none) -> origin/support-load-more-btn
- [deleted] (none) -> origin/table-builder-modal-modifier
- [deleted] (none) -> origin/test-issue-temporary
- [deleted] (none) -> origin/test-mentions-duplicates
- [deleted] (none) -> origin/tests-passed-broken
- [deleted] (none) -> origin/tmp/reimplement-all-and-here-mentions
- [deleted] (none) -> origin/topic-list-refactor
- [deleted] (none) -> origin/transform-hooks
- [deleted] (none) -> origin/transform-post-fn-api
- [deleted] (none) -> origin/tweaks-2-fr
- [deleted] (none) -> origin/update-login-modal-mark
- [deleted] (none) -> origin/user-group-messages-after-latest
- [deleted] (none) -> origin/username_cache
- [deleted] (none) -> origin/ux-add-sorting-params-to-outlet
- [deleted] (none) -> origin/watched-words-link
- [deleted] (none) -> origin/webauthn-internal-refactor
- [deleted] (none) -> origin/wip-close-on-click-outside-search
- [deleted] (none) -> origin/wip_categories
- [deleted] (none) -> origin/wizard-split
6ab1a19e9..7a083daf2 main -> origin/main
* [new branch] 0-drop-one-hbr -> origin/0-drop-one-hbr
* [new branch] 0-ember-bump -> origin/0-ember-bump
* [new branch] 0-extend-native -> origin/0-extend-native
* [new branch] 0-fix-perf-watched-words -> origin/0-fix-perf-watched-words
* [new branch] 0-rename-details -> origin/0-rename-details
* [new branch] after-post-outlet -> origin/after-post-outlet
* [new branch] allow-overriding-sidebar-my-posts-icon -> origin/allow-overriding-sidebar-my-posts-icon
* [new branch] allow-staff-to-tag -> origin/allow-staff-to-tag
* [new branch] asciinema-iframe -> origin/asciinema-iframe
* [new branch] async-category-link -> origin/async-category-link
* [new branch] attach_useful_ruby_methods_to_theme_migrations -> origin/attach_useful_ruby_methods_to_theme_migrations
* [new branch] category-link-ancestors -> origin/category-link-ancestors
* [new branch] chat-thread-title-cta -> origin/chat-thread-title-cta
* [new branch] d-object -> origin/d-object
* [new branch] decorator-transforms -> origin/decorator-transforms
* [new branch] dependabot/bundler/parallel_tests-4.4.0 -> origin/dependabot/bundler/parallel_tests-4.4.0
* [new branch] dependabot/npm_and_yarn/ember-cli-5.8.0 -> origin/dependabot/npm_and_yarn/ember-cli-5.8.0
* [new branch] dependabot/npm_and_yarn/ember-source-5.8.0 -> origin/dependabot/npm_and_yarn/ember-source-5.8.0
* [new branch] dependabot/npm_and_yarn/markdown-it-14.1.0 -> origin/dependabot/npm_and_yarn/markdown-it-14.1.0
* [new branch] dev-replace-transformed-post-with-topic-model-in-topic-map -> origin/dev-replace-transformed-post-with-topic-model-in-topic-map
* [new branch] dev/always-load-problem-checks -> origin/dev/always-load-problem-checks
* [new branch] dev/catch-missing-translations-during-test-runs -> origin/dev/catch-missing-translations-during-test-runs
* [new branch] dev/db-backed-admin-messages -> origin/dev/db-backed-admin-messages
* [new branch] dev/deprecate-found-user-with-status-serializer -> origin/dev/deprecate-found-user-with-status-serializer
* [new branch] dev/incremental-imports-experiments-base -> origin/dev/incremental-imports-experiments-base
* [new branch] dev/incremental-imports-experiments-pgloaded -> origin/dev/incremental-imports-experiments-pgloaded
* [new branch] dev/incremental-imports-experiments-virtualpg -> origin/dev/incremental-imports-experiments-virtualpg
* [new branch] dev/promote-inline-checks-to-problem-checks -> origin/dev/promote-inline-checks-to-problem-checks
* [new branch] dev/proof-of-concept-rewriting-mentions-notification-logic -> origin/dev/proof-of-concept-rewriting-mentions-notification-logic
* [new branch] dev/stylesheet_importer_categories_with_background_images-modifier -> origin/dev/stylesheet_importer_categories_with_background_images-modifier
* [new branch] dev_add_query_param -> origin/dev_add_query_param
* [new branch] dev_lazy_load_categories_tests -> origin/dev_lazy_load_categories_tests
* [new branch] dev_update_category_position -> origin/dev_update_category_position
* [new branch] docs-publishing-mvp -> origin/docs-publishing-mvp
* [new branch] extra-js-revert -> origin/extra-js-revert
* [new branch] feature/disable-failing-auth-methods -> origin/feature/disable-failing-auth-methods
* [new branch] feature/linkedin-oidc-logins -> origin/feature/linkedin-oidc-logins
* [new branch] feature/paste-upload-on-first-upload-input-templates -> origin/feature/paste-upload-on-first-upload-input-templates
* [new branch] feature_track_mentions -> origin/feature_track_mentions
* [new branch] fix-display-errors-for-history-modal-when-fetching-revisions -> origin/fix-display-errors-for-history-modal-when-fetching-revisions
* [new branch] fix/activity-summary-secure-images -> origin/fix/activity-summary-secure-images
* [new branch] fix_categories_ilike -> origin/fix_categories_ilike
* [new branch] fix_default_value_validation_fail -> origin/fix_default_value_validation_fail
* [new branch] fix_load_bookmarks_categories -> origin/fix_load_bookmarks_categories
* [new branch] fix_plus_subcategories -> origin/fix_plus_subcategories
* [new branch] fix_reviewable_translation -> origin/fix_reviewable_translation
* [new branch] formtoolkit -> origin/formtoolkit
* [new branch] generic-import-add-suspender -> origin/generic-import-add-suspender
7f2bdca65..17902b707 generic-import-latest -> origin/generic-import-latest
* [new branch] hijacks -> origin/hijacks
* [new branch] input-heading-fix -> origin/input-heading-fix
* [new branch] issue/fixup-upload-ref-backfill-migration-dates -> origin/issue/fixup-upload-ref-backfill-migration-dates
* [new branch] lazy-fabricators -> origin/lazy-fabricators
* [new branch] live-cache -> origin/live-cache
* [new branch] member-xp/mobile-modal -> origin/member-xp/mobile-modal
* [new branch] migrations-tooling/converter -> origin/migrations-tooling/converter
* [new branch] omniauth-2 -> origin/omniauth-2
* [new branch] powered-by-reactivity -> origin/powered-by-reactivity
* [new branch] promote-migration-tweak -> origin/promote-migration-tweak
* [new branch] remove-bootbox -> origin/remove-bootbox
* [new branch] remove-disable-sidebar -> origin/remove-disable-sidebar
* [new branch] see_if_yarn_cache_is_working -> origin/see_if_yarn_cache_is_working
* [new branch] shared-draft-category -> origin/shared-draft-category
* [new branch] skip-topic-bookmark-sync-user-destroy -> origin/skip-topic-bookmark-sync-user-destroy
d7f7f79b6..0d761a0c4 stable -> origin/stable
* [new branch] support-query-string -> origin/support-query-string
6ab1a19e9..cdc8e9de1 tests-passed -> origin/tests-passed
* [new branch] user-menu-full-name -> origin/user-menu-full-name
* [new branch] watched-word-groups -> origin/watched-word-groups
t [tag update] beta -> beta
t [tag update] latest-release -> latest-release
* [new tag] v3.1.4 -> v3.1.4
* [new tag] v3.1.5 -> v3.1.5
* [new tag] v3.2.0 -> v3.2.0
* [new tag] v3.2.0.beta4 -> v3.2.0.beta4
* [new tag] v3.2.0.beta5 -> v3.2.0.beta5
* [new tag] v3.2.1 -> v3.2.1
* [new tag] v3.3.0.beta1 -> v3.3.0.beta1
I, [2024-04-16T04:27:27.162657 #1] INFO -- :
I, [2024-04-16T04:27:27.162774 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
git pull
else
git -c advice.detachedHead=false checkout tests-passed
fi
'
Switched to a new branch 'tests-passed'
I, [2024-04-16T04:27:31.392098 #1] INFO -- : Branch 'tests-passed' set up to track remote branch 'tests-passed' from 'origin'.
我的更新中出现了错误
```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })
请帮我修复它。