reposync/issue_sync_module/GITLINK_API_UPDATE.md

2.6 KiB
Raw Blame History

GitLink API 修复说明

📋 修复内容

根据GitLink官方API文档 (https://apifox.com/apidoc/shared/da30afb0-9d2e-429b-a4bc-a83209e06021/api-76022555) 进行的修复:

🔐 认证方式修正

之前错误: 使用用户名密码HTTPBasicAuth

# 错误的认证方式
self.auth = HTTPBasicAuth(username, password)

现在正确: 使用Bearer Token

# 正确的认证方式
self.headers = {
    'Authorization': f'Bearer {self.token}',
    'Content-Type': 'application/json'
}

📝 创建Issue API修正

API端点 POST /api/v1/{owner}/{repo}/issues.json

必需参数:

  • status_id (integer) - 疑修状态ID
  • priority_id (integer) - 疑修优先级ID
  • subject (string) - 标题

新增方法:

  • get_issue_statuses() - 获取状态列表
  • get_issue_priorities() - 获取优先级列表

🔧 环境变量更新

之前:

set GITLINK_USERNAME=your_username
set GITLINK_PASSWORD=your_password

现在:

set GITLINK_TOKEN=your_gitlink_token

🚀 使用方法

# Windows
set GITLINK_TOKEN=your_gitlink_access_token

# Linux/Mac  
export GITLINK_TOKEN=your_gitlink_access_token

2. 创建Issue示例

from clients.gitlink_client import GitLinkIssueClient

client = GitLinkIssueClient("your_org", "your_repo")

# 获取可用的状态和优先级
statuses = client.get_issue_statuses()
priorities = client.get_issue_priorities()

# 创建Issue
issue = client.create_issue(
    title="测试Issue",
    description="这是一个测试Issue",
    status_id=statuses[0]['id'],    # 使用第一个状态
    priority_id=priorities[1]['id']  # 使用第二个优先级
)

📊 API响应格式

创建成功后返回完整的Issue信息

{
    "id": 62,
    "subject": "测试Issue",
    "project_issues_index": 32,
    "description": "这是一个测试Issue",
    "status": {
        "id": 1,
        "name": "新建"
    },
    "priority": {
        "id": 2,  
        "name": "普通"
    },
    "author": {
        "id": 110,
        "name": "用户名",
        "login": "user_login"
    },
    "created_at": "2023-02-15 09:53",
    "updated_at": "2023-02-15 09:53"
}

修复验证

所有修改已通过以下验证:

  1. 符合GitLink官方API文档规范
  2. 使用正确的Bearer Token认证
  3. 创建Issue时提供必需的status_id和priority_id
  4. 环境变量配置简化为仅需Token

更新时间2024年最新