在Python中调用Gitee API实现对仓库的管理

在Python中调用Gitee API实现对仓库的管理

记录一下调用Gitee API的经历

HTTP的请求方法

HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

序号方法描述
1GET用于请求服务器发送某个资源。GET 请求不应该对服务器上的资源做出任何更改,并且应该是幂等的(即多次重复的请求应该产生相同的结果)。例如,当你在浏览器中输入 URL 地址时,浏览器会发送一个 GET 请求来获取该 URL 对应的网页。
2HEAD类类似于 GET 请求,但服务器不返回请求的资源主体,只返回响应头。HEAD 请求通常用于获取资源的元信息,如资源的大小、类型等,而不需要获取资源的实际内容。
3POST用于向服务器提交数据,通常用于提交表单或上传文件。POST 请求可能会导致服务器上的状态更改,并且不一定是幂等的。例如,在提交注册表单时,浏览器通常会发送一个 POST 请求,将用户提供的信息发送到服务器进行处理。
4PUT用于向服务器上传资源,通常用于更新已存在的资源或创建新的资源。PUT 请求应该是幂等的,即多次执行相同的 PUT 请求应该产生相同的结果。
5DELETE用于请求服务器删除指定的资源。DELETE 请求应该是幂等的,即多次执行相同的 DELETE 请求应该产生相同的结果。
6CONNECT用于建立到服务器上指定端口的隧道,通常用于代理服务器。
7OPTIONS用于请求服务器返回支持的 HTTP 方法和其他选项。例如,客户端可以发送 OPTIONS 请求来确定服务器支持哪些 CORS(跨域资源共享)策略。
8TRACE回显服务器收到的请求,主要用于测试或诊断。
9PATCH用于在请求-响应链上的每个节点获取传输路径。TRACE 请求通常用于调试和测试,以查看请求在经过各种代理服务器和中间件时如何被修改。

Python requests模块简介

Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。

requests 方法如下表:

方法描述
delete(url, args)发送 DELETE 请求到指定 url
get(url, params, args)发送 GET 请求到指定 url
head(url, args)发送 HEAD 请求到指定 url
patch(url, data, args)发送 PATCH 请求到指定 url
post(url, data, json, args)发送 POST 请求到指定 url
put(url, data, args)发送 PUT 请求到指定 url
request(method, url, args)向指定的 url 发送指定的请求方法

一个example

# 导入 requests 包
import requests

 
kw = {'s':'python 教程'}

# 设置请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
 
# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("https://www.runoob.com/", params = kw, headers = headers)

# 查看响应状态码
print (response.status_code)

# 查看响应头部字符编码
print (response.encoding)

# 查看完整url地址
print (response.url)

# 查看响应内容,response.text 返回的是Unicode格式的数据
print(response.text)

在Python中调用Gitee API

获取Gitee token(这里使用长期令牌)

在Gitee中选择 个人主页——个人设置——私人令牌

配置一个私人令牌 ,并记录获得的token

例子:清空仓库

在Gitee API文档中获取需要的Request URL

Gitee API 文档

打开Gitee API文档,查找清空仓库这一功能,如下图

image-20240603161635392

我们可以先填入对应内容先在该页面进行测试,如下图。

image-20240603161926634

若返回的Response Code为204,则指令没有问题,然后我们复制Request URL即可。

编写Python代码

access_token = "access_token"#写入自己的token
user_name = "user_name"#写入自己的用户名
def clear_repository(repo_name):

    headers = {
        "Authorization": f"Bearer {access_token}"
    }

    url = f"https://gitee.com/api/v5/repos/{user_name}/{repo_name}/clear"
    print(url)
    
    #根据request请求的类型选择(如get,put,delete等)
    response = requests.put(url, headers=headers)
    if response.status_code == 204:
        print(f"Repository '{repo_name}' clear successfully.")
    else:
        print(f"Failed to delete repository '{repo_name}'. Status code: {response.status_code}")

if __name__ == "__main__":
    repo='pic'#仓库名
    print(access_token)
    print(user_name)
    print(repo)
    #delete_repository(repo)
    clear_repository(repo)

删除仓库

import requests

# 在这里填入你的个人访问令牌
access_token = ""
user_name = ""
# 删除仓库
def delete_repository(repo_name):
    headers = {
        "Authorization": f"Bearer {access_token}"
    }

    url = f"https://gitee.com/api/v5/repos/{user_name}/{repo_name}"
    print(url)
    
    response = requests.delete(url, headers=headers)
    if response.status_code == 204:
        print(f"Repository '{repo_name}' deleted successfully.")
    else:
        print(f"Failed to delete repository '{repo_name}'. Status code: {response.status_code}")
        
if __name__ == "__main__":
    repo='pic'
    print(access_token)
    print(user_name)
    print(repo)
    delete_repository(repo)

参考

HTTP 请求方法 | 菜鸟教程 (runoob.com)

Python requests 模块 | 菜鸟教程 (runoob.com)

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值