Trình Kết Nối GitHub

Kết nối GitHub với Brevo qua Tajo để theo dõi hoạt động developers, đồng bộ contributors sang danh sách marketing và kích hoạt giao tiếp dựa trên sự kiện repository.

Tổng Quan

Thuộc TínhGiá Trị
Nền TảngGitHub
Danh MụcTùy Chỉnh
Độ Phức Tạp Thiết LậpTrung Bình
Tích Hợp Chính ThứcKhông
Dữ Liệu Đồng BộRepositories, Issues, Pull Requests, Contributors
Loại APIREST API v3 + GraphQL API v4
Xác ThựcGitHub App hoặc Personal Access Token

Tính Năng

  • Đồng bộ contributors - Ánh xạ GitHub contributors sang liên hệ Brevo
  • Theo dõi sự kiện - Forward push, PR, và comment events sang Brevo
  • Phân tích issues - Đồng bộ dữ liệu issues để theo dõi tương tác developers
  • Số liệu repository - Nhập star counts, forks, và dữ liệu engagement
  • Quản lý releases - Kích hoạt thông báo khi releases mới được publish

Yêu Cầu

Trước khi bắt đầu, hãy đảm bảo bạn có:

  1. Tài khoản GitHub hoặc GitHub Organization
  2. GitHub App hoặc Personal Access Token (classic hoặc fine-grained)
  3. Quyền đọc repositories mục tiêu
  4. Tài khoản Brevo với quyền truy cập API
  5. Tài khoản Tajo

Xác Thực

GitHub App (Khuyến Nghị)

GitHub Apps cung cấp xác thực tốt hơn với phạm vi repository chi tiết.

Terminal window
# Xác thực với GitHub App installation token
curl "https://api.github.com/repos/{owner}/{repo}/contributors" \
-H "Authorization: token INSTALLATION_TOKEN" \
-H "Accept: application/vnd.github.v3+json"

Personal Access Token

Terminal window
curl "https://api.github.com/user" \
-H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" \
-H "Accept: application/vnd.github.v3+json"

Bảo Mật Token

Sử dụng fine-grained Personal Access Tokens thay vì classic tokens để kiểm soát phạm vi tốt hơn. Không bao giờ commit tokens vào source code.

Phạm Vi Cần Thiết

repo: read - Đọc repository data (public repos)
read:user - Đọc thông tin hồ sơ người dùng
read:org - Đọc thành viên tổ chức

Cấu Hình

Thiết Lập Cơ Bản

connectors:
github:
enabled: true
access_token: "${GITHUB_ACCESS_TOKEN}"
# Repositories để theo dõi
repositories:
- owner: "your-org"
repo: "main-product"
- owner: "your-org"
repo: "open-source-lib"
sync:
contributors: true
issues: false
pull_requests: false
releases: true

Ánh Xạ Trường

field_mapping:
login: GITHUB_USERNAME
email: email
name: FULLNAME
company: COMPANY_NAME
location: LOCATION
public_repos: GITHUB_REPOS
followers: GITHUB_FOLLOWERS

API Endpoints

Phương ThứcEndpointMô Tả
GET/repos/{owner}/{repo}/contributorsLiệt kê contributors
GET/users/{username}Lấy thông tin người dùng
GET/repos/{owner}/{repo}/issuesLiệt kê issues
GET/repos/{owner}/{repo}/pullsLiệt kê pull requests
GET/repos/{owner}/{repo}/releasesLiệt kê releases
POST/repos/{owner}/{repo}/hooksTạo webhook

Ví Dụ Code

Khởi Tạo Trình Kết Nối

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('github', {
accessToken: process.env.GITHUB_ACCESS_TOKEN
});

Đồng Bộ Contributors Sang Brevo

// Đồng bộ GitHub contributors sang danh sách Brevo
await tajo.connectors.sync('github', {
type: 'full',
owner: 'your-org',
repo: 'main-product',
resources: ['contributors'],
brevoListId: 40
});

Conditional Requests

GitHub API hỗ trợ conditional requests với If-Modified-Since hoặc If-None-Match headers. Tajo sử dụng chúng tự động để tránh khai thác rate limit khi không có dữ liệu thay đổi.

Giới Hạn Tốc Độ

Loại Xác ThựcGiới Hạn
Không xác thực60 yêu cầu/giờ
Personal Access Token5.000 yêu cầu/giờ
GitHub App15.000 yêu cầu/giờ
Search API30 yêu cầu/phút

Khắc Phục Sự Cố

Sự CốNguyên NhânGiải Pháp
401 UnauthorizedToken không hợp lệ hoặc hết hạnTạo lại Personal Access Token
403 ForbiddenVượt giới hạn tốc độ hoặc thiếu phạm viKiểm tra headers X-RateLimit-Remaining
Contributors không đồng bộRepository riêng tưĐảm bảo token có quyền repo
Email người dùng thiếuEmail GitHub ẩnCần user:email scope để lấy private emails

Tài Nguyên Liên Quan

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Trợ lý AI

Xin chào! Hãy hỏi tôi về tài liệu.