Skip to content

feat(channels): add Web Shell management support for GitHub and GitLab - #8307

Closed
OrbitZore wants to merge 0 commit into
QwenLM:mainfrom
OrbitZore:feat/webshell-github-gitlab-management
Closed

feat(channels): add Web Shell management support for GitHub and GitLab#8307
OrbitZore wants to merge 0 commit into
QwenLM:mainfrom
OrbitZore:feat/webshell-github-gitlab-management

Conversation

@OrbitZore

Copy link
Copy Markdown
Collaborator

What this PR does

Adds management descriptors to the GitHub and GitLab channel plugins so the Web Shell channel management UI can configure them. Previously only DingTalk, WeCom, and Feishu were manageable through the Web Shell; GitHub and GitLab required manual settings.json editing.

Each plugin now declares two form fields: token (secret, required) and baseUrl (string, optional), both environment-variable resolvable. The Web Shell frontend allowlist is extended to include github and gitlab, and the corresponding unit tests are updated.

Why it's needed

Requested in #7862 (comment) — users should be able to set up GitHub and GitLab channels entirely through the Web Shell UI without touching settings.json.

Reviewer Test Plan

How to verify

  1. Start the daemon with a GitHub or GitLab channel plugin registered.
  2. Open the Web Shell channel management page.
  3. Confirm GitHub and GitLab appear as available channel types.
  4. Open the "Add channel" dialog for either type and confirm the form shows a "Personal Access Token" (secret) field and a "Base URL" (string) field.
  5. Run the unit tests: cd packages/web-shell && npx vitest run client/components/channels/channel-platform.test.ts — both tests should pass.

Evidence (Before & After)

N/A (non-TUI change; form rendering depends on daemon runtime)

Tested on

OS Status
🍏 macOS ⚠️
🪟 Windows ⚠️
🐧 Linux

Environment (optional)

Unit tests only (vitest).

Risk & Scope

  • Main risk or tradeoff: none — additive change, no existing behavior modified.
  • Not validated / out of scope: advanced config fields (reasonFilter, allowedUsers, action_prompt_template) are not exposed in the form; they remain settings.json-only.
  • Breaking changes / migration notes: none.

Linked Issues

Follow-up to #7862 (comment)

中文说明

本 PR 做了什么

为 GitHub 和 GitLab 频道插件添加 management 描述符,使 Web Shell 频道管理 UI 能够配置它们。此前只有 DingTalk、WeCom、Feishu 可通过 Web Shell 管理,GitHub 和 GitLab 需要手动编辑 settings.json

每个插件声明两个表单字段:token(secret,必填)和 baseUrl(string,可选),均支持环境变量解析。Web Shell 前端白名单扩展加入 githubgitlab,对应单元测试已更新。

为什么需要

来源:#7862 (comment) —— 用户应能完全通过 Web Shell UI 完成 GitHub 和 GitLab 频道的接入配置,无需手动编辑 settings.json

审阅者测试计划

如何验证

  1. 启动已注册 GitHub 或 GitLab 频道插件的 daemon。
  2. 打开 Web Shell 频道管理页面。
  3. 确认 GitHub 和 GitLab 出现在可用频道类型列表中。
  4. 打开任一类型的"添加频道"对话框,确认表单显示 "Personal Access Token"(secret)和 "Base URL"(string)字段。
  5. 运行单元测试:cd packages/web-shell && npx vitest run client/components/channels/channel-platform.test.ts —— 两个测试应通过。

证据(前后对比)

N/A(非 TUI 变更;表单渲染依赖 daemon 运行时)

测试环境

OS 状态
🍏 macOS ⚠️ 未测试
🪟 Windows ⚠️ 未测试
🐧 Linux ✅ 已测试

运行环境(可选)

仅单元测试(vitest)。

风险与范围

  • 主要风险或权衡:无 —— 纯增量变更,不修改任何现有行为。
  • 未验证 / 不在范围内:高级配置字段(reasonFilterallowedUsersaction_prompt_template)未在表单中暴露,仍需通过 settings.json 配置。
  • 破坏性变更 / 迁移说明:无。

关联 Issue

跟进 #7862 (comment)

@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

Qwen precheck requires maintainer approval before automated triage/review.

Head SHA: 23aa4e424b3d67fea73096ea40bdfdc4b7f692d8

Reason:

  • secret_value:assignment

A maintainer with write access can inspect the PR and manually request a run with @qwen-code /triage or @qwen-code /review. A new push requires a fresh precheck.

@OrbitZore OrbitZore closed this Aug 1, 2026
@OrbitZore
OrbitZore force-pushed the feat/webshell-github-gitlab-management branch from 23aa4e4 to d962b82 Compare August 1, 2026 10:08
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Please do not rebase or force-push to an active PR as it invalidates existing review comments. Note for future reference, the bots always squash all changes into a single commit automatically as part of the integration.

中文

请勿对活跃的 PR 执行 rebase 或 force-push,因为这会使已有的评审评论失效。另外,供日后参考:作为集成流程的一部分,机器人始终会自动将所有改动压缩(squash)为单个提交。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants