做直播网站需要学什么,群晖ds218+做网站,青岛网络优化排名,黄山网站建设黄山工作中的场景#xff0c;记录下来分享给大家。需求公司私有部署了gitlab保存公司代码#xff0c;希望在发布系统中可以展示项目在gitlab的提交历史#xff0c;供发布人员选择提交commit记录并构建对应的docker镜像。不可行的方案但是很快我就发现#xff0c;这个方案是不可…工作中的场景记录下来分享给大家。需求公司私有部署了gitlab保存公司代码希望在发布系统中可以展示项目在gitlab的提交历史供发布人员选择提交commit记录并构建对应的docker镜像。不可行的方案但是很快我就发现这个方案是不可行的。这个库实际上相当于git客户端它必须把gitlab远程仓库的代码checkout到本地然后才能执行类似git log命令的方式获取提交日志。对于一个web应用来说仅仅为了看一下提交历史就要把代码下载回来显然是合理的。建议方案解决方法是直接访问gitlab的API它拥有所有的仓库因此也可以快速的查看提交历史。首先创建客户端import gitlabclient gitlab.Gitlab(https://gitlab-team.tiantian.com, private_tokenXXXXXXXXXX, timeout2, api_version3)第一个参数gitlab服务端地址private_token它支持多种登录认证方式常见的就是帐号密码 或者 授权一个token(去gitlab中分配)。timeout超时时间单位是秒。api_version需要看一下gitlab服务端的版本较旧的服务端版本提供的是v3的API最新的提供的是v4 API版本不对应是无法访问通gitlab的。现在我们要主动发起认证client.auth()然后获取到projectproject client.projects.get(python/web)该库整体遵循同样的面向对象以及资源风格因此获取projects就是projects.get()列举projects就是projects.list()。拿到project后就可以进一步获取其下的commits信息commits project.commits.list(ref_namemaster, page0, per_page20)print(commits)可以筛选特定分支的提交记录支持翻页(注意第一页page0)。最终得到的结果是什么呢[, , , , , , , , , ]没错若干ProjectCommit对象组成的列表依旧遵循面向对象风格。我们可以遍历每个Commit对象进一步获取其信息for c in commits:print(c.id, c.committer_name, c.created_at, c.message)输出如下e8c0320b7d76888b50b4704c986ab162f729d9d2 owen 2019-02-12T15:39:51.00008:00 修复BUG7e0e6a24742fe8dca494aee37dacfff4c5986102 owen 2019-02-01T18:17:46.00008:00 添加REDISe91f06831edaa848ffa9e43d919a91140731af52 owen 2019-01-24T14:02:33.00008:00 删除调试代码最后相信大家已经掌握了该库的使用思路具体每个对象有什么方法有哪些属性呢