用python实现码云推送后部署

前言

本来码云用的好好的,可是有一天不知道为啥上传后没有自动部署,只能手动
看了一下竟又是一个付费的东西……

我怎么可能付费(小声嘀咕:难道码云不知道免费才能获得用户的心吗?)
咳咳,由于种种原因,我是不可能付费的,可是每次部署都要手动
实在是烦。于是产生了用python实现部署的想法

api

经过一阵捣鼓,发现page部署有这两个接口,去到部署界面,上方的地址栏可取得

1
2
1.https://gitee.com/用户名/仓库名/pages/rebuild
2.https://gitee.com/用户名/仓库名/pages

第一个用来部署
第二个用来检测是否部署完毕

部署

1
https://gitee.com/用户名/仓库名/pages/rebuild

请求类型: POST
参数:

  • branch: 要的部署分支
  • build_directory: 要的部署目录,为空则为全部
  • force_https: 是否使用https

请求头:

  • Cookie
  • User-Agent
  • X-CSRF-Token
  • X-Requested-With

检测

1
https://gitee.com/用户名/仓库名/pages

请求类型: POST
参数:

  • branch: 要的部署分支
  • build_directory: 要的部署目录,为空则为全部
  • force_https: 是否使用https

请求头:

  • Cookie
  • User-Agent
  • X-CSRF-Token
  • X-Requested-With

python代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import requests
import time

d_url = "https://gitee.com/用户名/仓库名/pages/rebuild"
check_url = "https://gitee.com/用户名/仓库名/pages"
headers = {
"Cookie":"",
"User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
"X-CSRF-Token":"p5FjYzU7NpTXq3HxUXh8PSuoHkTXMkaQER8Gq7VfIu0=",
"X-Requested-With":"XMLHttpRequest"
}
data = {
"branch":"master",
"build_directory":"",
"force_https":"true"
}

# 开始部署
res = requests.post(d_url,data=data,headers=headers)

# 判断是否部署成功
success = "正在部署,请耐心等待..."
if success in res.text:
print(success)
# 检测是否成功
while 1:# 循环判断
time.sleep(2) #延时2秒后再判断

res = requests.post(check_url,data=data,headers=headers)
pd = "已开启 Gitee Pages 服务"
if pd in res.text:
print(pd)
break
else:
if success in res.text:
print(success)
else:
print(res.text)
print("发生未知错误!")
input("回车退出!")#让小黑框停留一下
else:
print(res.text)
input("回车退出!")#让小黑框停留一下

将py文件放到桌面,需要部署时双击一下,等到自动退出就是OK了!

自我评价

从这件事可以看出我还是聪明的,但也是懒的。o(^▽^)o


满分是10分的话,这篇文章你给几分,您的支持将鼓励我继续创作!