Linear不支持原生循环,批量处理需用Make(List Issues→Router→Loop)、Python(for+break控制中断)或Zapier(Filter+Loop)实现,注意API限速与安全规范。

Linear中用循环批量处理任务
在Linear中批量更新状态、分配负责人或添加标签时,需借助第三方自动化工具(如Zapier、Make或自建脚本)实现循环逻辑,因为Linear原生不提供内置循环操作。直接在Linear界面点击几次就能完成的操作,若涉及上百个Issue,手动逐个处理会浪费大量时间且极易出错。
用Make(Integromat)实现For Each循环遍历Linear Issue列表
方法一:通过「List Issues」→「Router」→「Loop」三步串联完成批量操作。
第一步:在Make中添加Linear应用,使用「List Issues」操作获取目标团队下所有未关闭的Issue,设置Filter为status != "Done";【务必勾选“Return all results”】,否则默认只返回前50条。
第二步:将「List Issues」输出连接至「Router」模块,选择「Split array into individual items」模式——这一步会把Issue数组自动拆成单个对象流,为后续循环铺路。
第三步:在Router分支后接入「Linear: Update Issue」操作,映射字段如status = "In Progress"、assigneeId = "usr_xxx";每次触发即作用于一个Issue。整个流程跑完,等效于执行了N次独立更新。
注意:Router本身不计数也不限速,但Linear API有每分钟100次请求的速率限制,若Issue超100个,需在Router后加「Delay」模块设1秒间隔,避免触发429错误。
用Python脚本调用Linear API实现条件循环
方法二:当需要“对每个高优先级Issue打上#urgent标签,直到遇到第一个priority = 'Low'为止”这类带中断逻辑的场景,必须用代码控制。
安装依赖:pip install requests python-dotenv
在脚本开头加载Linear API密钥和团队ID,调用GET /issues接口分页拉取数据(每次limit=50),用while循环持续fetch next page,直到response.data.issues为空或遇到break条件。
核心逻辑段落如下:
for issue in issues:
if issue["priority"]["name"] == "Low":
break
if issue["priority"]["name"] == "Critical":
requests.post(f"https://api.linear.app/v1/issues/{issue['id']}/labels",
headers={"Authorization": API_KEY},
json={"labelId": URGENT_LABEL_ID})
这一步必须用for+break而非while True,否则无法安全终止;【API密钥切勿硬编码进脚本,必须从环境变量读取】。
用Zapier的Filter + Loop组合跳过特定Issue
方法一:创建Zap时,在「Linear: New or Updated Issue」触发后,立即接「Filter」模块,设置条件为issue.status.name does not equal "Cancelled"。
方法二:Filter通过后,接「Loop」模块(需Zapier paid plan),将输入数组设为「List Issues」动作返回的data,循环体内执行「Linear: Add Comment」。
这一步不能省略Filter前置步骤——否则Cancelled状态的Issue也会被循环处理,造成无效通知。

















