是否有fly命令或其他方式在Concourse UI中对Pipelines按名称排序?
Concourse Pipeline 按名称字母排序的实现方式
目前Concourse本身没有直接提供配置项或fly命令来修改UI中Pipeline的默认排序规则(默认是创建顺序),但可以通过以下两种方式实现按名称字母排序的效果:
浏览器端自定义用户脚本:
借助Tampermonkey这类用户脚本工具,重写Concourse UI的排序逻辑。核心是监听Pipeline列表的渲染事件,获取列表元素后按名称字段重新排序并渲染。示例逻辑如下:const sortPipelinesByName = () => { const pipelineList = document.querySelector('.pipelines-list'); if (!pipelineList) return; const items = Array.from(pipelineList.children); // 按名称字母排序 items.sort((a, b) => { const nameA = a.querySelector('.pipeline-name').textContent.trim().toLowerCase(); const nameB = b.querySelector('.pipeline-name').textContent.trim().toLowerCase(); return nameA.localeCompare(nameB); }); // 重新插入排序后的项 items.forEach(item => pipelineList.appendChild(item)); }; // 页面加载时触发排序 window.addEventListener('load', sortPipelinesByName); // 监听DOM动态变化,适配SPA场景 const observer = new MutationObserver(sortPipelinesByName); observer.observe(document.body, { childList: true, subtree: true });通过API批量调整Pipeline优先级:
Concourse的Pipeline顺序由团队内的"优先级"决定(创建时默认按顺序分配),可以通过API批量更新优先级,实现按名称排序的效果:- 使用fly命令导出当前团队的Pipeline信息:
fly -t <你的target名称> pipelines --json > pipelines.json - 编写脚本读取
pipelines.json,按名称字母排序后,为每个Pipeline分配递增的优先级(数值越小,在UI中越靠前)。 - 调用API更新单个Pipeline的优先级:
curl -X PUT \ -H "Authorization: Bearer $(fly -t <你的target名称> auth token)" \ "https://<你的Concourse地址>/api/v1/teams/<团队名称>/pipelines/<Pipeline名称>/order" \ -d '{"priority": <新的优先级数值>}'
这种方式修改的是服务端的Pipeline顺序,所有用户访问UI时都会看到排序后的效果,但每次新增、删除Pipeline后,需要重新执行排序脚本调整优先级。
- 使用fly命令导出当前团队的Pipeline信息:
内容的提问来源于stack exchange,提问作者Biju Gopinathan
相关产品推荐
相关产品推荐

