当前位置:服务支持 >  软件文章 >  使用Personal Access Token登录Jira的Python技巧

使用Personal Access Token登录Jira的Python技巧

阅读数 1054
点赞 38
article_banner



Python与Jira的搭配使用详解(4)

  • 一、思考问题?
  • 二、工具准备
  • 2.1 Fiddler
  • 2.2 charles
  • 三、连接Jira
  • 3.1 获取到cookies
  • 3.2 新建issue


一、思考问题?

今天突发奇想,我想使用其他方式创建issue,怎么创建呢,如果使用以前的方法,好像有点复杂,有点麻烦,于是我们想能不能使用requests库来帮我们完成这个任务,但是发现我们卡在了第一步,使用F12浏览器调试模式获取不到登录接口,故而被难住了!!!,当然这是假的。后面我们使用其他工具发现了真正的接口,之前这个接口是由于被重定向了,所以找不到想要的接口。终于把这个问题解决了。

二、工具准备

2.1 Fiddler

第一种方式:Fiddler是一款抓包工具,可以用在手机、web页面进行抓包调试接口,极大的方便测试人员、开发人员进行调试。安装这个软件后可以发现有一个是302结果的请求地址,这个地址就是我们要的结果,然后查看请求方式、请求地址、请求数据、返回数据,获取我们想要的信息(cookies)。

2.2 charles

第二种方式:charles工具和Fiddler工具类似,也可以用来查看接口。具体请查看 如下地址

三、连接Jira

3.1 获取到cookies

这里实现登录获取到了cookies的session_id,这是很重要的。后面我们都需要靠这个来进行接口的访问。进行其他操作。

import requests
from jsonpath import jsonpath

def getcookie(username,password,server_url):
    """
    :param username: 用户名
    :param password: 用户密码
    :return: 
    """
    headers = {"Content-Type": "application/x-www-form-urlencoded"}
    data = {"os_username":username,"os_password":password,"os_destination":"",
              "user_role":"","atl_token":"","login":"登录"
              }
    # 通过参数allow_redirects禁用重定向
    res = requests.post(url=server_url, data=data, headers=headers, allow_redirects=False)
    print(f"获取到的cookies:{res.cookies}")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

获取第一次获取的cookies就可以进行操作了。这次是调用cookies进行操作。

def getallcookies(url,cookies,params,headers):
    """
    :param cookies: 获取到的第一次的cookies
    :param url: 另外一个地址
    :param params: 请求参数
    :return: 
    """
    res = requests.post(url,cookies = cookies,json=params,headers=headers,allow_redirects=False)
    # cookies["atlassian.xsrf.token"] = res.cookies["atlassian.xsrf.token"]
    print(res.text)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

具体请参考 接口文档进行操作,本次我们以第一个接口为例。

3.2 新建issue

请求地址:http://localhost:8080/rest/api/2/issue/
请求头:{“Content-Type”: “application/json”}
请求方式:post
请求cookie:使用上面获取的cookie

# 请求参数
{
    "fields": {
        "project":
           {
          "key": "你的项目key或者ID"
           },
        "assignee":{'name': '经办人名字'},
        "summary": "REST ye merry gentlemen.",
        "description": "Creating of an issue using project keys and issue type names using the REST API",
        "issuetype": {
            "name": "故障"
        }
   }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

示例:

{
   "id":"39000",
   "key":"TEST-101",
    "self":"http://localhost:8080/rest/api/2/issue/39000"
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

到此,我们可以使用其他接口,进行操作。这不就速度起来了!!

如图成功的界面:

python jira使用personal access token登录 python的jira模块_python


相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空