Thank you for your interest in contributing! This document provides guidelines for contributing to the Runpod Public Endpoints n8n Community Node.
- Node.js 18+
- npm or yarn
- Git
- n8n instance for testing
-
Fork and Clone
git clone https://github.com/runpod/n8n-nodes.git cd n8n-nodes -
Install Dependencies
npm install
-
Build the Node
npm run build
-
Link for Development
npm link
-
Start n8n
n8n dev
- Use TypeScript for all new code
- Follow existing naming conventions
- Add JSDoc comments for public methods
- Use meaningful variable and function names
- Test all operation types (text, image, video, audio)
- Test error scenarios (invalid API key, malformed JSON)
- Test async operations with polling
- Test model dropdown filtering
- Text generation works
- Image generation works
- Video generation works
- Audio processing works
- Status checking works
- Error handling works
- Model dropdown filters correctly
- Credentials work properly
When reporting bugs, please include:
-
Environment
- n8n version
- Node.js version
- Operating system
-
Steps to Reproduce
- Clear, numbered steps
- Expected vs actual behavior
-
Error Messages
- Full error logs
- Screenshots if applicable
-
Additional Context
- Workflow configuration
- API key status (without sharing the key)
When suggesting features:
-
Describe the Problem
- What use case does this solve?
- How does it improve the user experience?
-
Propose a Solution
- Clear description of the feature
- Mockups or examples if applicable
-
Consider Alternatives
- Are there existing workarounds?
- How does this fit with the existing API?
-
Create a Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Write clean, documented code
- Add tests if applicable
- Update documentation as needed
- Ensure code passes linting and type checking
-
Test Thoroughly
npm run lint npm run build
- Test all affected functionality
- Ensure no regressions
-
Submit PR
- Clear title and description
- Link to related issues
- Include screenshots for UI changes
- Code follows project style guidelines
- Self-review completed
- Build passes:
npm run build - Lint passes:
npm run lint - Documentation updated
- No breaking changes (or clearly documented)
- All CI checks pass
We use Changesets to manage versioning and releases.
When you make changes that should be released, create a changeset:
npm run changeset -- addThis will prompt you to:
- Choose the type of change:
- patch: Bug fixes, small improvements
- minor: New features, backwards compatible changes
- major: Breaking changes
- Write a summary of the changes
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature-nameCreate a PR to merge your changes into main. The changeset file will be included in your PR.
Once your PR is merged to main:
-
Version PR Created: Changesets action creates a PR with:
- Updated version numbers in
package.json - Generated
CHANGELOG.mdentries - Consumed changeset files
- Updated version numbers in
-
Publish Release: When the version PR is merged:
- Package is built:
npm run build - Published to npm with OIDC/trusted publishers
- GitHub Release created automatically
- Package is built:
- Patch (1.0.0 → 1.0.1): Bug fixes, documentation updates
- Minor (1.0.0 → 1.1.0): New features, improvements
- Major (1.0.0 → 2.0.0): Breaking changes
If you need to publish manually without the workflow:
# Update versions and generate changelog
npm run changeset:version
# Build
npm run build
# Publish to npm
npm run changeset:publish- Always create changesets for user-facing changes
- Write clear changeset summaries - they become changelog entries
- Test thoroughly before creating PRs
- Follow semantic versioning when choosing change types
- Keep PRs focused - one feature/fix per PR
- GitHub Issues: For bugs and feature requests
- GitHub Discussions: For questions and general discussion
- Runpod Support: For API-related questions
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing! 🎉