• python & jira


    官方说明:https://docs.atlassian.com/software/jira/docs/api/7.6.1/

    返回的jira对象便可以对Jira进行操作。主要的操作包括:

    1. 项目
    2. 问题
    3. 搜索
    4. 关注者
    5. 评论
    6. 附件

    项目(Project)

      Project是一组问题单(Issue)的集合,每个项目需要有一个名称与关键字,如软件需求变更跟踪库 与 SWCHANGETASK。

    • jira.projects(): 查看所有项目列表
    • jira.project("项目的Key"): 查看单个项目

    项目对象的主要属性及方法如下:

    • key: 项目的Key
    • name: 项目名称
    • description: 项目描述
    • lead: 项目负责人
    • projectCategory: 项目分类
    • components: 项目组件
    • versions: 项目中的版本
    • raw: 项目的原始API数据

    问题(Issue)

    Issue是Jira的核心,Jira中的任务,用户Story,Bug实质上都是一个Issue。
    单个问题对象可以通过jira.issue("问题的Key")得到,问题的主要属性和方法如下:

    • id: 问题的id
    • key: 问题的Key
    • permalink(): 获取问题连接
    • fields: 问题的描述,创建时间等所有的配置域
    • raw: 问题的原始API数据

    配置域(Fields)

    一般问题的ields中的属性分为固定属性和自定义属性,自定义属性格式一般为类似customfield_10012这种。常用的问题的Fields有:

    • assignee:经办人
    • created: 创建时间
    • creator: 创建人
    • labels: 标签
    • priorit: 优先级
    • progress:
    • project: 所示项目
    • reporter: 报告人
    • status: 状态
    • summary: 问题描述
    • worklog: 活动日志
    • updated: 更新时间
    • watches: 关注者
    • comments: 评论
    • resolution: 解决方案
    • subtasks: 子任务
    • issuelinks: 连接问题
    • lastViewed: 最近查看时间
    • attachment
     

    关注者/评论/附件

    • jira.watchers(): 问题的关注者
    • jira.add_watcher(): 添加关注者
    • jira.remove_watcher(): 移除关注者
    • jira.comments(): 问题的所有评论
    • jira.comment(): 某条评论
    • jira.add_comment():添加评论
    • comment.update()/delete(): 更新/删除评论
    • jira.add_attachment(): 添加附件
    issue = jira.issue('JRA-1330')
    
    print(jiaa.watchers(issue)) # 所有关注者
    jira.add_watcher(issue, 'username')  # 添加关注者
    
    print(jira.comments(issue))  # 所有评论
    comment = jira.comment(issue, '10234')  # 某条评论
    jira.add_comment(issue, 'new comment') # 新增评论
    comment.update(body='update comment')  # 更新评论
    comment.delete()  # 删除该评论
    
    print(issue.fields.attachment)  # 问题附件
    jira.add_attachment(issue=issue, attachment='/some/path/attachment.txt')  # 添加附件
     
     

    创建/分配/转换问题

    • jira.create_issue(): 创建问题
    • jira.create_issues(): 批量创建问题
    • jira.assign_issue(): 分配问题
    • jira.transitions(): 获取问题的工作流
    • jira.transition_issue(): 转换问题

    示例如下:

    # 创建问题
    issue_dict = {
        'project': {'id': 123},
        'summary': 'New issue from jira-python',
        'description': 'Look into this one',
        'issuetype': {'name': 'Bug'},
    }
    new_issue = jira.create_issue(fields=issue_dict)
    
    # 批量创建问题
    issue_list = [
    {
        'project': {'id': 123},
        'summary': 'First issue of many',
        'description': 'Look into this one',
        'issuetype': {'name': 'Bug'},
    },
    {
        'project': {'key': 'FOO'},
        'summary': 'Second issue',
        'description': 'Another one',
        'issuetype': {'name': 'Bug'},
    },
    {
        'project': {'name': 'Bar'},
        'summary': 'Last issue',
        'description': 'Final issue of batch.',
        'issuetype': {'name': 'Bug'},
    }]
    issues = jira.create_issues(field_list=issue_list)
    
    # 分配问题
    jira.assign_issue(issue, 'newassignee')
    
    # 转换问题
    jira.transition_issue(issue, '5', assignee={'name': 'pm_user'}, resolution={'id': '3'})
     

    搜索

    Jira的搜索非常强大,并配有一套专门的搜索语言,称为JQL(Jira Query Language),Jira的Python库便是基于JQL语法进行搜索的,返回的是搜索到的问题列表。
    使用语句为

    jira.search_issues('JQL语句')
    

    默认最大结果数未1000,可以通过maxResults参数配置,该参数为-1时不限制数量,返回所有搜索结果。

    jira.search_issues('project=PROJ and assignee = currentUser()', maxResults=-1)
     
     
  • 相关阅读:
    刷题总结——疫情控制(NOIP2012提高组)
    刷题总结——竞赛得分(ssoj)
    刷题总结——货车运输
    刷题总结——火柴排队(NOIP2013)
    刷题总结——烽火传递(单调队列+dp)
    刷题总结——道路覆盖(ssoj)
    刷题总结——过河(NOIP2015)
    刷题总结——子串(NOIP2015提高组)
    linux shell 学习笔记--文件测试符
    linux shell 学习笔记--比较操作
  • 原文地址:https://www.cnblogs.com/qev211/p/12218636.html
Copyright © 2020-2023  润新知