Skip to content

CI: add ClawHub plugin release workflow#59179

Merged
onutc merged 10 commits into
mainfrom
onur/clawhub-oidc-plugin-publish
Apr 3, 2026
Merged

CI: add ClawHub plugin release workflow#59179
onutc merged 10 commits into
mainfrom
onur/clawhub-oidc-plugin-publish

Conversation

@onutc

@onutc onutc commented Apr 1, 2026

Copy link
Copy Markdown

Summary

  • add a ClawHub plugin release workflow with preview on push and real publish on manual dispatch with a protected environment and GitHub OIDC
  • add planner and checker scripts that select publishable plugins, enforce version bumps for already opted-in plugins, and compare repo versions with ClawHub
  • opt the current bundled plugins into ClawHub publishing with openclaw.release.publishToClawHub: true

Testing

  • pnpm test -- test/plugin-clawhub-release.test.ts
  • pnpm release:plugins:clawhub:check -- --base-ref origin/main --head-ref HEAD
  • pnpm release:plugins:clawhub:plan -- --base-ref origin/main --head-ref HEAD
  • pnpm check
  • pnpm build

Notes

@openclaw-barnacle openclaw-barnacle Bot added channel: bluebubbles Channel integration: bluebubbles channel: discord Channel integration: discord channel: msteams Channel integration: msteams channel: nextcloud-talk Channel integration: nextcloud-talk channel: nostr Channel integration: nostr channel: voice-call Channel integration: voice-call channel: whatsapp-web Channel integration: whatsapp-web channel: zalo Channel integration: zalo channel: zalouser Channel integration: zalouser extensions: diagnostics-otel Extension: diagnostics-otel extensions: lobster Extension: lobster extensions: memory-lancedb Extension: memory-lancedb scripts Repository scripts channel: feishu Channel integration: feishu channel: qqbot size: XL maintainer Maintainer-authored PR labels Apr 1, 2026
@aisle-research-bot

aisle-research-bot Bot commented Apr 1, 2026

Copy link
Copy Markdown

🔒 Aisle Security Analysis

We found 2 potential security issue(s) in this PR:

# Severity Title
1 🟠 High Unpinned external repository checkout executed in OIDC-enabled release workflow (supply-chain RCE)
2 🟠 High GitHub Actions supply-chain RCE via bun install on external repo in OIDC-enabled release workflow
1. 🟠 Unpinned external repository checkout executed in OIDC-enabled release workflow (supply-chain RCE)
Property Value
Severity High
CWE CWE-829
Location .github/workflows/plugin-clawhub-release.yml:38-45

Description

The release workflow fetches and executes code from an external repository (openclaw/clawhub) using a mutable ref (main) and then uses that code (via bun .../cli.ts) in the publish_plugins_clawhub job, which has id-token: write.

This creates a supply-chain risk:

  • Input: external repo content at CLAWHUB_REPOSITORY=openclaw/clawhub is checked out at CLAWHUB_REF=main (mutable)
  • Execution sink: workflow bootstraps a clawhub wrapper that directly executes the checked-out TypeScript CLI (exec bun .../cli.ts)
  • Privilege: publish_plugins_clawhub job has id-token: write, enabling OIDC token minting; compromised external code could use this to impersonate the workflow to ClawHub (or other OIDC trust relationships) and/or tamper with releases

environment: clawhub-release and “Validate ref is on main” protect which source repo commit is being released, but do not protect against compromise of the external openclaw/clawhub repo or movement of its main branch.

Vulnerable code (external checkout + execution in OIDC job):

permissions:
  contents: read
  id-token: write
...
- name: Checkout ClawHub CLI source
  uses: actions/checkout@​v6
  with:
    repository: ${{ env.CLAWHUB_REPOSITORY }}
    ref: ${{ env.CLAWHUB_REF }}
...
- name: Bootstrap ClawHub CLI
  run: |
    exec bun "$GITHUB_WORKSPACE/clawhub-source/packages/clawdhub/src/cli.ts" "$@"

Recommendation

Pin and verify the external dependency used for publishing.

Recommended options (in order of strength):

  1. Pin to an immutable commit SHA (or a signed/tagged release) instead of main:
env:
  CLAWHUB_REPOSITORY: openclaw/clawhub
  CLAWHUB_REF: <FULL_COMMIT_SHA>

- name: Checkout ClawHub CLI source
  uses: actions/checkout@​v6
  with:
    repository: ${{ env.CLAWHUB_REPOSITORY }}
    ref: ${{ env.CLAWHUB_REF }}
    path: clawhub-source
    fetch-depth: 1
  1. Add a verification step (e.g., verify a Git tag signature, or verify the checked-out commit hash matches an allowlist) before executing the CLI.

  2. Prefer consuming published release artifacts (e.g., prebuilt CLI binaries) from a trusted, pinned source rather than executing arbitrary repo source.

Additionally, consider pinning actions/checkout to a commit SHA to reduce action supply-chain risk:

uses: actions/checkout@<pinned_sha>
2. 🟠 GitHub Actions supply-chain RCE via `bun install` on external repo in OIDC-enabled release workflow
Property Value
Severity High
CWE CWE-494
Location .github/workflows/plugin-clawhub-release.yml:180-190

Description

The workflow checks out an external repository (openclaw/clawhub) and runs bun install --frozen-lockfile inside it. Package managers typically execute dependency lifecycle scripts (e.g., postinstall) during install unless scripts are explicitly disabled.

Impact:

  • The external repo (and its transitive dependencies) can execute arbitrary code on the GitHub runner during the workflow.
  • In the publish_plugins_clawhub job, the workflow grants id-token: write, enabling GitHub OIDC token minting. If any install-time script is compromised, it could:
    • exfiltrate the OIDC token or request a fresh one,
    • use it to obtain ClawHub publish credentials,
    • tamper with the publish step or leak other secrets/artifacts.

This creates a high-impact supply-chain/RCE surface, especially since the external repo is checked out from a moving ref (main).

Vulnerable code:

- name: Checkout ClawHub CLI source
  uses: actions/checkout@​v6
  with:
    repository: ${{ env.CLAWHUB_REPOSITORY }}
    ref: ${{ env.CLAWHUB_REF }}
    path: clawhub-source

- name: Install ClawHub CLI dependencies
  working-directory: clawhub-source
  run: bun install --frozen-lockfile

Recommendation

Mitigate install-time script execution and reduce trust/privilege:

  1. Disable lifecycle scripts during install (if feasible for the CLI build):
- name: Install ClawHub CLI dependencies (no scripts)
  working-directory: clawhub-source
  run: bun install --frozen-lockfile --ignore-scripts

If the CLI requires build steps, prefer running explicit, audited build commands rather than arbitrary dependency scripts.

  1. Pin the external checkout to an immutable ref (tag/commit SHA) instead of a moving branch:
env:
  CLAWHUB_REF: "<pinned-commit-sha>"
  1. Separate privileges: run the external-repo install/build in a job/step without id-token: write, and only perform the OIDC-authenticated publish in a later step/job after artifacts are produced and validated.

  2. Consider using a prebuilt, versioned ClawHub CLI release (artifact/container) instead of building from source in CI.


Analyzed PR: #59179 at commit fea4c0a

Last updated on: 2026-04-01T19:16:17Z

Latest run failed. Keeping previous successful results. Trace ID: 019d4d52af4156b1b97a1a32589d6bbf.

Last updated on: 2026-04-02T09:08:40Z

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3ee702444d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .github/workflows/plugin-clawhub-release.yml Outdated
Comment thread scripts/lib/plugin-clawhub-release.ts Outdated
@greptile-apps

greptile-apps Bot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces a complete ClawHub plugin registry release pipeline: a GitHub Actions workflow (plugin-clawhub-release.yml), a planner/checker library (scripts/lib/plugin-clawhub-release.ts), a publish shell script, and opt-in metadata for all current bundled extensions. The new workflow previews on every push to main (using a dry-run) and performs real publishes only on manual workflow_dispatch backed by a protected clawhub-release environment and GitHub OIDC, which is a solid security model.

Key highlights:

  • The SHA-pinning check (GITHUB_SHA vs inputs.ref) correctly ensures OIDC tokens cannot be issued for arbitrary commits, providing a strong supply-chain guarantee.
  • The version-gate logic correctly skips the version-bump requirement for first-time opt-ins and handles null git refs (initial push) safely.
  • PACKAGE_NAME and PACKAGE_VERSION in the pre-publish guard are correctly passed via env vars, following GitHub's injection-prevention guidance — the same pattern should be extended to matrix.plugin.packageDir in the two plugin-clawhub-publish.sh invocations (currently interpolated directly into the run block).
  • The "Ensure version is not already published" shell guard only matches HTTP 200, while the TypeScript counterpart uses response.ok (all 2xx); these should be kept consistent.

Confidence Score: 5/5

  • Safe to merge; all open findings are minor style/consistency suggestions that don't affect correctness in the expected deployment paths.
  • Both findings are P2: one is a best-practice recommendation about using env vars for matrix context values (low practical risk since packageDir is repo-controlled), and the other is an inconsistency between the shell 200-only check and the TypeScript response.ok check (unlikely to matter for a standard GET endpoint). No P0/P1 issues were found. The core OIDC security model, version-gate logic, and SHA-pinning checks are all correctly implemented.
  • .github/workflows/plugin-clawhub-release.yml — the two plugin-clawhub-publish.sh invocations (lines 200 and 269) and the HTTP status guard (lines 254–261) are worth a quick look before merge.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: .github/workflows/plugin-clawhub-release.yml
Line: 200

Comment:
**Direct context interpolation of matrix value into shell**

`${{ matrix.plugin.packageDir }}` is interpolated directly into the `run` block, which is against GitHub's [security hardening guidance](https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable) for untrusted context values. While `packageDir` is derived from the repository's own `extensions/` directory names (low practical risk), the same pattern repeated at line 269 (in the real publish step) should be addressed to follow best practices.

The recommended fix is to pass it through an environment variable so the shell receives it as an already-evaluated string rather than an inline expression:

```suggestion
        env:
          CLAWHUB_REGISTRY: ${{ env.CLAWHUB_REGISTRY }}
          SOURCE_REPO: ${{ github.repository }}
          SOURCE_COMMIT: ${{ needs.preview_plugins_clawhub.outputs.ref_sha }}
          SOURCE_REF: ${{ github.ref }}
          PACKAGE_DIR: ${{ matrix.plugin.packageDir }}
        run: bash scripts/plugin-clawhub-publish.sh --dry-run "${PACKAGE_DIR}"
```

The same change should be applied to the `Publish` step at line 269.

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: .github/workflows/plugin-clawhub-release.yml
Line: 254-261

Comment:
**Already-published guard only checks HTTP 200, not all 2xx**

The guard only treats `200` as "already published" and treats any other non-`404` status as an unexpected error that aborts. Meanwhile `isPluginVersionPublishedOnClawHub` in `scripts/lib/plugin-clawhub-release.ts` uses `response.ok` (all 2xx statuses) for the same semantic. If ClawHub's API ever returns a `201` or `204` for an existing package (e.g., after a format migration), this shell guard would abort with "Unexpected ClawHub response" instead of the intended idempotency error, and the mismatch between the two code paths could cause confusing failures.

Consider aligning the check with the TypeScript logic:

```suggestion
          if [[ "${status}" =~ ^2 ]]; then
            echo "${PACKAGE_NAME}@${PACKAGE_VERSION} is already published on ClawHub."
            exit 1
          fi
          if [[ "${status}" != "404" ]]; then
            echo "Unexpected ClawHub response (${status}) for ${PACKAGE_NAME}@${PACKAGE_VERSION}."
            exit 1
          fi
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "CI: add ClawHub plugin release workflow" | Re-trigger Greptile

Comment thread .github/workflows/plugin-clawhub-release.yml Outdated
Comment thread .github/workflows/plugin-clawhub-release.yml Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3bab22e87c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .github/workflows/plugin-clawhub-release.yml

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 468b87884d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread scripts/lib/plugin-clawhub-release.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fea4c0acb9

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .github/workflows/plugin-clawhub-release.yml

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 27328eac61

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread scripts/lib/plugin-clawhub-release.ts Outdated
@onutc

onutc commented Apr 1, 2026

Copy link
Copy Markdown
Author

Follow-up on the bot summary comments:

  • PACKAGE_DIR now goes through an env var in both preview and publish.
  • The already-published guard now treats any 2xx as published, matching the TypeScript helper.
  • The workflow trigger list now also covers the local setup action and the shared npm release helper paths.

One remaining caveat from the Aisle comment is real: this workflow still checks out openclaw/clawhub from a mutable ref. I did not pin that to the current ClawHub PR branch commit because that would be brittle before the paired ClawHub PR lands. Before landing this OpenClaw PR, CLAWHUB_REF should be switched to an immutable ClawHub commit or release artifact.

@onutc

onutc commented Apr 1, 2026

Copy link
Copy Markdown
Author

Final maintainer note:

What changed

  • ClawHub plugin release preview/publish now covers shared-input changes correctly, including the local setup action path by prefix;
  • the workflow no longer shells matrix.plugin.packageDir directly and the already-published guard now treats any 2xx as published;
  • push-path coverage now includes the shared helper files the workflow actually depends on.

Local validation

  • pnpm test -- test/plugin-clawhub-release.test.ts
  • pnpm release:plugins:clawhub:check -- --base-ref origin/main --head-ref HEAD
  • pnpm release:plugins:clawhub:plan -- --base-ref origin/main --head-ref HEAD
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/plugin-clawhub-release.yml")'
  • PATH="$tmpdir:$PATH" PACKAGE_TAG=beta SOURCE_REPO=openclaw/openclaw SOURCE_COMMIT=$(git rev-parse HEAD) SOURCE_REF=refs/heads/onur/clawhub-oidc-plugin-publish bash scripts/plugin-clawhub-publish.sh --dry-run extensions/discord (run earlier against the source-backed ClawHub wrapper)

Notes

  • All inline review threads are resolved on the latest head.
  • The only remaining design caveat is the mutable CLAWHUB_REF: before landing this PR, it should point to an immutable ClawHub commit or release artifact after the paired ClawHub PR lands.
  • GitHub checks are green except install-smoke, which is still actively running on the latest head at the time of this comment.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 044f49b209

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .github/workflows/plugin-clawhub-release.yml Outdated
@onutc

onutc commented Apr 1, 2026

Copy link
Copy Markdown
Author

Follow-up is done.

Latest fix:

  • pinned CLAWHUB_REF to reviewed commit 0cb0db9786be074aa820e5dd330cd1142158b62d so the workflow no longer runs ClawHub from a moving branch ref

Validation:

  • pnpm release:plugins:clawhub:check -- --base-ref origin/main --head-ref HEAD
  • pnpm release:plugins:clawhub:plan -- --base-ref origin/main --head-ref HEAD
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/plugin-clawhub-release.yml")'
  • earlier dry-run smoke of bash scripts/plugin-clawhub-publish.sh --dry-run extensions/discord using the checked-out ClawHub source and explicit PACKAGE_TAG / SOURCE_REPO / SOURCE_COMMIT / SOURCE_REF
  • pnpm test -- test/plugin-clawhub-release.test.ts still fails locally before Vitest starts because the local pnpm wrapper at /Users/onur/Library/pnpm/.tools/@pnpm+macos-arm64/10.32.1/node_modules/@pnpm/macos-arm64/pnpm throws SyntaxError: Invalid or unexpected token
  • codex review --base main followed by replying to and resolving the resulting PR threads

Current PR state:

  • all PR checks are green
  • unresolved review threads: 0

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a8ba66d9d9

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

if [[ "${candidate_count}" != "0" ]]; then
has_candidates="true"
fi
matrix_json="$(jq -c '.candidates' .local/plugin-clawhub-release-plan.json)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use full selection for push preview dry-runs

The preview matrix is sourced from .candidates (only not-yet-published versions), and preview_plugin_pack is skipped when that list is empty, so a push that changes shared release tooling can go green without running any dry-run package publish once existing plugin versions are already on ClawHub; that leaves regressions in the publish path undiscovered until a later manual release. Fresh evidence relative to the earlier “shared-input fanout” thread is that this line still narrows the matrix to .candidates rather than the selected .all set.

Useful? React with 👍 / 👎.

@onutc
onutc force-pushed the onur/clawhub-oidc-plugin-publish branch from a8ba66d to 6e557bc Compare April 3, 2026 13:00

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6e557bc64d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

- main
paths:
- ".github/workflows/plugin-clawhub-release.yml"
- ".github/actions/setup-node-env/**"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Track setup-pnpm-store-cache changes in push trigger

Add .github/actions/setup-pnpm-store-cache/** to this workflow’s on.push.paths. I checked .github/actions/setup-node-env/action.yml and that composite action delegates to ./.github/actions/setup-pnpm-store-cache; with the current allowlist, edits to that helper won’t trigger plugin-clawhub-release.yml, so environment/setup regressions in the release path can merge without this workflow running.

Useful? React with 👍 / 👎.

@onutc
onutc merged commit fa9e1e3 into main Apr 3, 2026
9 checks passed
@onutc
onutc deleted the onur/clawhub-oidc-plugin-publish branch April 3, 2026 13:40
lovewanwan pushed a commit to lovewanwan/openclaw that referenced this pull request Apr 28, 2026
* CI: add ClawHub plugin release workflow

* CI: harden ClawHub plugin release workflow

* CI: finish ClawHub plugin release hardening

* CI: watch shared ClawHub release inputs

* CI: harden ClawHub publish workflow

* CI: watch more ClawHub release deps

* CI: match shared release inputs by prefix

* CI: pin ClawHub publish source commit

* CI: refresh pinned ClawHub release commit

* CI: rename ClawHub plugin release environment

---------

Co-authored-by: Onur Solmaz <[email protected]>
ogt-redknie pushed a commit to ogt-redknie/OPENX that referenced this pull request May 2, 2026
* CI: add ClawHub plugin release workflow

* CI: harden ClawHub plugin release workflow

* CI: finish ClawHub plugin release hardening

* CI: watch shared ClawHub release inputs

* CI: harden ClawHub publish workflow

* CI: watch more ClawHub release deps

* CI: match shared release inputs by prefix

* CI: pin ClawHub publish source commit

* CI: refresh pinned ClawHub release commit

* CI: rename ClawHub plugin release environment

---------

Co-authored-by: Onur Solmaz <[email protected]>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 9, 2026
* CI: add ClawHub plugin release workflow

* CI: harden ClawHub plugin release workflow

* CI: finish ClawHub plugin release hardening

* CI: watch shared ClawHub release inputs

* CI: harden ClawHub publish workflow

* CI: watch more ClawHub release deps

* CI: match shared release inputs by prefix

* CI: pin ClawHub publish source commit

* CI: refresh pinned ClawHub release commit

* CI: rename ClawHub plugin release environment

---------

Co-authored-by: Onur Solmaz <[email protected]>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
* CI: add ClawHub plugin release workflow

* CI: harden ClawHub plugin release workflow

* CI: finish ClawHub plugin release hardening

* CI: watch shared ClawHub release inputs

* CI: harden ClawHub publish workflow

* CI: watch more ClawHub release deps

* CI: match shared release inputs by prefix

* CI: pin ClawHub publish source commit

* CI: refresh pinned ClawHub release commit

* CI: rename ClawHub plugin release environment

---------

Co-authored-by: Onur Solmaz <[email protected]>
Nachx639 pushed a commit to Nachx639/clawdbot that referenced this pull request Jun 17, 2026
* CI: add ClawHub plugin release workflow

* CI: harden ClawHub plugin release workflow

* CI: finish ClawHub plugin release hardening

* CI: watch shared ClawHub release inputs

* CI: harden ClawHub publish workflow

* CI: watch more ClawHub release deps

* CI: match shared release inputs by prefix

* CI: pin ClawHub publish source commit

* CI: refresh pinned ClawHub release commit

* CI: rename ClawHub plugin release environment

---------

Co-authored-by: Onur Solmaz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: bluebubbles Channel integration: bluebubbles channel: discord Channel integration: discord channel: feishu Channel integration: feishu channel: msteams Channel integration: msteams channel: nextcloud-talk Channel integration: nextcloud-talk channel: nostr Channel integration: nostr channel: qqbot channel: voice-call Channel integration: voice-call channel: whatsapp-web Channel integration: whatsapp-web channel: zalo Channel integration: zalo channel: zalouser Channel integration: zalouser extensions: diagnostics-otel Extension: diagnostics-otel extensions: lobster Extension: lobster extensions: memory-lancedb Extension: memory-lancedb maintainer Maintainer-authored PR scripts Repository scripts size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants