ad

《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_3.7 GitLab REST API

网友投稿 132 2023-11-07

【摘要】 本书摘自《Python+3自动化软件发布系统》一书中第3章,第7节,由陈刚、王洪军编著。

3.7 GitLab REST API使用讲解

在了解了Jenkins 的 API 和 Salt 的 API 之后,再来了解一下自动化工作流的最 后一个系统,GitLab 的 API。

这个 GitLab 的 API 有什么用处呢?

现在看起来,好像GitLab 的 API 对我们暂时没有用武之地,因为Jenkins 已经 帮我们打点了和GitLab 交互的一切了,所以,我们在自动化发布时,已不需要直接和 GitLab 打交道了。其实不然,学习 GitLab 的 API, 对我们而言有以下几个好处。第 一,它可以加深我们对 GitLab 系统的了解,让我们可以更好地运维这个系统。第二, 可以在自动化软件发布系统上,记录对每一次发布的源代码版本,可以让用户直接定 位到发布时的代码。第三,如果我们之后想要在自动化系统里推出更多的功能(SQL 发布之类),就可以利用GitLab 的 API 功能,直接读取 SQL 文件内容到我们的数据 库,实现简单的 SQL 发布。

基于以上原因,这一节对GitLab 的 API, 也需要进行深入的学习和了解,

《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_3.7 GitLab REST API

如何利用GitLab 的 API 呢?

和Jenkins 类似,GitLab 也提供了操作 API 的官方文档:https://docs.gitlab.

com/ce/api/ 。 但这个操作是统一标准的,通过 REST API 方式,支持主流的各种语 言(Go、Java、JS、Python 等)。但为了在 Python 环境下更有效率、更规范、更自然地 操作这些 API, 我们这里也使用了一个第三方库Python-GitLab 去操作这些 API, 写 作本书时,它的最新版本是1.6.0。

接下来,让我们一步一步地学习 Python-GitLab 的用法吧。

3.7.1 Python-GitLab的安装、配置

① 安装 Python-GitLab, 运行如下命令:

pip install python-gitlab

输出如下内容,表示安装完成:

Installing collected packages:python-gitlab

Running setup.py install for python-gitlab ...done

Successfully installed python-gitlab-1.6.0

② 在使用Python-GitLab 连接GitLab 系统时,需要准备两个数据:网址和 Ac- cess Token。网址我们已经有了,对于笔者的测试环境,URL 为 http://192.168.1. 112。而 Access Token 是 GitLab 用来认证接入的,需要在 GitLab 上配置。我们点 击登录进去后,首先在主页的右上角,在下拉菜单中选择 Settings 设置,会出现用户 的设置页。然后,在设置页里,点击右边导航的 Access Tokens,即进入了 Access

Token 管理页面。在新开始的新系统里,没有 Access Token,需要新建一个。在输 入了信息(名称、过期时间、API 范围)之后,系统就会为我们生成一个 Access Token

了 , 如 图 3 - 4 2 所 示 。

③ 请记住这个新生成的 Access Token,因为在接下来的测试中会用到。对于笔 者的测试环境来说,本次生成的 Token 是:D98-t7HJpXxwhq8qbXcJ 。 记住,这个 Token 当时就要找个安全的地方保存下来。在这次显示之后,以后再进入这个页面, 我们只知道有这个 Token 存在,但不能再知道 Token 的值了,如图3-43所示。

切记,如果丢失了再生成一个值,在测试环境问题不大,但如果在一个大的 IT 公司,分发替换 Token, 也是有不小的工作量的。

3.7.2 Python-GitLab 常用功能使用

在安装好 Python-GitLab 库,并生成好 Access Token 之后,就可以用它们来测 试 GitLab API 提供的功能了。以下的几个示例,都在 Python IDEL里输入代码来 测试。如果你对IDEL 不熟悉,可以通过查看本书附录来了解。

① 输出 GitLab 上所有项目组的 ID 及名称。

代码如下(URL 和 Token, 前面都已知了,直接使用)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_3.3 整理工程结构
下一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_3.2.2 可达性分析算法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×