我想问有没有办法通过运行脚本来禁用所有TeamCity项目的构建触发器?
我有一个场景,我需要禁用所有构建触发器,以防止构建运行.这是因为有时候,我可能需要在构建代理计算机上执行一些升级过程,这将需要一天以上的时间.
我不希望在每个不同的TeamCity项目上为每个构建触发器手动单击"禁用"按钮.有没有办法自动化这个过程?
提前致谢.
使用Team City REST API.
鉴于您的Team City部署在http://dummyhost.com并且您启用了具有系统管理员角色的访客访问权限(否则只需从URL中的guestAuth切换到httpAuth并在请求中指定具有密码的用户,详细信息在文档中)您可以执行下一步操作:
获取所有构建配置
GET http://dummyhost.com/guestAuth/app/rest/buildTypes/
对于每个构建配置,获取所有触发器
GET http://dummyhost.com/guestAuth/app/rest/buildTypes/id:***YOUR_BUILD_CONFIGID***/triggers/
对于每个触发器禁用它
PUT http://dummyhost.com/guestAuth/app/rest/buildTypes/id:***YOUR_BUILD_CONFIGID***/triggers/***YOUR_TRIGGER_ID***/disabled
请参阅此处的完整文档