Skip to content

Latest commit

 

History

History
104 lines (87 loc) · 3.22 KB

2.md

File metadata and controls

104 lines (87 loc) · 3.22 KB

引用代码库管理

部署服务一个重要环节就是知道代码在哪
因此我们需要先把代码库管理起来
一般情况下,一个公司只有一个代码库(当然你有一堆也没有人管理你)
一般都是自建的gitlab,我们这里就集成gitlab的简单管理(之后可能会增加更多功能)

tag: 0.6.2

后端

首先我先管理gitlab的基本信息,也就是地址、用户名、密码之类的
再然后管理gitlab下所有project(即代码库repo)
一般情况下,我们搭建了自己的gitlab后,创建一个专门用于cicd的账号
因为我们要通过接口来操作gitlab,所以这个账号要创建一个access token
创建方法:头像->Settings->Access Tokens, 创建时选中api
我们这里一样通过同步的方式来管理gitlab的代码库(以后其实可以通过gitlab的system hook完成)

涉及文件及目录

requirements.txt
utils/gitlab_cli.py
component/gitlab/models.py
component/gitlab/controllers/server.py
component/gitlab/apis/server.py
component/gitlab/urls/server.py
component/gitlab/urls/__init__.py
component/urls.py
component/gitlab/controllers/sync.py
component/gitlab/controllers/project.py
component/gitlab/apis/project.py
component/gitlab/urls/project.py
rurality/urls.py
data/sql/rurality.sql
rurality/settings.py
scheduler/tasks/berry.py

代码

requirements.txt:
先安装控制gitlab的依赖 pip install -r requirements.txt

utils/gitlab_cli.py:
这里实现了一些操作gitlab的方法

component/gitlab/models.py:
定义两个model,一个用来存储gitlab服务的信息,一个用来存储代码库信息
其中GitlabServerModel中密码和token,以后会加权限,不是谁都能看到的
GitlabProjectModel中ssh_url用于拉取代码使用
有一点需要注意,在配置的gitlab账号需要有拉取所有代码库的权限(如果以后有其它更高级操作,可能还需要更大的权限)

component/gitlab/controllers/server.py
component/gitlab/apis/server.py
component/gitlab/urls/server.py
component/gitlab/urls/__init__.py
component/urls.py

操作gitlab服务的方法及接口

component/gitlab/controllers/sync.py
component/gitlab/controllers/project.py
component/gitlab/apis/project.py
component/gitlab/urls/project.py
rurality/urls.py

控制gitlab代码库的方法及接口

scheduler/tasks/berry.py:
在同步任务中增加gitlab类型的对应操作

rurality/settings.py:
增加gitlab apps配置

data/sql/rurality.sql:
导入最新的sql

前端

涉及文件及目录

src/api/component/gitlab/index.js
src/api/component/gitlab/url.js
src/views/system/gitlab_server/index.vue
src/views/system/gitlab_server/components/ObjDialog/index.vue
src/views/component/gitlab/index.vue
src/router/modules/system.js
src/router/modules/component.js
src/router/index.js

代码

src/views/system/gitlab_server/index.vue
src/views/system/gitlab_server/components/ObjDialog/index.vue

只有超级管理员可以操作gitlab服务相关信息,这属于系统初始化的一个步骤

src/views/component/gitlab/index.vue:
对于代码库目前只有列表展示及同步操作