部分GitLabApi使用 实现本地资源更新

1,273 阅读1分钟

s

最近项目中有个需求,需要根据版本号的变化更新下载仓库中的资源并放到本地。然而不想借助服务端来做逻辑,那样的话实时性不好。最后经过讨论使用gitlab的api来实现下载,中间调研了下发现不能直接获取仓库版本号,那么只好桥接来实现。(gitlabApi实现仓库更新下载)

具体方案逻辑:

1.先获取自己的ptivate_toke,然后根据接口获取projectid,再根据接口获取到仓库中已放的json文件,并解析出来版本号。

2.拿着版本号与本地保存的版本号做校验,如果本地没有或者本地的版本号小,就调用下载文件Api,把资源zip包下载下来并做解压解析处理,来达到更新资源需求。

所使用的Api:

注意点就是private_token,该token是你的账号的唯一token,需要在你登录gitlab后查找获取。

1.获取该用户下的所有project,找到projectid,在下面读取指定文件接口需要。

http://gits.xxx.com/api/v3/projects?private_token=q7vy3J1p3ZXGzHFQGwXX&per_page=50

2.读取指定文件接口

https://gits.xxx.com/api/v3/projects/48/repository/files?private_token=q7vy3J1p3ZXGzHFQGwXX&file_path=version.json&ref=master

3.下载具体文件

https://gits.xxx.com/webpage/XXXwebpage/raw/master/www.zip?private_token=q7vy3J1p3ZXGzHFQGwXX
v4接口:
https://gits.xxx.com/api/v4/projects/3/repository/files/www.zip/raw

另外还有个直接获取整个项目压缩成zip的接口

http://gits.xxx.com/webpage/XXXwebpage/repository/archive.zip?private_token=q7vy3J1p3ZXGzHFQGwXX

获取最后一条commit信息接口

https://gits.xxx.com/api/v3/projects/48/repository/commits/分支?private_token=q7vy3J1p3ZXGzHFQGwXX