# huaweicloud-jenkins-plugins
**Repository Path**: yaowenjie0925/huaweicloud-jenkins-plugins
## Basic Information
- **Project Name**: huaweicloud-jenkins-plugins
- **Description**: jenkins对接华为云服务,其中包括OBS对象存储、Codechck代码检查和VSS漏洞扫描等服务
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 9
- **Created**: 2023-05-20
- **Last Updated**: 2024-05-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Jenkins华为云插件
## 插件使用
#### 下载源码&编译
```bash
git clone https://gitee.com/HuaweiCloudDeveloper/obs-jenkins-plugins.git
cd obs-jenkins-plugins
mvn package -DskipTests
```
#### 上传插件
>系统管理 --> 插件管理 --> 高级 --> Deploy Plugin --> 选择文件 --> 上传target下的hpi文件 --> 重启Jenkins
## 1、OBS上传文件功能
#### 传统构建后上传功能
##### 增加构建后步骤
#####修改项目,增加`构建后操作`,选择`华为云OBS上传`

##### 填写华为云OBS配置信息

>本地路径为相对于workspace的路径,例如填写为/abc,则本地路径为${WORKSPACE}/abc
>
>本地路径可以设置为文件或目录。如果设置为文件则上传单个文件,设置为目录上传整个目录
#### Pipeline流水线上传
##### 参数说明
| 参数名称 | 参数说明 |
| ------------------ | ------------------------------------------------------------ |
| ak | Access Key |
| sk | Secret Key |
| credentialsId | 全局密钥,密钥类型:Secret text,格式:credentialsId:'yourAk,yourSk' |
| bucket | Bucket |
| endpoint | Endpoint |
| workingDir | 当前项目的工作目录,不为空时,将从${workspace}/workingDir下查找需要上传的文件 |
| file | 文件名称,用于指定要上传的文件全名,不能与includePathPattern一起使用 |
| includePathPattern | 文件正则匹配路径,用于匹配要上传的文件,不能与file一起使用 |
| excludePathPattern | 排除文件名正则匹配路径 |
| path | obs远端目录,上传的文件将按照工作空间下的目录结构放到此目录下,不填写默认为根目录 |
| contentType | [文件类型](https://support.huaweicloud.com/ugobs-obs/obs_41_0025.html#obs_41_0025__section1973224795419) |
| kmsId | [SSE-KMS key_id](https://support.huaweicloud.com/api-obs/obs_04_0106.html),加密用 |
| acl | [文件权限策略](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0203.html) |
##### 片段生成器生成
ak/sk示例1:OBSPipelineUpload(ak:"...",sk:"...",endpoint:"obs.cn-south-1.myhuaweicloud.com",bucket:"obs-jenkins", includePathPattern:'***/**', path:'path/to/targetFolder/', workingDir:'/', contentType:'application/x-font-ttf', contentDisposition:'attachment',kmsId:'...')
密钥示例2:OBSPipelineUpload acl: 'Private', ak: '', bucket: 'obs-jenkins', contentType: 'application/x-font-ttf', credentialsId: 'global-obs-credentialsId', endpoint: 'obs.cn-south-1.myhuaweicloud.com', file: '', includePathPattern: '**/*', kmsId: '.....', path: 'path/to/targetFolder/', sk: '', workingDir: 'target'

## 2、CodeArts Check代码检查功能
#### Pipeline流水线上传
##### 参数说明
| 参数名称 | 参数说明 |
| ------------------ | ------------------------------------------------------------ |
| ak | Access Key |
| sk | Secret Key |
| region | Region:所在区域,如cn-north-4
| project_id | codeCheck中的项目id |
| task_id | codeCheck中的任务id |
| topicUrn | SMN服务中的主题URN,非必填 |
##### 片段生成器生成
示例:CodeCheckPipeline(ak:'',sk'',region:''',project_id:'',task_id:'', topicUrn:'')

## 3、VSS漏洞扫描功能
#### Pipeline流水线上传
##### 参数说明
| 参数名称 | 参数说明 |
| ------------------ | ------------------------------------------------------------ |
| ak | Access Key |
| sk | Secret Key |
| region | Region:所在区域,如cn-north-4
| task_name | 扫描任务名称,自定义即可 |
| url | vss扫描的url |
| topicUrn | SMN服务中的主题URN,非必填 |
| task_type | 扫描任务类型,非必填 |
| timer | 普通任务的定时启动时间,非必填 |
| trigger_time | 监测任务的定时触发时间,非必填 |
| task_period | 监测任务的定时触发周期,非必填 |
| scan_mode | 扫描模式:fast - 快速扫描 normal - 标准扫描 deep - 深度扫描,非必填 |
| port_scan | 是否进行端口扫描,非必填 |
| weak_pwd_scan | 是否进行弱密码扫描,非必填 |
| cve_check | 是否进行CVE漏洞扫描,非必填
| picture_check | 是否进行网站内容合规文字检测,非必填
| malicious_code | 是否进行网站挂马检测,非必填
| malicious_link | 是否进行链接健康检测(死链、暗链、恶意外链),非必填
##### 片段生成器生成
示例:VssPipeline(ak:'',sk:'',region:'cn-north-4',task_name:'test',url:'')

## 构建
1.修改${USER}/.m2/settings.xml中的maven配置文件
在`mirrors`节点中增加
```xml
repo.jenkins-ci.org
https://repo.jenkins-ci.org/public/
m.g.o-public
```
在`pluginGroups`节点中增加
```xml
org.jenkins-ci.tools
```
在`profiles`节点中增加
```xml
jenkins
true
repo.jenkins-ci.org
https://repo.jenkins-ci.org/public/
repo.jenkins-ci.org
https://repo.jenkins-ci.org/public/
```
2.打包
```bash
mvn clean package -DskipTests
```
3.运行
```bash
mvn clean hpi:run
```