整体架构

flowchart BT
  atomgit
  gitee
  gitlab
  harbor
  server["服务端"]
  desktop["客户端"]
  

  desktop-.-|grpc|server
  desktop-.-|mqtt|server
  server-.-|webhook|atomgit
  server-.-|webhook|gitee
  server-.-|webhook|gitlab
  server-.-|webhook|harbor
通讯协议备注
webhook用于接入外部系统的推送信息
grpc服务端和客户端主要通讯方式(业务接口)
mqtt推送消息,主要用于服务端和客户端数据同步

grpc协议

grpc协议定义放在proto项目中。在通讯上,服务端使用golang实现,客户端使用rust实现。我们额外生成了grpc的gorust的代码。

协议简介

协议包含基础设施,用户,项目,公共资源,扩展功能协议,通知/事件几个部分。

基础设施相关协议

协议定义备注
fs_api.proto文件存储
client_cfg_api.proto用于获取服务端的能力列表
admin_auth_api.proto管理后台验证

用户相关协议定义

协议定义备注
user_api.proto用户信息和验证

项目相关协议定义

项目接口可以分为知识库,项目管理,项目沟通,项目信息几个部分。

项目信息
协议定义备注
project_api.proto项目信息和设置
project_member_api.proto项目成员
events_api.proto项目相关的研发行为记录
events_subscribe_api.proto项目相关的研发行为订阅
external_events_api.proto项目外部信息接入
知识库
协议定义备注
project_entry_api.proto知识库内容入口
project_doc_api.proto项目文档
project_code_api.proto代码评论
project_idea_api.proto项目知识点
api_collection_api.proto接口集合
project_board_api.proto信息面板
project_recycle_api.proto知识库回收站
http_custom_api.proto自定义http协议(接口集合)
项目沟通
协议定义备注
project_bulletin_api.proto项目公告
project_chat_api.proto项目沟通
project_comment_api.proto项目公共评论
project_watch_api.proto关注信息
项目管理
协议定义备注
project_issue_api.proto任务/缺陷管理
project_requirement_api.proto项目需求
project_sprit_api.proto工作计划
project_testcase_api.proto测试用例
project_alarm_api.proto项目预警
short_note_api.proto项目便签

公共资源相关协议定义

协议定义备注
appstore_api.proto微应用市场
group_api.proto兴趣组信息
group_member_api.proto兴趣组成员
group_post_api.proto兴趣组帖子
dev_container_api.proto研发环境软件包信息
docker_template_api.protodocker compose模板

扩展功能相关协议定义

协议定义备注
swarm_proxy_api.protoswamg集群管理
trace_proxy_api.proto链路追踪
k8s_proxy_api.protok8s集群管理
net_proxy_api.proto网络透传

通知和事件相关协议定义

<span id="notices">通知</span>
协议定义备注
notices/notices_board.proto信息面板数据同步
notices/notices_entry.proto内容入口数据同步
notices/notices_project.proto项目信息数据同步
notices/notices_chat.proto项目沟通数据同步
notices/notices_idea.proto项目知识点数据同步
notices/notices_requirement.proto项目需求数据同步
notices/notices_comment.proto项目评论数据同步
notices/notices_issue.proto项目任务/缺陷数据同步
notices/notices_testcase.proto项目测试用例数据同步
事件
协议定义备注
events/events_atomgit.protoatomgit相关事件
events/events_gitlab.protogitlab相关事件
events/events_project.proto项目事件
events/events_code.proto代码评论相关事件
events/events_gogs.protogogs相关事件
events/events_requirement.proto项目需求事件
events/events_entry.proto内容入口事件
events/events_harbor.protoharbor相关事件
events/events_testcase.proto测试用例事件
events/events_external_event.proto外部接入相关事件
events/events_idea.proto知识点事件
events/events_gitee.protogitee相关事件
events/events_issue.proto任务/缺陷事件

grpc协议调试

在凌鲨客户端内容提供了grpc调用的微应用,可以用来调试grpc调用。

image.png

mqtt协议

mqtt主要传递的是通知信息。
每个用户会有一个通道,地址 user/{用户ID} 。每个通道访问都需要验证,验证信息在登录时会发送给客户端。


潘雷明
1 声望0 粉丝