zoukankan      html  css  js  c++  java
  • 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)
     
     
  • 相关阅读:
    与众不同 windows phone (50)
    与众不同 windows phone (49)
    重新想象 Windows 8.1 Store Apps (93)
    重新想象 Windows 8.1 Store Apps 系列文章索引
    重新想象 Windows 8.1 Store Apps (92)
    重新想象 Windows 8.1 Store Apps (91)
    重新想象 Windows 8.1 Store Apps (90)
    重新想象 Windows 8.1 Store Apps (89)
    重新想象 Windows 8.1 Store Apps (88)
    重新想象 Windows 8.1 Store Apps (87)
  • 原文地址:https://www.cnblogs.com/qev211/p/12218636.html
Copyright © 2011-2022 走看看