Skip to content
Closed

Test #4527

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
4ec920b
feat: 前端更新:修改vite配置的后端地址
ThisIsUniqueName Apr 20, 2026
3380e7c
feat:文档入口修改
ThisIsUniqueName Apr 21, 2026
d0223d0
fix 解决跨域问题
ThisIsUniqueName Apr 21, 2026
9e9fd44
feat: 图标更换,文档跳转模式修改
ThisIsUniqueName Apr 22, 2026
04d900d
Merge remote-tracking branch 'origin/main' into gqapi_release
ThisIsUniqueName Apr 24, 2026
8a15dd7
fix:解决首次进入平台名称展示错误的bug
ThisIsUniqueName Apr 27, 2026
6012953
test
ccasmy1314 Apr 27, 2026
60856b5
Merge branch 'main' into gqapi_release
ThisIsUniqueName Apr 27, 2026
4bb62de
release: 版本升至v0.13.1,打包优化
ThisIsUniqueName Apr 27, 2026
783e9ba
Revert "test"
ccasmy1314 Apr 27, 2026
049c6d2
Merge remote-tracking branch 'origin/gqapi_release' into gqapi_release
ccasmy1314 Apr 27, 2026
2768269
Merge branch 'main' into gqapi_release
ThisIsUniqueName Apr 28, 2026
8c325b6
Merge branch 'gqapi_release' of https://github.com/GQ-API/gq-api into…
ThisIsUniqueName Apr 28, 2026
1b42859
release: 升级版本号至v0.13.2
ThisIsUniqueName Apr 28, 2026
a4364d7
build: 新增全流程打包脚本:1. 切换分支,2. 拉取代码,3. 打包前端dist,4. 打包docker镜像 5. 推送镜像
ThisIsUniqueName Apr 28, 2026
a2a7992
build:修改打包脚本(替换远程镜像库)
ThisIsUniqueName Apr 28, 2026
322e03d
fix: 去除模型充值价格显示开关,build:新增github自动化打包配置
ThisIsUniqueName Apr 28, 2026
768572a
build: 自动化打包配置修改
ThisIsUniqueName Apr 28, 2026
be12aa5
build: 修改自动打包脚本
ThisIsUniqueName Apr 28, 2026
41fb36e
build: 自动打包脚本
ThisIsUniqueName Apr 28, 2026
a5b719e
Merge branch 'main' into dev
ThisIsUniqueName Apr 29, 2026
446d03f
Merge branch 'main' into dev
ThisIsUniqueName Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
238 changes: 238 additions & 0 deletions .github/workflows/docker-build-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
# =============================================================================
# GQ API Docker 镜像构建与推送工作流
# =============================================================================
# 功能说明:
# 当 gqapi_release 分支有新代码提交时,自动构建 Docker 镜像并推送到 Docker Hub
# 版本号从项目根目录的 VERSION 文件读取
#
# 触发条件:
# 1. 推送代码到 gqapi_release 分支
# 2. 手动触发(workflow_dispatch)
#
# 输出镜像:
# - {DOCKER_HUB_USERNAME}/gq-api:{version} (如 v0.13.2)
# - {DOCKER_HUB_USERNAME}/gq-api:latest
#
# 前置条件:
# 需要在 GitHub 仓库 Settings → Secrets and variables → Actions 中配置:
# - DOCKER_HUB_USERNAME: Docker Hub 用户名
# - DOCKER_HUB_ACCESS_TOKEN: Docker Hub Access Token
# - SMTP_SERVER: SMTP 服务器地址(如 smtp.qq.com)
# - SMTP_PORT: SMTP 端口(如 465)
# - SMTP_USERNAME: SMTP 用户名(邮箱地址)
# - SMTP_PASSWORD: SMTP 密码/授权码
# - NOTIFY_EMAIL: 接收通知的邮箱地址
# =============================================================================

name: Build and Push Docker Image

# -----------------------------------------------------------------------------
# 触发条件配置
# -----------------------------------------------------------------------------
on:
# 当推送到 gqapi_release 分支时触发
push:
branches:
- gqapi_release
# 允许在 GitHub Actions 页面手动触发
workflow_dispatch:

# -----------------------------------------------------------------------------
# 任务定义
# -----------------------------------------------------------------------------
jobs:
# ---------------------------------------------------------------------------
# Job 1: 构建并推送 Docker 镜像
# ---------------------------------------------------------------------------
build-and-push:
# 使用 Ubuntu 最新版本作为运行环境
runs-on: ubuntu-latest

# 指定使用 gq-api-dockerhub 环境的 secrets
environment: gq-api-dockerhub

# 配置权限
# - contents: read - 读取仓库代码
# - packages: write - 推送镜像到容器仓库
permissions:
contents: read
packages: write

# 输出变量供后续任务使用
outputs:
version: ${{ steps.version.outputs.version }}

# -------------------------------------------------------------------------
# 构建步骤
# -------------------------------------------------------------------------
steps:
# 步骤 1:检出代码
# 从 GitHub 仓库拉取最新代码到工作目录
- name: Checkout code
uses: actions/checkout@v4

# 步骤 2:读取版本号
# 从项目根目录的 VERSION 文件读取版本号(如 v0.13.2)
# 输出变量:version - 用于后续步骤的镜像标签
- name: Read version from VERSION file
id: version
run: |
VERSION=$(cat VERSION)
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Building version: $VERSION"

# 步骤 3:调试 - 检查 Secrets 配置
# 安全地检查 secrets 是否已配置(不打印实际值)
- name: Debug - Check Secrets
run: |
echo "=== Checking Docker Hub Secrets ==="
echo "DOCKER_HUB_USERNAME length: ${#DOCKER_HUB_USERNAME}"
if [ -n "$DOCKER_HUB_USERNAME" ]; then echo "DOCKER_HUB_USERNAME: SET"; else echo "DOCKER_HUB_USERNAME: NOT SET"; fi
echo "DOCKER_HUB_ACCESS_TOKEN length: ${#DOCKER_HUB_ACCESS_TOKEN}"
if [ -n "$DOCKER_HUB_ACCESS_TOKEN" ]; then echo "DOCKER_HUB_ACCESS_TOKEN: SET"; else echo "DOCKER_HUB_ACCESS_TOKEN: NOT SET"; fi
env:
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# 步骤 4:设置 Docker Buildx
# Buildx 是 Docker 的扩展构建工具,支持多平台构建和缓存
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

# 步骤 5:登录 Docker Hub
# 使用配置的 secrets 进行身份验证
# secrets.DOCKER_HUB_USERNAME - Docker Hub 用户名
# secrets.DOCKER_HUB_ACCESS_TOKEN - Docker Hub 访问令牌
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# 步骤 6:构建并推送 Docker 镜像
# - context: . 表示使用当前目录(Dockerfile 所在目录)
# - push: true 表示构建完成后自动推送到 Docker Hub
# - tags: 镜像标签,包含版本号标签和 latest 标签
# - cache: 使用 GitHub Actions 缓存加速后续构建
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ secrets.DOCKER_HUB_USERNAME }}/gq-api:${{ steps.version.outputs.version }}
${{ secrets.DOCKER_HUB_USERNAME }}/gq-api:latest
Comment on lines +122 to +124

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Keep the published image name aligned with new-api.

These tags switch the pushed repository from the established new-api identity to gq-api. Any existing deploy/pull automation still pointing at new-api will stop receiving releases once this workflow is used.

Based on learnings: Do NOT modify, delete, replace, or remove any references, mentions, branding, metadata, or attributions related to new-api (project name/identity) or QuantumNous (organization/author identity) in Docker image names, CI/CD references, and deployment configurations.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/docker-build-push.yml around lines 122 - 124, The workflow
tags currently publish images as "${{ secrets.DOCKER_HUB_USERNAME }}/gq-api:..."
which changes the established repository identity; update the tag values to "${{
secrets.DOCKER_HUB_USERNAME }}/new-api:${{ steps.version.outputs.version }}" and
"${{ secrets.DOCKER_HUB_USERNAME }}/new-api:latest" (i.e., replace the literal
'gq-api' occurrences with 'new-api') so CI/CD, deploy automation, and
branding/attribution for new-api/QuantumNous remain intact.

# 启用 GitHub Actions 缓存,加速后续构建
cache-from: type=gha
cache-to: type=gha,mode=max

# 步骤 7:输出构建摘要
# 在 GitHub Actions 运行页面显示构建结果信息
- name: Summary
run: |
echo "### Docker Image Published" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- **Version**: \`${{ steps.version.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
echo "- **Tags**:" >> $GITHUB_STEP_SUMMARY
echo " - \`${{ secrets.DOCKER_HUB_USERNAME }}/gq-api:${{ steps.version.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
echo " - \`${{ secrets.DOCKER_HUB_USERNAME }}/gq-api:latest\`" >> $GITHUB_STEP_SUMMARY

# ---------------------------------------------------------------------------
# Job 2: 构建后处理 - 发送邮件通知
# ---------------------------------------------------------------------------
# always() 确保无论构建成功还是失败都会执行邮件通知
post-build:
runs-on: ubuntu-latest
needs: build-and-push
if: always()

# 指定使用 gq-api-dockerhub 环境的 secrets
environment: gq-api-dockerhub

steps:
# 获取构建任务的状态
- name: Get build status
id: status
run: |
if [ "${{ needs.build-and-push.result }}" == "success" ]; then
echo "status=成功 ✅" >> $GITHUB_OUTPUT
echo "color=#28a745" >> $GITHUB_OUTPUT
else
echo "status=失败 ❌" >> $GITHUB_OUTPUT
echo "color=#dc3545" >> $GITHUB_OUTPUT
fi

# 发送邮件通知
# 使用 dawidd6/action-send-mail 发送邮件
- name: Send email notification
uses: dawidd6/action-send-mail@v3
with:
# SMTP 服务器配置
server_address: ${{ secrets.SMTP_SERVER }}
server_port: ${{ secrets.SMTP_PORT }}
# SMTP 认证信息
username: ${{ secrets.SMTP_USERNAME }}
password: ${{ secrets.SMTP_PASSWORD }}
# 邮件内容
subject: "GQ API Docker 构建通知 - ${{ steps.status.outputs.status }}"
to: ${{ secrets.NOTIFY_EMAIL }}
from: GQ API CI/CD
Comment on lines +167 to +179

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

dawidd6/action-send-mail v3 from parameter documentation

💡 Result:

The from parameter in dawidd6/action-send-mail v3 is a required input that specifies the sender of the email. It supports formats parsed by nodemailer's addressparser library. From the action.yml (v5, consistent with v3 structure): - description: Full name of mail sender (might be with an email address specified in <>) - required: true From README.md examples across versions including v3 usages: - from: 'Luke Skywalker user@example.com' Supported address formats (per README): Uses nodemailer's addressparser. Formats described at https://nodemailer.com/extras/addressparser/. Addresses with YAML special characters (e.g., '<', '>') should be single-quoted. Recent changes (post-v3, e.g., v16 relaxes checks, earlier release notes mention stricter forms like "Plain Simple Name" or "user@example.com", but v3 predates these). Usage in workflows: with: from: 'Luke Skywalker user@example.com' Note: v3 is an older tag; current latest is v16 (2026-03-18). Documentation consistent across sources.

Citations:


🌐 Web query:

SMTP From field display name only vs email address requirement

💡 Result:

According to RFC 5322, the standard for Internet Message Format, the From header requires a mailbox-list, where each mailbox is either a name-addr (optional display-name followed by angle-addr containing an addr-spec email address) or a bare addr-spec (email address alone). A display name by itself, without an email address (addr-spec), does not constitute a valid mailbox and thus is not permitted in the From field. Valid formats include: - From: sender@example.com (bare addr-spec) - From: "Display Name" sender@example.com (name-addr) Invalid examples explicitly rejected by RFC-compliant systems like Microsoft 365 include: - From: "Microsoft 365" (display name only, no email address) - From: Display Name sender@example.com (display name without enclosing email address in angle brackets) While SMTP servers (per RFC 5321) should not reject messages solely based on header defects, modern receivers often enforce strict RFC 5322 compliance for anti-phishing reasons, marking non-compliant From headers as invalid and potentially rejecting or quarantining mail. The display name serves only for user-friendly presentation and has no functional role in delivery or replies (replies default to the addr-spec). Group syntax allows display-name-only in limited cases (e.g., From: "Group":;), but RFC 6854 recommends against it for originator fields, and it requires a Sender field with a mailbox if used.

Citations:


Fix the sender email format to comply with SMTP standards.

from: GQ API CI/CD is only a display name without an email address. RFC 5322 requires the From field to include a valid mailbox (email address), either as a bare address or in the Name <address> format. Modern SMTP providers enforce this standard and will reject or quarantine mail with a display-name-only From header, causing post-build notifications to fail even when the build succeeds.

Suggested change
-          from: GQ API CI/CD
+          from: GQ API CI/CD <${{ secrets.SMTP_USERNAME }}>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Send email notification
uses: dawidd6/action-send-mail@v3
with:
# SMTP 服务器配置
server_address: ${{ secrets.SMTP_SERVER }}
server_port: ${{ secrets.SMTP_PORT }}
# SMTP 认证信息
username: ${{ secrets.SMTP_USERNAME }}
password: ${{ secrets.SMTP_PASSWORD }}
# 邮件内容
subject: "GQ API Docker 构建通知 - ${{ steps.status.outputs.status }}"
to: ${{ secrets.NOTIFY_EMAIL }}
from: GQ API CI/CD
- name: Send email notification
uses: dawidd6/action-send-mail@v3
with:
# SMTP 服务器配置
server_address: ${{ secrets.SMTP_SERVER }}
server_port: ${{ secrets.SMTP_PORT }}
# SMTP 认证信息
username: ${{ secrets.SMTP_USERNAME }}
password: ${{ secrets.SMTP_PASSWORD }}
# 邮件内容
subject: "GQ API Docker 构建通知 - ${{ steps.status.outputs.status }}"
to: ${{ secrets.NOTIFY_EMAIL }}
from: GQ API CI/CD <${{ secrets.SMTP_USERNAME }}>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/docker-build-push.yml around lines 167 - 179, The From
header in the "Send email notification" step is set to a display name only
(from: GQ API CI/CD), which violates RFC 5322; update the from field to include
a valid mailbox in the format "Display Name <address@domain>" or supply a secret
email variable (e.g., use an existing secret like ${{ secrets.NOTIFY_EMAIL }} or
add ${{ secrets.SENDER_EMAIL }}) so the action uses a proper email address;
ensure the change is applied to the "from" key in that step so SMTP providers
will accept the message.

# 邮件正文(HTML 格式)
html_body: |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }
.container { max-width: 600px; margin: 0 auto; padding: 20px; }
.header { background: ${{ steps.status.outputs.color }}; color: white; padding: 20px; text-align: center; border-radius: 5px 5px 0 0; }
.content { background: #f9f9f9; padding: 20px; border: 1px solid #ddd; border-radius: 0 0 5px 5px; }
.info-table { width: 100%; border-collapse: collapse; margin-top: 15px; }
.info-table td { padding: 10px; border-bottom: 1px solid #ddd; }
.info-table td:first-child { font-weight: bold; width: 120px; }
.footer { margin-top: 20px; font-size: 12px; color: #666; text-align: center; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h2>🚀 GQ API Docker 构建通知</h2>
</div>
<div class="content">
<p>构建状态:<strong style="color: ${{ steps.status.outputs.color }}">{{ steps.status.outputs.status }}</strong></p>
<table class="info-table">
<tr>
<td>版本号</td>
<td>${{ needs.build-and-push.outputs.version || 'N/A' }}</td>
</tr>
<tr>
<td>分支</td>
<td>${{ github.ref_name }}</td>
</tr>
<tr>
<td>触发者</td>
<td>${{ github.actor }}</td>
</tr>
<tr>
<td>提交信息</td>
<td>${{ github.event.head_commit.message }}</td>
</tr>
<tr>
<td>构建时间</td>
<td>${{ github.event.head_commit.timestamp }}</td>
</tr>
</table>
<p style="margin-top: 20px;">
<a href="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
style="background: #0366d6; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;">
查看构建详情
</a>
</p>
</div>
<div class="footer">
此邮件由 GitHub Actions 自动发送
</div>
</div>
</body>
</html>
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ web/default/dist
web/classic/dist
web/node_modules
web/dist
web/node_modules
VERSION
.env
one-api
new-api
Expand Down
3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ RUN go build -ldflags "-s -w -X 'github.com/QuantumNous/new-api/common.Version=$

FROM debian:bookworm-slim@sha256:f06537653ac770703bc45b4b113475bd402f451e85223f0f2837acbf89ab020a

RUN sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
Comment on lines +41 to +42

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

find . -name "Dockerfile" -type f | head -20

Repository: QuantumNous/new-api

Length of output: 76


🏁 Script executed:

wc -l ./Dockerfile

Repository: QuantumNous/new-api

Length of output: 79


🏁 Script executed:

cat -n ./Dockerfile

Repository: QuantumNous/new-api

Length of output: 2172


🏁 Script executed:

# Verify the suggested change syntax is valid shell/Dockerfile
cat > /tmp/test_dockerfile << 'EOF'
FROM debian:bookworm-slim

ARG DEBIAN_MIRROR=
RUN if [ -n "$DEBIAN_MIRROR" ]; then \
      sed -i "s|http://deb.debian.org|$DEBIAN_MIRROR|g" /etc/apt/sources.list.d/debian.sources 2>/dev/null || true; \
      sed -i "s|http://deb.debian.org|$DEBIAN_MIRROR|g" /etc/apt/sources.list 2>/dev/null || true; \
    fi

RUN apt-get update
EOF

# Basic syntax validation
if grep -q "ARG DEBIAN_MIRROR=" /tmp/test_dockerfile && \
   grep -q 'if \[ -n "$DEBIAN_MIRROR" \]' /tmp/test_dockerfile; then
  echo "Proposed change syntax looks valid"
else
  echo "Syntax issue detected"
fi

Repository: QuantumNous/new-api

Length of output: 98


Make the Debian mirror override optional.

This hardcodes every build to use a regional mirror (mirrors.aliyun.com). If that mirror is slow, unavailable, or lagging, image builds fail even when the default Debian infrastructure is healthy. Especially problematic for non-China builds. Use a build argument instead to allow opt-in mirror configuration while keeping Debian's defaults as the fallback.

Suggested change
+ARG DEBIAN_MIRROR=
-RUN sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
-    sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
+RUN if [ -n "$DEBIAN_MIRROR" ]; then \
+      sed -i "s|http://deb.debian.org|$DEBIAN_MIRROR|g" /etc/apt/sources.list.d/debian.sources 2>/dev/null || true; \
+      sed -i "s|http://deb.debian.org|$DEBIAN_MIRROR|g" /etc/apt/sources.list 2>/dev/null || true; \
+    fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
RUN sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
ARG DEBIAN_MIRROR=
RUN if [ -n "$DEBIAN_MIRROR" ]; then \
sed -i "s|http://deb.debian.org|$DEBIAN_MIRROR|g" /etc/apt/sources.list.d/debian.sources 2>/dev/null || true; \
sed -i "s|http://deb.debian.org|$DEBIAN_MIRROR|g" /etc/apt/sources.list 2>/dev/null || true; \
fi
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Dockerfile` around lines 41 - 42, Replace the hardcoded sed replacement in
the Dockerfile with an opt-in build ARG so mirror override is optional: add an
ARG like APT_MIRROR (default empty) and change the RUN that currently contains
the sed commands to only perform the sed replacement when $APT_MIRROR is
non-empty (e.g., test -n "$APT_MIRROR" && sed -i
"s|http://deb.debian.org|$APT_MIRROR|g" ...), keeping the existing fallback/true
behavior so default Debian sources remain unchanged when no build-arg is
supplied.


RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates tzdata libasan8 wget \
&& rm -rf /var/lib/apt/lists/* \
Expand Down
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v0.13.2
2 changes: 1 addition & 1 deletion common/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (

var StartTime = time.Now().Unix() // unit: second
var Version = "v0.0.0" // this hard coding will be replaced automatically when building, no need to manually change
var SystemName = "New API"
var SystemName = "GQ API"
var Footer = ""
var Logo = ""
var TopUpLink = ""
Expand Down
2 changes: 1 addition & 1 deletion electron/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ function createWindow() {
nodeIntegration: false,
contextIsolation: true
},
title: 'New API',
title: 'GQ API',
icon: path.join(__dirname, 'icon.png')
});

Expand Down
Loading
Loading