#github #ci #qa #app #后端 #qvet

bin+lib qvet-api

qvet 的后端 API 实现

3 个版本

0.1.2 2023年2月3日
0.1.1 2023年2月2日
0.1.0 2023年2月2日

#617 in 测试


用于 qvet-standalone

MIT 许可证

15KB
222

qvet

快速验证您的发布版本以进行 QA。

概述

qvet homepage screenshot

qvet 有两个主要组件

  • web: 闪亮的仪表板 UI。大部分功能都在这里。
  • api: 一个轻量级后端,需要密钥时使用。

所有数据都存储在 GitHub 上,不需要额外的持久存储/数据库。

GitHub 应用配置

权限

  • 提交状态:读和写
    • 读取和设置 QA 状态
  • 内容:只读
    • 读取分支、提交和标签

事件(目前不需要)

  • 创建
    • 监听新标签(发布)创建
  • 推送
    • 监听推送到 master 的新提交
  • 状态
    • 监听 QA 状态更新

开发

以开发/热重载模式启动两个服务。分别是

  • web 使用 cd qvet-web && npm install && npm run dev
  • api 使用 cd qvet-api && cargo watch -x 'run -- --bind 0.0.0.0:3000'

注意

请确保 https://127.0.0.1 映射到 IPv4 地址。如果没有映射,则 web 应用无法正确解析 API。

检查 /etc/hosts 中是否有映射到 localhost 的键。

独立部署

为了方便,qvet 可以在一个单个的二进制文件中运行。

Docker

为了方便,此二进制文件可用作轻量级 Docker 图像包装器。

要构建新的版本,请运行 ./qvet-standalone/scripts/build.sh,这将生成一个名为 qvet-standalone 的镜像。

可以使用以下方式调用

docker run -d --rm --name ci-qvet --init -e GITHUB_CLIENT_ID -e GITHUB_CLIENT_SECRET -e QVET_COOKIE_KEY -p 39106:39105 qvet-standalone --bind 0.0.0.0:39105

环境变量

环境变量 示例 目的 备注
GITHUB_CLIENT_ID Iv1.0123456789abcdef GitHub App 客户端 ID 必需
GITHUB_CLIENT_SECRET 随机十六进制,40个字符 GitHub App 客户端密钥 必需
QVET_COOKIE_KEY 随机十六进制,64个字符 QVET私有cookie加密 可选。如果未设置,则会在运行时生成一个随机密钥。

依赖项

~16–33MB
~487K SLoC