From e9cf86c53605db3882f3a031c14396ff3a8501cc Mon Sep 17 00:00:00 2001 From: alondmnt Date: Wed, 16 Sep 2026 23:31:49 +1000 Subject: [PATCH 1/2] fix: run CI on automated framework update PRs peter-evans/create-pull-request was called without a token, so it fell back to GITHUB_TOKEN. GitHub deliberately suppresses workflow triggers for events raised by that token to avoid recursive runs, so ci.yml's pull_request trigger never fired on these PRs. The effect is visible on every one opened so far: #172 had zero check runs and a mergeStateStatus of UNSTABLE, which is why they sat unmerged. Nobody wants to approve a 22 file api change with no signal. Use FRAMEWORK_UPDATE_TOKEN when it is set, falling back to github.token so an unconfigured repository keeps working exactly as before rather than failing the run. The secret still needs creating for CI to actually run on these PRs. --- .github/workflows/update-framework.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/update-framework.yml b/.github/workflows/update-framework.yml index a9e27dc..35847b7 100644 --- a/.github/workflows/update-framework.yml +++ b/.github/workflows/update-framework.yml @@ -47,6 +47,14 @@ jobs: if: steps.changes.outputs.has_changes == 'true' uses: peter-evans/create-pull-request@v6 with: + # Without an explicit token this falls back to GITHUB_TOKEN, and + # GitHub suppresses workflow triggers for events raised by that + # token to avoid recursion. The result is a PR with zero check runs, + # which nobody can review with any confidence. Set + # FRAMEWORK_UPDATE_TOKEN to a PAT (or app token) with `repo` scope to + # get CI on these PRs. If it is unset, this degrades to the previous + # behaviour rather than failing the run. + token: ${{ secrets.FRAMEWORK_UPDATE_TOKEN || github.token }} commit-message: 'chore: routine joplin plugin framework update' title: 'chore: routine joplin plugin framework update' body: | From 63b2021d8ffeb182cd0e374d1d3de08fe5eb4e65 Mon Sep 17 00:00:00 2001 From: alondmnt Date: Wed, 16 Sep 2026 23:32:00 +1000 Subject: [PATCH 2/2] fix: stop the framework update opening a new PR every month branch-suffix: timestamp gave each monthly run its own branch, so the action always created a new pull request instead of updating the open one. generator-joplin publishes far less often than this workflow runs, so the queue filled with duplicates: #168, #170 and #172 were byte identical, all for a framework snapshot that had not changed since June. Dropping the suffix restores the action's normal behaviour of updating the existing PR in place, which leaves one rolling PR to review. delete-branch is already set, so the branch is still cleaned up once the PR is merged or closed. --- .github/workflows/update-framework.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-framework.yml b/.github/workflows/update-framework.yml index 35847b7..9bde9fc 100644 --- a/.github/workflows/update-framework.yml +++ b/.github/workflows/update-framework.yml @@ -66,8 +66,11 @@ jobs: ```json ${{ steps.new-tsconfig-json.outputs.content }} ``` + # No branch-suffix: a fixed branch name makes the action update the + # existing open PR in place each month. With a timestamp suffix every + # run got its own branch and opened a fresh PR, so #168, #170 and #172 + # ended up as three byte-identical PRs for a diff that had not moved. branch: chore/update-plugin-framework - branch-suffix: timestamp committer: Albus author: Albus delete-branch: true