我有Jira服务器
7.10.1
和用于JIRA的Zephyr
3.6.4.36403917
在我的本地linux服务器上运行。
现在我想使用API来获取Zephyr相关字段中的信息。
这是我用来获取JiraZephyr字段中信息的python代码。
import config
import requests
import base64
auth = base64.b64encode(f"{config.username}:{config.password}".encode())
header = {
"Authorization": "Basic " + auth.decode(),
"Content-Type": "application/json",
"Accept": "application/json",
}
response = requests.get(f"{config.jira_url}/rest/zephyr/1.0/zchart/issueStatuses?projectId=13900", headers=header)
print(response)
我已经检查过我可以使用
config.username
和
config.password
登录我的Jira服务器。
我已经授予权限
配置用户名
从而可以查看项目id=13900的Jira项目的内容。
然而,当我跑步时
print(response.status_code)
,我明白
403
。有人知道为什么我的python代码不起作用吗?
的值
response.text
是
{}
。我无法从获得任何进一步的信息
response
.
我通过引用中的文档创建了上述代码
https://jira.mydomain.com/rest/zephyr/1.0/application.wadl
.
This article
说我应该改变
rest/zephyr/1.0
到
rest/zapi/1.0
使API发挥作用。
但在做出这一改变后,我得到
java.lang.NullPointerException
错误
以下是部分错误消息:
2023-06-27 05:50:36,214 http-nio-8080-exec-242 ERROR [o.a.c.c.C.[.[localhost].[/].[default]] Servlet.service() for servlet [default] in context with path [] threw exception
java.lang.NullPointerException
at com.atlassian.logging.log4j.FilteredPatternLayout.formatStackTrace(FilteredPatternLayout.java:345)
at com.atlassian.logging.log4j.FilteredPatternLayout.format(FilteredPatternLayout.java:330)
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:310)
at org.apache.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:276)
at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
at com.atlassian.jira.logging.JiraHomeAppender.doAppend(JiraHomeAppender.java:206)
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
at org.apache.log4j.Category.callAppenders(Category.java:206)
at org.apache.log4j.Category.forcedLog(Category.java:391)
at org.apache.log4j.Category.fatal(Category.java:382)
at com.thed.zephyr.je.filter.ZAPIRestFilter.doFilter(ZAPIRestFilter.java:160)
... 12 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 53 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
... 16 filtered
at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
... 19 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
... 10 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 4 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
... 26 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 23 filtered
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)