集成Git客户端

iSoftBook支持与Git Bash、Sourcetree、IntelliJ IDEA的VCS等Git客户端集成,访问iSoftBook项目的代码仓库。
- 应用用户个人账号进行认证访问。
- 基于平台统一权限控制规则,实行代码仓库访问授权。
- 区分push和pull权限,保护master分支。
- 集成Git客户端详细规则和示例请见:代码仓库管理
Jenkins集成概述
iSoftBook平台提供专属的CI/CD集成接口,快捷、安全、双向、无缝集成Jenkins服务器。
iSoftBook CI/CD集成特点:
- 配置项目专属集成账号,仅能执行本项目代码库的clone和pull操作,不能执行push操作,保障集成过程中平台数据安全。
- 专属集成账号遵循项目集的权限访问控制规则,无需单独授权,可以访问项目集中的代码仓库,支持规模化、多模块CI/CD集成。
- 支持配置一个或多个不同功能目的的集成服务器,代码库push操作时,触发CI/CD服务器实时执行。
- 基于平台统一账号和权限认证,用户直接查阅Jenkins服务器构建状态、日志输出和构建工件,无需Jenkins用户配置和登录。
集成配置核心要点:
- 设置iSoftBook项目集成账号,并以该账号创建Jenkins凭据,供Jenkins检出iSoftBook代码所用。
- 设置Jenkins服务器的URL、集成项目名称。
- 设置Webhook Token,iSoftBook据此安全触发Generic Webhook Trigger。
- 构建触发时,传递JSON参数:{"ref":"refs/heads/develop","committer":"zhangsan","message":"..."},向CI/CD服务器提供推送的分支、代码提交人和提交消息等参数信息,据此参数化配置Generic Webhook Trigger的Cause字段,实时参数化分支检出和构建。
- 设置Jenkins服务器的用户名和其API Token,iSoftBook据此访问Jenkins服务器,显示集成构建信息。
Jenkins集成配置
1. iSoftBook集成Jenkins的配置
项目主页中,点击“集成”选项卡,进入CI/CD集成配置页面,点击“新建集成应用”按钮,添加一个新的Jenkins集成配置,具体配置如下图。

持续集成配置执行必要的数据验证,包括iSoftBook集成账号必填、其User ID项目内唯一、API Token长度至少8位。Jenkins存储该账号作为凭据,据此访问iSoftBook,执行代码仓库clone或checkout。
push代码到iSoftBook Git代码库时,iSoftBook基于配置的Jenkins URL和Webhook Token触发Generic Webhook Trigger,启动构建。
2. Jenkins创建iSoftBook凭据
根据iSoftBook集成配置的“iSoftBook集成账号”,在Jenkins系统创建iSoftBook的访问凭据。Jenkins在checkout操作中,提供该凭据,实现Jenkins访问iSoftBook的认证。
具体操作路径:Jenkins首页->Manage Jenkins->Security:Manage Credentials,添加iSoftBook访问凭据。

3. Jenkins创建Secret Text触发器凭据
iSoftBook向Jenkins的Generic Webhook Trigger发送触发请求时,采用Secret Text凭据触发Jenkins构建。
具体操作路径:Jenkins首页->Manage Jenkins->Security:Manage Credentials,或者在设置Generic Webhook Trigger时直接新建和设置该凭据。

4. Jenkins创建User API Token
iSoftBook运用Jenkins平台用户的User Name和其API Token作为凭据,访问Jenkins平台获取持续集成构建信息。
具体操作路径:Jenkins首页->Manage Jenkins->Manage Users,打开一个具体用户,点击该用户的“configure”操作项,进入其配置页面, 创建其API Token,并把该API Token填入iSoftBook对应的集成配置项中。

5. Jenkins Generic Webhook Trigger配置
Jenkins创建Pipeline项目,Build Triggers选择Generic Webhook Trigger,并解析和设置iSoftBook触发传递的参数,具体包括:ref、committer、message,分别是分支、提交人和提交消息,配置Token和Cause,支持参数化构建。
运用解析的参数,参数化配置Cause,具体格式规范:$committer:$message,支持iSoftBook解析和显示构建日志。

6. Jenkins Pipeline Script
给出Pipeline Script的示例。checkout操作引用“branch”参数实现参数化构建,引用凭据“isoftbookUserForjenkins”。
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout poll: false, scm: [$class: 'GitSCM', branches: [[name: '${branch}']], extensions: [],
userRemoteConfigs: [[credentialsId: 'iSoftBookGradeProj77', name: 'origin', url: 'http://demo1.intellbook.com:8080/GitHub/77.git']]]
}
}
stage('Build') {
steps {
bat 'gradle build'
}
}
stage('war') {
steps {
bat 'gradle war'
}
}
stage('result') {
steps {
archiveArtifacts artifacts: 'build/libs/**/*.war', followSymlinks: false
}
}
}
post {
success{
cleanWs()
}
failure{
archiveArtifacts artifacts: 'build/reports/tests/test-results/*.xml', followSymlinks: false
cleanWs()
}
}
}
Jenkins集成日志
项目主页-“集成”选项卡-“集成消息”栏,实时跟踪Jenkins持续集成的日志信息和执行状态,包括持续集成的状态、时间、工件、控制台输出等信息。
Jenkins Generic Webhook Trigger Cause需要按照格式规范:$committer:$message,进行参数化配置,提供提交人和提交消息信息,iSoftBook方可正确解析和显示日志中的提交人和提交消息。

社区版开放集成
iSoftBook社区版提供简单、快速的开放集成机制。
- iSoftBook社区版同企业版、旗舰版一样,提供Git仓库URL、用户账号作为开放接口,实施平台统一的认证和权限控制,与Git Bash、Sourcetree、IntelliJ IDEA的VCS等Git客户端集成。
- iSoftBook社区版运用Git仓库URL、用户账号开放接口,通过"poll scm"、"build periodically"等触发器,实现与Jenkins等CI/CD服务器集成。
- iSoftBook社区版与Jenkins等服务器集成不需要额外配置,简单便捷,能够满足通常使用。
- iSoftBook社区版项目主页不提供“持续集成”配置,不提供集成凭据和集成API开放接口。
- iSoftBook社区版不提供Webhook配置和触发机制。