GitHub每周都会收到核心服务的可访问性评分。直到最近,当某项服务低于阈值时,我们仍依赖完全手动的修复链:有人阅读报告,在代码库中创建问题单,猜测负责人,在单独的治理跟踪器中追踪状态,并试图让领导层保持知情。结果可想而知:响应缓慢、跟进不均衡,且随着服务和检查的增加完全无法扩展。
我们意识到必须做出改变,于是决定使用GitHub Copilot将这个脆弱的过程转变为自动化、可审计的循环。这就是我们实现这一变革的故事。
问题工作流
首先,让我们谈谈起点。每周三,可访问性评分会出现在跟踪看板中,低于定义分数的服务需要立即修复。当我们发现不合格评分时,会(低效地)按以下方式处理:
- 在代码库中手动创建跟踪问题单
- 猜测正确的负责人
- 期望有人跟进
- 在可访问性治理代码库中手动跟踪进度
这无法扩展。团队收到不一致的通知。领导层缺乏可见性。修复需要数周而非数天。
使用Copilot构建
我们如何解决这个问题?我们需要一种可扩展、低维护的方式来触发、跟踪和关闭可访问性修复,而无需持续手动协调。我们选择使用GitHub Copilot自动化整个工作流。现在我们的工作流:
- 当可访问性评分低于特定分数时,自动在服务代码库中创建GitHub问题单
- 为持续不合规的问题单更新最新评分数据
- 将修复问题单与客户关系管理(CRM)跟踪看板进行交叉引用
- 当服务恢复到可接受等级时自动关闭链接
- 在治理看板和服务团队之间同步负责人
- 提及利益相关者以提高透明度,同时避免代码库垃圾信息
Copilot如何改变游戏规则
构建此类内部自动化的传统方法意味着起草详细需求,将其优先纳入团队待办事项,等待工程容量,并在多个冲刺迭代周期后才能看到端到端的工作价值。这可能需要数周甚至更长时间。相反,我们花了五到六个小时与Copilot直接对话,快速原型设计和测试想法。
我们的工作循环特意保持轻量级。每次迭代大致遵循以下模式:
- 用简单语言框定单个规则(例如,检测持续不合规并确保问题单存在或使用当前上下文更新)
- 要求Copilot搭建或调整代码(例如,新的辅助函数、数据解析调整、API优化),而不是从头开始编写所有内容
- 使用小型合成的评分快照固定装置(例如,初始下降、持续下降、恢复)在本地运行逻辑
- 审查输出(例如,问题单正文、标签、负责人)并优化提示以收紧命名、阈值或分支
- 添加防护措施:幂等性(即,如果有效问题单已存在则跳过)、简单阻尼以避免反复关闭,以及对不完整数据的防御性处理
- 记录高级决策(例如,“更新现有问题单”与“无操作-合规”)以快速验证意图
- 重新运行固定装置(加上变体)以确认没有回归,然后提交并移至下一个规则
由于每次迭代都限定在单一行为范围内,Copilot的建议保持相关性,我们避免了大型重构。当出现新的边缘情况时,如暂时性分数下降或由于服务重命名导致的重复问题单创建,我们添加另一个短循环而不是安排会议。这种快速节奏使我们能够在没有正式项目计划的情况下收敛到生产就绪的方案。
从原型到生产
我们首先构建了一个快速原型,以可靠检测不合规服务、展示或更新修复问题单,并保持所有权可见。我们还希望证明无需人工分类即可实现这一目标。最初目标是在暂存环境中向一小组历史上已知评分波动的服务进行受控推出。这样我们可以在真实条件下观察行为,然后为生产环境中的广泛部署重建工作流。
我们计划的推出路径是渐进的:
- 在暂存环境中使用个人访问令牌构建原型
- 在暂存环境中观察少量测试周评分周期,使用模拟服务代码库并调整阈值或标签
- 重构代码并迁移到GitHub应用以获得适当的安全性和范围权限
- 部署到生产环境,并推广到我们跟踪可访问性合规的所有服务
- 在噪音最小化后正式化治理报告
为了验证,我们录制了简洁的端到端演示,展示输入评分变化如何触发自动问题单创建、交叉链接、负责人同步以及重复失败时的后续更新。该工件使利益相关者能够异步评估完整体验。
反应是决定性的。看到具有清晰结构和可追溯性的实时问题单加速了超越原型阶段的批准。我们获得了工程合作伙伴关系以将流程生产化,建立了用于强化的沙盒环境,并开始实施具有适当安全和扩展考虑的GitHub应用版本。
实际影响
影响来自两个层面:我们引入的自动化以及Copilot改变构建和迭代者的方式。
自动化成果:
- 修复问题单现在及时出现(或更新),而不是等待手动分类,使服务所有者能够立即了解解决这些问题的策略要求,并在请求例外时承担责任
- 所有权、状态和交叉链接位于同一位置,为领导层提供可信的快照,无需临时电子表格或通知。这也加强了可访问性项目所有者和工程团队之间的合作关系
- 重复或过时的外联减少,因为幂等逻辑和阻尼防止了嘈杂的关闭和重新打开波动
- 治理工作从文书跟踪转向更高价值的系统性可访问性模式分析,并实现了更严格的治理控制
Copilot支持的交付成果:
- 领域专家构建了原型,使工程师能够专注于其关键路线图工作
- 减少了工程上下文切换。合作伙伴时间花在安全、扩展和生产强化上,而不是基本脚手架
- 降低了未来合规或治理工具的门槛,因为现在有了其他人可以遵循的可重复模式
在上下文中,这种转变在可访问性评分发出新风险信号时最为重要:系统现在会展示问题、分配所有权并保持状态可见,而不是等待某人注意到并启动手动链。所有这些都在跟进时间衰减之前完成。多亏了Copilot,该系统提前数周存在,并且可以由最接近治理问题的人进行迭代。
底线是我们从"让我写个工单"转变为"这是具有可衡量修复速度和可见性影响的工作代码"。这种转变改变了内部合规工具能够实现的速度预期。