「Gitea篇」如何用Git平台账号登录建木CI
2022-09-05 Freedom
「Gitea篇」如何用Git平台账号登录建木CI
作者:Freedom 发布时间:2022-09-05 10:00:00

介绍

这是《如何用Git平台账号登录建木CI》系列文章的第三篇,建木CI立志整合所有第三方Git平台来登录建木CI!此篇我们将整合Gitea平台来登录建木CI

PS: 引流

v2.5.4版本开始,建木CI可以使用Gitea账号进行登录了,这篇文章给大伙讲讲如何配置、使用Gitea登录建木CI

环境搭建

Gitea支持私有化部署,我们将搭建一个Gitea平台来测试登录建木CI

使用docker-compose的方式来搭建Gitea平台(详情请参见如何使用docker搭建Gitea),方便快捷,使用docker-compose up -d执行以下docker-compose脚本运行一个Gitea实例(请更改数据库配置):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: "3"

networks:
gitea:

services:
server:
image: gitea/gitea:1.17.1
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=xxx.xxx.xxx.xxx:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=root
- GITEA__database__PASSWD=root
restart: always
networks:
- gitea
volumes:
- /home/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "223:22"

在网页上访问刚刚搭建的Gitea,点击登录,没有账号则可以在登录页面注册一个账号

image-20220824122245396

成功登录:

image-20220824122341466

配置介绍

Gitea提供的认证基本流程按照OAuth2协议进行,建木CI依照此流程来整合第三方平台的登录。

同时建木CI登录使用jwt来实现

首先介绍一下如果想要使用Git平台账号登录建木CI需要哪些配置,此处以Gitea为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
jianmu:
api:
# 设置jwt签名使用的密钥
jwt-secret: xxxxxxxxxxxx
# 设置jwt的过期时间,单位毫秒
jwt-expirationMs: 86400000
oauth2:
# 是否允许用户注册并登录,某些情况下可能只需要团队的特定一部分人登录到CI平台,当这部分人注册并登录完毕后,可将此配置配置为false
allow-registration: true
# 指定Gitea平台
gitea:
# 表示相应类型,此处的值固定为"code"
response-type: code
# 表示请求类型,此处的值固定为"authorization_code"
grant-type: authorization_code
# 请求token时使用的url
token-url: http://ip:prot/login/oauth/access_token
# 获取授权code时使用的url
code-url: http://ip:prot/login/oauth/authorize
# 调用api登录时使用的url
api-url: http://ip:prot/api/v1/
# 第三方应用Client ID,详情请参照平台规范
client-id: xxxxxxxxxx
# 第三方应用Client Secret,详情请参照平台规范
client-secret: xxxxxxxxxx

简要介绍一下在Gitea平台上如何创建第三方应用

  1. 登录Gitea平台,点击右上角Gitea的图标中的设置

    image-20220824121112937

  2. 点击上方中间的应用,开始创建第三方应用

    image-20220824121217023

  3. 填写必要的信息

    image-20220824121344609

  4. 点击创建应用

    image-20220824121358498

  5. 获取到必需的Client ID,Client Secret

    image-20220824121429803

效果演示

1. 如图配置好Git平台账号登录建木CI配置文件

image-20220825145808625

2. 启动项目并访问

启动成功之后,要求我们使用Gitea来登录

image-20220825150149519

3. 点击图标登录

进入Gitea的授权页面,并同意授权

image-20220825145954904

页面跳回建木CI,看到正在登录

image-20220824180753864

稍等片刻,登录成功

image-20220824181348046