644 lines
15 KiB
YAML
644 lines
15 KiB
YAML
definitions:
|
||
handlers.Response:
|
||
properties:
|
||
code:
|
||
type: integer
|
||
data: {}
|
||
message:
|
||
type: string
|
||
type: object
|
||
models.ContributorStats:
|
||
properties:
|
||
additions:
|
||
description: 新增行数
|
||
type: integer
|
||
author:
|
||
type: string
|
||
commits:
|
||
type: integer
|
||
deletions:
|
||
description: 删除行数
|
||
type: integer
|
||
email:
|
||
type: string
|
||
modifications:
|
||
description: 修改行数 = min(additions, deletions)
|
||
type: integer
|
||
net_additions:
|
||
description: 净增加 = additions - deletions
|
||
type: integer
|
||
type: object
|
||
models.DateRange:
|
||
properties:
|
||
from:
|
||
type: string
|
||
to:
|
||
type: string
|
||
type: object
|
||
models.Repository:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
current_branch:
|
||
type: string
|
||
error_message:
|
||
type: string
|
||
has_credentials:
|
||
type: boolean
|
||
id:
|
||
type: integer
|
||
last_commit_hash:
|
||
type: string
|
||
last_pull_at:
|
||
type: string
|
||
local_path:
|
||
type: string
|
||
name:
|
||
type: string
|
||
status:
|
||
description: pending/cloning/ready/failed
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
url:
|
||
type: string
|
||
type: object
|
||
models.Statistics:
|
||
properties:
|
||
by_contributor:
|
||
items:
|
||
$ref: '#/definitions/models.ContributorStats'
|
||
type: array
|
||
summary:
|
||
$ref: '#/definitions/models.StatsSummary'
|
||
type: object
|
||
models.StatsConstraint:
|
||
properties:
|
||
from:
|
||
description: type=date_range时使用
|
||
type: string
|
||
limit:
|
||
description: type=commit_limit时使用
|
||
type: integer
|
||
to:
|
||
description: type=date_range时使用
|
||
type: string
|
||
type:
|
||
description: date_range 或 commit_limit
|
||
type: string
|
||
type: object
|
||
models.StatsResult:
|
||
properties:
|
||
cache_hit:
|
||
type: boolean
|
||
cached_at:
|
||
type: string
|
||
commit_hash:
|
||
type: string
|
||
statistics:
|
||
$ref: '#/definitions/models.Statistics'
|
||
type: object
|
||
models.StatsSummary:
|
||
properties:
|
||
commit_limit:
|
||
type: integer
|
||
date_range:
|
||
$ref: '#/definitions/models.DateRange'
|
||
total_commits:
|
||
type: integer
|
||
total_contributors:
|
||
type: integer
|
||
type: object
|
||
models.Task:
|
||
properties:
|
||
completed_at:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
duration_ms:
|
||
description: 计算字段
|
||
type: integer
|
||
error_message:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
parameters:
|
||
description: JSON string
|
||
type: string
|
||
priority:
|
||
type: integer
|
||
repo_id:
|
||
type: integer
|
||
result:
|
||
description: JSON string
|
||
type: string
|
||
retry_count:
|
||
type: integer
|
||
started_at:
|
||
type: string
|
||
status:
|
||
type: string
|
||
task_type:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
service.AddRepoFailure:
|
||
properties:
|
||
error:
|
||
type: string
|
||
url:
|
||
type: string
|
||
type: object
|
||
service.AddRepoResult:
|
||
properties:
|
||
repo_id:
|
||
type: integer
|
||
task_id:
|
||
type: integer
|
||
url:
|
||
type: string
|
||
type: object
|
||
service.AddReposRequest:
|
||
properties:
|
||
password:
|
||
description: 可选的认证信息
|
||
type: string
|
||
repos:
|
||
items:
|
||
$ref: '#/definitions/service.RepoInput'
|
||
type: array
|
||
username:
|
||
description: 可选的认证信息
|
||
type: string
|
||
type: object
|
||
service.AddReposResponse:
|
||
properties:
|
||
failed:
|
||
items:
|
||
$ref: '#/definitions/service.AddRepoFailure'
|
||
type: array
|
||
succeeded:
|
||
items:
|
||
$ref: '#/definitions/service.AddRepoResult'
|
||
type: array
|
||
total:
|
||
type: integer
|
||
type: object
|
||
service.CalculateRequest:
|
||
properties:
|
||
branch:
|
||
type: string
|
||
constraint:
|
||
$ref: '#/definitions/models.StatsConstraint'
|
||
repo_id:
|
||
type: integer
|
||
type: object
|
||
service.CountCommitsResponse:
|
||
properties:
|
||
branch:
|
||
type: string
|
||
commit_count:
|
||
type: integer
|
||
from:
|
||
type: string
|
||
repo_id:
|
||
type: integer
|
||
to:
|
||
type: string
|
||
type: object
|
||
service.RepoInput:
|
||
properties:
|
||
branch:
|
||
type: string
|
||
url:
|
||
type: string
|
||
type: object
|
||
info:
|
||
contact: {}
|
||
paths:
|
||
/repos:
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: 分页查询仓库列表,支持按状态筛选
|
||
parameters:
|
||
- description: 状态筛选(pending/cloning/ready/failed)
|
||
in: query
|
||
name: status
|
||
type: string
|
||
- default: 1
|
||
description: 页码
|
||
in: query
|
||
name: page
|
||
type: integer
|
||
- default: 20
|
||
description: 每页数量
|
||
in: query
|
||
name: page_size
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 获取仓库列表
|
||
tags:
|
||
- 仓库管理
|
||
/repos/{id}:
|
||
delete:
|
||
description: 删除指定仓库
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 删除仓库
|
||
tags:
|
||
- 仓库管理
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: 根据ID获取仓库详细信息
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/models.Repository'
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 获取仓库详情
|
||
tags:
|
||
- 仓库管理
|
||
/repos/{id}/branches:
|
||
get:
|
||
description: 获取指定仓库的所有分支
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
type: object
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 获取仓库分支列表
|
||
tags:
|
||
- 仓库管理
|
||
/repos/{id}/reset:
|
||
post:
|
||
description: 异步重置仓库到最新状态
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/models.Task'
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 重置仓库
|
||
tags:
|
||
- 仓库管理
|
||
/repos/{id}/switch-branch:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 异步切换仓库到指定分支
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 分支名称
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
properties:
|
||
branch:
|
||
type: string
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/models.Task'
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 切换仓库分支
|
||
tags:
|
||
- 仓库管理
|
||
/repos/{id}/update:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 异步拉取仓库最新代码(git pull)
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/models.Task'
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 更新仓库
|
||
tags:
|
||
- 仓库管理
|
||
/repos/batch:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 批量添加多个Git仓库,异步克隆到本地
|
||
parameters:
|
||
- description: 仓库URL列表
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/service.AddReposRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/service.AddReposResponse'
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 批量添加仓库
|
||
tags:
|
||
- 仓库管理
|
||
/stats/caches:
|
||
get:
|
||
description: 获取已计算的统计缓存列表
|
||
parameters:
|
||
- description: 仓库ID(可选,不传则返回所有)
|
||
in: query
|
||
name: repo_id
|
||
type: integer
|
||
- default: 50
|
||
description: 返回数量限制
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
type: object
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 获取统计缓存列表
|
||
tags:
|
||
- 统计管理
|
||
/stats/calculate:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 异步触发统计计算任务
|
||
parameters:
|
||
- description: 统计请求
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/service.CalculateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/models.Task'
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 触发统计任务
|
||
tags:
|
||
- 统计管理
|
||
/stats/commits/count:
|
||
get:
|
||
description: 统计指定条件下的提交次数
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: query
|
||
name: repo_id
|
||
required: true
|
||
type: integer
|
||
- description: 分支名称
|
||
in: query
|
||
name: branch
|
||
required: true
|
||
type: string
|
||
- description: 开始日期
|
||
in: query
|
||
name: from
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/service.CountCommitsResponse'
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 统计提交次数
|
||
tags:
|
||
- 统计管理
|
||
/stats/query:
|
||
get:
|
||
description: 查询统计计算结果
|
||
parameters:
|
||
- description: 仓库ID
|
||
in: query
|
||
name: repo_id
|
||
required: true
|
||
type: integer
|
||
- description: 分支名称
|
||
in: query
|
||
name: branch
|
||
required: true
|
||
type: string
|
||
- description: 约束类型
|
||
in: query
|
||
name: constraint_type
|
||
type: string
|
||
- description: 开始日期
|
||
in: query
|
||
name: from
|
||
type: string
|
||
- description: 结束日期
|
||
in: query
|
||
name: to
|
||
type: string
|
||
- description: 提交数限制
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
$ref: '#/definitions/models.StatsResult'
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 查询统计结果
|
||
tags:
|
||
- 统计管理
|
||
/tasks:
|
||
get:
|
||
description: 查询任务列表,可按状态过滤
|
||
parameters:
|
||
- description: 任务状态
|
||
in: query
|
||
name: status
|
||
type: string
|
||
- default: 50
|
||
description: 返回数量限制
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/definitions/handlers.Response'
|
||
- properties:
|
||
data:
|
||
type: object
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.Response'
|
||
summary: 查询任务列表
|
||
tags:
|
||
- 任务管理
|
||
swagger: "2.0"
|