ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Highlight.io 的 Jira 集成:从 Session 回放与错误分组一键创建 Jira Task

Highlight.io 的 Jira 集成:从 Session 回放与错误分组一键创建 Jira Task 可观测性后端【免费下载链接】highlighthighlight.io: The open source, full-stack monitoring platform. Error monitoring, session replay, logging, distributed tracing, and more.项目地址https://gitcode.com/gh_mirrors/hi/highlight点击查看免费下载启用 Highlight 的 Jira 集成后你可以直接在Session 回放session replay和错误查看器errors viewer中创建 Jira Task无需在排查前端/后端错误或观看用户回放时切换到 Jira 去手动建档。本文基于 Highlight 当前仓库的文档与源码完整讲解该集成的启用方式、两大核心能力评论建单与错误建单、OAuth 授权与令牌刷新机制以及创建 Task 时的字段来源与默认项目选择逻辑帮助你理解并充分使用这一从观测到工单的一体化流程。启用集成三步完成 OAuth 连接在 Highlight 中启用 Jira 集成非常简单打开应用内的Integrations集成页面找到 Jira 区域并点击Connect连接按钮即可。连接过程本质上是 OAuth 2.0 授权由前端发起授权跳转、后端完成令牌交换与存储。从前端代码看授权 URL 的构造位于 JiraIntegration/utils.tsx它向 Atlassian 的授权端点https://auth.atlassian.com/authorize发起请求并携带以下关键参数参数值说明audienceapi.atlassian.com声明要访问的是 Atlassian API 平台client_id构建时注入的JIRA_CLIENT_ID由自托管部署方配置的 Jira OAuth 应用凭据scoperead:jira-work write:jira-work offline_access读取/写入 Jira 工作数据并支持离线刷新令牌redirect_uri{FrontendUri}/callback/jira授权完成后的回调地址与后端 OAuth 配置中的 RedirectURL 一致state编码后的{ next, project_id, workspace_id }授权回调后用于还原页面跳转位置与关联项目/工作区response_typecode标准授权码模式promptconsent强制用户在每次授权时确认权限回调完成后后端通过 jira.go 中的GetOAuthConfig与GetAccessToken使用授权码换取访问令牌。这一过程要求自托管环境预先配置三个环境变量否则集成会直接报错对应代码中的错误提示JIRA_CLIENT_ID—— Jira OAuth 应用的 Client IDJIRA_CLIENT_SECRET—— Jira OAuth 应用的 Client SecretREACT_APP_FRONTEND_URI—— 前端地址用于拼接{FrontendUri}/callback/jira回调地址。这些变量的解析定义在 backend/env/environment.goJiraClientId、JiraClientSecret的mapstructure标签即对应上述环境变量名。令牌交换成功后后端会把 Access Token、Refresh Token 与过期时间写入数据库表IntegrationWorkspaceMapping工作区级绑定相关写入逻辑位于 integrations.go 的setWorkspaceToken。令牌生命周期自动刷新与站点解析Jira 的 Access Token 有过期时间Highlight 后端在每次需要调用 Jira API 时会先检查令牌是否仍然有效若令牌有效直接复用若已过期则调用GetRefreshToken见 jira.go携带refresh_token向 Atlassian 令牌端点发起刷新请求得到新的 Access Token 与新的 Refresh Token随后回写数据库并继续后续调用。该流程由 integrations.go 中的GetWorkspaceAccessToken统一驱动对上层调用方完全透明。值得注意的还有站点解析环节Jira Cloud 账号可能关联多个 Atlassian 站点Highlight 调用GET /oauth/token/accessible-resources获取当前令牌可访问的资源列表并在getJiraSiteFromAccessibleResources中挑选包含write:jira-work权限的站点作为目标 Jira 站点见 jira.go。选中站点后其 Cloud ID 与域名会被记录在 Workspace 上后续所有 Jira 请求都基于该站点发起。能力一从评论Comments创建 Jira Task评论功能是 Highlight 团队协作的基础详细能力见 Comments 文档。当 Jira 集成启用后评论将获得一项新能力创建一条以评论正文为内容、并链接回对应 Session 的 Jira Task。在 Session 回放界面点击画面任意位置即可在时间点与屏幕坐标上创建评论——评论天然携带当时发生了什么的上下文。当你希望把这条评论转成工单时在评论输入区域选择Create a Jira issue选项对应前端 NewCommentForm.tsx 中集成的IconSolidJira入口选择目标 Jira 项目与 Issue Type评论保存后Highlight 后端调用 Jira REST API 创建 Task并在评论中链接回该 Session方便后续从 Jira 侧一键跳回回放现场。从源码看创建 Task 的请求体结构在 jira.go 中定义得非常清晰type JiraCreateIssueFields struct { Description string json:description // 评论正文 / 错误描述 Summary string json:summary // 工单标题 Project JiraIssueProjectData json:project // 项目 ID IssueType JiraIssueTypeData json:issuetype // 工单类型 ID }后端通过POST /ex/jira/{cloudId}/rest/api/2/issue完成创建CreateJiraTask并返回包含id、key、self的 JiraIssue随后生成形如{JiraDomain}/browse/{issueKey}的外部链接MakeExternalIdForJiraTask用于在评论与错误详情中展示View in Jira跳转入口。能力二从错误分组Grouping Errors一键建单错误分组是 Highlight 错误监控的核心概念其分组规则详见 Grouping Errors 文档系统依据错误消息与堆栈帧的匹配度将同类错误归入同一错误组。当 Jira 集成启用后错误查看器会显示一个创建 Jira Task 的快捷入口并且工单内容会被预填充为该错误的完整上下文。前端的实现入口位于 ErrorIssueButton.tsx当项目已与 Jira 集成通过useJiraIntegration读取jiraSettings.isIntegrated时错误详情页的Create Issue按钮菜单中会出现 Jira 选项点击后弹出NewIssueModal工单标题默认取getErrorBody(errorGroup?.event)即从该错误组的原始事件中提取的错误正文描述则携带错误组 ID、堆栈、发生页面等完整上下文保证工单自带现场若错误组已经关联过 Jira 工单按钮会切换为已关联状态可直接在 Jira 打开工单、复制工单链接或移除关联removeErrorIssue变更。该入口与 Linear、GitLab、ClickUp、Height、GitHub 等其它 Issue Tracker 集成统一渲染Jira 只是其中一个选项因此团队可以按需为不同项目选择不同的工单系统。项目与 Issue Type 选择记住你的默认配置创建工单时Highlight 会拉取当前 Jira 站点的项目与各项目的 Issue Type 列表供你选择这一交互实现位于 JiraProjectSelector.tsx。其行为有两个贴心细节数据来源项目列表由后端GetJiraProjects即调用GET /ex/jira/{cloudId}/rest/api/2/issue/createmeta获取每个项目附带其可用的 Issue Type默认记忆你选择的项目与 Issue Type 会写入浏览器 localStorage键名为highlight-jira-default-project与highlight-jira-default-issue-type下次建单时自动沿用无需重复选择。此外在创建评论/错误工单的表单中Jira 区域还会提供按关键字搜索已有 Jira Issue的能力后端SearchJiraIssues调用 Jira 的 issue picker 接口currentJQLtext~{query}方便将已有工单直接关联到当前错误或评论而不是重复建单。集成后的整体工作流综合来看启用 Jira 集成后的完整闭环如下在 Integrations 页面点击 Connect完成 OAuth 授权需要自托管环境配置JIRA_CLIENT_ID、JIRA_CLIENT_SECRET、REACT_APP_FRONTEND_URI后端将令牌持久化到工作区映射表过期时自动刷新在 Session 回放中评论或错误分组详情页选择Create a Jira issue选择或复用记忆的Jira 项目与 Issue Type必要时可先搜索已有 Issue后端调用POST /rest/api/2/issue创建工单评论正文/错误上下文被写入 DescriptionSummary 使用错误正文并生成{JiraDomain}/browse/{issueKey}链接回填到 Highlight团队成员从 Jira 打开工单即可看到完整上下文并能一键跳回 Session 回放或错误详情。这条链路把观测回放、错误分组— 协作评论— 工单管理Jira无缝串联让 Bug 与功能增强的跟踪直接嵌入日常的排障流程。相关实现可进一步查阅 backend/integrations/jira/jira.go、backend/integrations/integrations.go 与前端 JiraIntegration、ErrorIssueButton.tsx、NewCommentForm.tsx 等文件。赞分享可观测性后端【免费下载链接】highlighthighlight.io: The open source, full-stack monitoring platform. Error monitoring, session replay, logging, distributed tracing, and more.项目地址https://gitcode.com/gh_mirrors/hi/highlight点击查看免费下载相关推荐trackerslist 完全指南公共 BitTorrent Tracker 列表每天自动更新trackerslist 完全指南公共 BitTorrent Tracker 列表每天自动更新 种子卡在 0.1KB/s、显示0 个对端时多半不是带宽问可观测性后端d2dx让经典暗黑破坏神2在现代PC上焕发新生的终极方案d2dx让经典暗黑破坏神2在现代PC上焕发新生的终极方案 还在为经典游戏《暗黑破坏神2》在现代显示器上的糟糕体验而烦恼吗d2dx是一款专为这款2000年经典可观测性后端Apache Airflow 集成 Jira 通知使用 JiraNotifier 在 DAG/Task 失败时自动创建 Jira IssueApache Airflow 集成 Jira 通知使用 JiraNotifier 在 DAG/Task 失败时自动创建 Jira Issue Apache A后端任务调度工作流自动化数据编排批处理数据工程流程编排上一篇使用Gradio构建机器学习模型交互式演示教程下一篇LadonGo漏洞利用模块详解CVE-2021-21972与Exchange漏洞检测创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表