当前位置: 首页 > news >正文

通过Python脚本git pull 自动重试拉取代码

文章目录

  • 1.需求
  • 2.脚本
  • 3.执行脚本


1.需求

由于网络等原因,拉取GitHub 仓库代码失败, 自动重试拉取

技术: 采用 pexpect 包

2.脚本

retry_pull.py

# -*- coding: utf-8 -*-
#!/usr/bin/python3"""
pip3 install pexpect
"""import pexpect
import os
import sysj = 1
def main():global jprint('invoke main %s' % j)j = j + 1username = 'infuq'password = 'qwert#123'# 进入到仓库目录os.chdir('/mnt/d/Repository/infuq-others')# 执行拉取spawner = pexpect.spawn('git pull')try:i = spawner.expect(['Username'])if i == 0:print('input username: ', username)# 输入用户名spawner.sendline(username)i = spawner.expect(['Password'])if i == 0:print('input password: ', password)# 输入密码spawner.sendline(password)spawner.expect(pexpect.EOF)print(spawner.before.decode().strip())else:# 未出现输入密码的提示, 重试main()else:# 未出现输入用户名的提示, 重试main()except Exception as e:# 出现异常, 重试main()if __name__ == '__main__':main()

3.执行脚本

[infuq tmp]# python3 retry_pull.py
invoke main 1
invoke main 2
invoke main 3
invoke main 4
invoke main 5
invoke main 6
invoke main 7
invoke main 8
invoke main 9
invoke main 10
input username:  infuq
input password:  qwert#123
for 'https://infuq@github.com':
Already up to date.

自动重试了 10 次, 拉取成功

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vscode添加宏定义
  • 虚幻官方文档(持续更新)
  • 漏洞扫描的重要性,如何做好漏洞扫描服务
  • 数学工具 -- 均值滤波计算之python cv2.boxFilter用法
  • uniapp加载第三方字体方案对比(附原生微信小程序方案)
  • 中国编辑期刊
  • Qt+OpenCV配置和测试
  • ARM 处理器异常处理机制详解
  • MYSQL----表的创建
  • 海量数据的处理方法
  • 【C语言初阶】C语言指针全攻略:解锁C语言深层奥秘的钥匙
  • Springboot集成Mybatis在不同文件夹下出现同名文件时启动报错
  • Java实现pdf/word文字识别,调用OCR提取图片文字聚合
  • 厦门商家微信小程序、抖音、支付宝小程序同步上线
  • C语言宏中“#”和“##”的用法
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • #Java异常处理
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 2017年终总结、随想
  • Angular数据绑定机制
  • canvas绘制圆角头像
  • golang 发送GET和POST示例
  • nginx 负载服务器优化
  • Python打包系统简单入门
  • spring boot 整合mybatis 无法输出sql的问题
  • vue-router的history模式发布配置
  • vuex 笔记整理
  • 产品三维模型在线预览
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​io --- 处理流的核心工具​
  • ​补​充​经​纬​恒​润​一​面​
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #70结构体案例1(导师,学生,成绩)
  • #Linux(帮助手册)
  • (55)MOS管专题--->(10)MOS管的封装
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十六)Flask之蓝图
  • (转)C#调用WebService 基础
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)可以带来幸福的一本书
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET6实现破解Modbus poll点表配置文件