RedPlanetHQ/core

New Integration: Trello

开放

#489 创建于 2026年2月24日

 (0 条评论) (0 个反应) (1 位负责人)TypeScript (184 个派生)auto 404
enhancementgood first issueintegrationnew-featurenew-integration

仓库指标

星标
 (1,930 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

Description

Add Trello integration to sync boards, cards, lists, and activity into CORE.

Reference Implementations

Existing Integrations (use as templates)

  • integrations/linear/ - Similar project management system
  • integrations/github/ - OAuth-based integration
  • integrations/slack/ - For reference

Required Files Structure

integrations/trello/
├── src/
│   ├── index.ts          # Main entry, OAuth spec
│   ├── schedule.ts       # Sync logic
│   ├── utils.ts          # Trello API utilities
│   ├── account-create.ts # OAuth setup
│   └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md

Trello API Integration

OAuth Setup

  • Use OAuth 1.0a (Trello uses legacy OAuth 1.0a) or API Key + Token
  • API Version: v1
  • Base URL: https://api.trello.com/1/
  • Authorization URL: https://trello.com/1/authorize
  • Request Token URL: https://trello.com/1/OAuthGetRequestToken
  • Access Token URL: https://trello.com/1/OAuthGetAccessToken
  • Required scopes:
    • read - Read access to boards, cards, lists, members
    • write - Write access to boards, cards, lists
    • account - Read access to member account information
  • Note: API keys are obtained by creating a Trello Power-Up

Key Endpoints

  • GET /1/members/me - Get current member info
  • GET /1/members/me/boards - Get member's boards
  • GET /1/boards/{id} - Get board details
  • GET /1/boards/{id}/lists - Get lists on a board
  • GET /1/boards/{id}/cards - Get cards on a board
  • GET /1/boards/{id}/actions - Get board activity/actions
  • GET /1/boards/{id}/members - Get board members
  • GET /1/cards/{id} - Get card details
  • GET /1/cards/{id}/actions - Get card activity
  • GET /1/lists/{id}/cards - Get cards in a list
  • GET /1/boards/{id}/checklists - Get board checklists
  • GET /1/boards/{id}/labels - Get board labels

Events to Track

  1. Cards

    • Card created, updated, moved between lists
    • Card archived/unarchived
    • Comments added to cards
    • Checklist items completed/uncompleted
    • Due date changes
    • Label additions/removals
  2. Boards & Lists

    • Board created/updated/closed
    • List created/moved/archived
    • Member added/removed from board
  3. Assignments & Activity

    • Member assigned/unassigned from cards
    • Attachment uploads
    • Custom field updates

Implementation Tasks

  • Set up basic integration structure following integrations/linear/src/index.ts pattern
  • Implement OAuth 1.0a or API Key + Token flow in account-create.ts
  • Create Trello API utilities in utils.ts
  • Implement sync logic in schedule.ts using board actions endpoint
  • Convert Trello actions/events to CORE activity format
  • Add error handling and rate limiting
  • Create integration documentation
  • Add to integrations/README.md

Technical Notes

  • Trello uses OAuth 1.0a (not OAuth 2.0). Consider using a library like oauth-1.0a for Node.js.
  • Rate limit: 100 requests per 10-second window per API key, and 300 requests per 10 seconds per token.
  • Board actions endpoint supports since parameter for incremental sync.
  • Trello webhooks require a callback URL and are registered per model (board/card/etc.).
  • The API is owned by Atlassian; API keys are tied to Power-Up creation.
  • Pagination uses limit and before/since parameters on action endpoints.

Resources

Labels

enhancement, integration, new-feature

贡献者指南