Files
mem0/.github/workflows/n8n-nodes-mem0-cd.yml
T
Himanshu-Sangshetti 41a9701d7f feat(integrations): add n8n community node for Mem0
A programmatic n8n community node wrapping the hosted Mem0 v3 REST API:
add, search, get, get-many, update, delete, plus usableAsTool so the n8n
AI Agent can call it.

- Zero runtime dependencies (calls REST directly), TypeScript, ESLint clean —
  meets n8n verified-node requirements
- Add supports custom_instructions, custom_categories, includes, excludes,
  a client-side entity-id guard, and async event polling (itemIndex on errors)
- Anonymous opt-out telemetry (MEM0_TELEMETRY=false)
- Docs page + docs.json/llms.txt entry, ci-gate + release wiring, AGENTS.md rows
- Verified: tsc + ESLint + live E2E (add → search → get → delete) vs api.mem0.ai

Split out of #6057 per review (separate PRs per integration).
2026-07-23 03:02:18 +05:30

61 lines
1.7 KiB
YAML

name: Publish n8n-nodes-mem0 📦 to npm
# Dispatched by release.yml (Release Router) when a release tagged
# n8n-nodes-mem0-v* is published. Can also be dispatched manually to
# re-publish a tag.
on:
workflow_dispatch:
inputs:
tag:
description: 'Release tag to build and publish (e.g. n8n-nodes-mem0-v0.1.0)'
required: true
type: string
prerelease:
description: 'Publish under the version preid dist-tag instead of latest'
required: false
type: boolean
default: false
jobs:
build-n-publish:
name: Build and publish n8n-nodes-mem0 📦 to npm
if: startsWith(inputs.tag, 'n8n-nodes-mem0-v')
runs-on: ubuntu-latest
permissions:
id-token: write
defaults:
run:
working-directory: integrations/n8n-nodes-mem0
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.tag }}
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
cache-dependency-path: integrations/n8n-nodes-mem0/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Build
run: pnpm run build
- name: Publish to npm
run: |
if [ "${{ inputs.prerelease }}" = "true" ]; then
PREID=$(node -p "require('./package.json').version.split('-')[1].split('.')[0]")
npx npm@latest publish --provenance --access public --tag "$PREID"
else
npx npm@latest publish --provenance --access public
fi