介绍
这是《如何用 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 实例(请更改数据库配置):
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,点击登录,没有账号则可以在登录页面注册一个账号
成功登录:
配置介绍
Gitea 提供的认证基本流程按照 OAuth2 协议进行,建木 CI 依照此流程来整合第三方平台的登录。
同时建木 CI 登录使用 jwt 来实现
首先介绍一下如果想要使用 Git 平台账号登录建木 CI 需要哪些配置,此处以 Gitea 为例:
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 平台上如何创建第三方应用
登录 Gitea 平台,点击右上角 Gitea 的图标中的设置
点击上方中间的应用,开始创建第三方应用
填写必要的信息
点击创建应用
获取到必需的 Client ID,Client Secret
效果演示
1. 如图配置好 Git 平台账号登录建木 CI 配置文件
2. 启动项目并访问
启动成功之后,要求我们使用 Gitea 来登录
3. 点击图标登录
进入 Gitea 的授权页面,并同意授权
页面跳回建木 CI,看到正在登录
稍等片刻,登录成功
官⽹:https://jianmu.dev
代码:https://gitee.com/jianmu-dev
文档:https://docs.jianmu.dev
示例:https://ci.jianmu.dev
评论