mirror of
https://github.com/ether/etherpad-lite.git
synced 2026-07-19 01:24:19 +00:00
ep_readonly_guest is archived (read-only on GitHub) and its authenticate hook unconditionally swaps req.session.user with a read-only guest, even when the request carries an HTTP Authorization header. That silently demoted admin login attempts and stalled the anonymizeAuthorSocket tests for 14 min/run on every with-plugins CI matrix (#7795). The pre-fix theory blamed ep_hash_auth.handleMessage; the actual hook trace is a red herring — handleMessage only fires on the /pad namespace and never on /settings. ep_guest is the maintained successor (same authors, same purpose). 1.0.72 on npm already includes the "defer to basic auth / admin paths" fix backported to ep_readonly_guest by intent here. Swapping the matrix unblocks the anonymizeAuthorSocket suite on Linux, Windows, and the upgrade-from-latest-release workflow. The runtime probe added in #7796 stays — it still catches any other authenticate-hook plugin that rejects the test's plain-text credentials (e.g. a future ep_hash_auth-style hashed-only plugin). Reattribute its comment so future readers don't chase ep_hash_auth. Closes #7795. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
103 lines
3.1 KiB
YAML
103 lines
3.1 KiB
YAML
name: "Upgrade from latest release"
|
|
|
|
# any branch is useful for testing before a PR is submitted
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- "doc/**"
|
|
pull_request:
|
|
paths-ignore:
|
|
- "doc/**"
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
PNPM_HOME: ~/.pnpm-store
|
|
|
|
jobs:
|
|
withpluginsLinux:
|
|
# run on pushes to any branch
|
|
# run on PRs from external forks
|
|
if: |
|
|
(github.event_name != 'pull_request')
|
|
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
|
|
name: Linux with Plugins
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# Etherpad requires Node >= 24 (see package.json engines.node).
|
|
node: ${{ fromJSON('[24]') }}
|
|
steps:
|
|
-
|
|
name: Check out latest release
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
-
|
|
name: Check out latest release tag
|
|
run: git checkout "$(git tag --list 'v*' --sort=-version:refname | head -n1)"
|
|
- uses: actions/cache@v5
|
|
name: Cache pnpm store
|
|
with:
|
|
path: ${{ env.PNPM_HOME }}
|
|
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pnpm-store-
|
|
- uses: pnpm/action-setup@v6
|
|
name: Install pnpm
|
|
with:
|
|
run_install: false
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
cache: pnpm
|
|
- name: Install libreoffice
|
|
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
|
|
with:
|
|
packages: libreoffice libreoffice-pdfimport
|
|
version: 1.0
|
|
-
|
|
name: Install all dependencies and symlink for ep_etherpad-lite
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Build admin ui
|
|
working-directory: admin
|
|
run: pnpm build
|
|
-
|
|
name: Install Etherpad plugins
|
|
run: >
|
|
pnpm run install-plugins
|
|
ep_align
|
|
ep_author_hover
|
|
ep_cursortrace
|
|
ep_font_size
|
|
ep_hash_auth
|
|
ep_headings2
|
|
ep_markdown
|
|
ep_guest
|
|
ep_set_title_on_pad
|
|
ep_spellcheck
|
|
ep_subscript_and_superscript
|
|
ep_table_of_contents
|
|
-
|
|
name: Run the backend tests
|
|
run: pnpm run test
|
|
-
|
|
name: Install all dependencies and symlink for ep_etherpad-lite
|
|
run: pnpm install --frozen-lockfile
|
|
# The job starts from the latest release tag, so fetch the pull-request
|
|
# ref explicitly before checking out ${GITHUB_SHA}. A plain "git fetch"
|
|
# only brings "normal" references (refs/heads/* and refs/tags/*), and for
|
|
# pull requests none of those include the synthetic merge commit.
|
|
-
|
|
name: Fetch the new Git commits
|
|
run: git fetch --depth=1 origin "${GITHUB_REF}"
|
|
-
|
|
name: Upgrade to the new Git revision
|
|
# For pull requests, ${GITHUB_SHA} is the automatically generated merge
|
|
# commit that merges the PR's source branch to its destination branch.
|
|
run: git checkout "${GITHUB_SHA}"
|
|
- name: Run the backend tests
|
|
run: pnpm run test
|