最近在负责一个线上服务的维护工作,经常会遇到各种告警信息,例如CPU使用率过高、内存溢出等等。每次遇到这些告警,都需要手动登录Jira系统,创建工单,填写标题、描述等信息,非常繁琐。而且,如果同一个告警重复出现,很容易创建重复的工单,浪费时间。为了解决这个问题,我开始寻找一种自动化创建Jira工单的解决方案,最终发现了reload/jira-security-issue这个库。 Composer在线学习地址:学习地址 reload/jira-security-issue是一个轻量级的PHP库,它可以根据预设的规则,自动创建Jira工单。它的主要特点是简单易用,并且能够避免重复创建工单。该库通过环境变量进行配置,方便在CI/CD系统中使用。
使用composer安装非常简单:
composer require reload/jira-security-issue
在安装完成之后,需要设置以下环境变量:
JIRA_TOKEN
: Jira API Token (必须)JIRA_HOST
: Jira实例的地址,例如:https://your-domain.atlassian.net
(必须)JIRA_USER
: 与Jira API Token关联的Jira用户ID,例如:your-user@example.com
(必须)JIRA_PROJECT
: Jira项目的Key,例如:TEST
或ABC
(如果不在代码中设置,则必须)JIRA_ISSUE_TYPE
: Issue类型,例如:Security
,默认为Bug
(可选)JIRA_PRIORITY
: Issue优先级,例如:Critical
(可选)JIRA_WATCHERS
: 需要添加到工单的Jira用户,多个用户用逗号分隔,例如:user1,user2
(可选)JIRA_RESTRICTED_COMMENT_ROLE
: 具有受限可见性的评论的角色,默认为Developers
(可选)
以下是一个简单的例子,展示如何使用
JiraSecurityIssue类创建工单:
setTitle('服务器CPU使用率过高')
->setBody('服务器CPU使用率超过80%,请尽快处理。');
$issue->setKeyLabel('cpu-high-20240726'); // 设置一个唯一的Key,避免重复创建
echo $issue->ensure(); // 创建工单,并输出工单Key通过设置
KeyLabel,可以确保同一个告警只创建一个工单。
ensure()方法会检查是否已经存在具有相同
KeyLabel的工单,如果存在,则不会创建新的工单。
使用reload/jira-security-issue库,可以极大地简化Jira工单的创建流程,提高运维效率,避免重复劳动。特别是在自动化运维场景下,该库可以发挥更大的作用。









