0

I have Jira Server 7.10.1 and Zephyr for JIRA 3.6.4.36403917 running on my local linux server.

Now I'd like to use API to get the information in Zephyr related fields.

Here's the python code that I used to fetch the information in Jira Zephyr fields.

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)

I've checked that I can use config.username and config.password to login my Jira server.

And I've given permissions to config.username so that it can view the content of Jira project with project id = 13900.

However, when I run print(response.status_code), I get 403. Does anyone know why my python code doesn't work?

The value of response.text is {}. I can't get any further information from response.

I created the above code by referencing the document in https://jira.mydomain.com/rest/zephyr/1.0/application.wadl.

This article says that I should change rest/zephyr/1.0 to rest/zapi/1.0 to make the API work.

But after making this change, I get java.lang.NullPointerException error.

Here's part of the error message:

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)
Brian
  • 12,145
  • 20
  • 90
  • 153

0 Answers0