venkatesh
venkatesh

Reputation: 23

Unable to fetch the jira cloud assets through atlassian-python-api

I am working on a Atlassian Jira cloud product. I have a requirement to get the details of Jira cloud assets and update a field with some specific key-value pair. To achieve same, I have chosen python api to interact with Atlassian jira cloud and do those changes.

But, I am unable to access jira cloud assets using the atlassian-python-api which I have got from the https://pypi.org/project/atlassian-python-api/. Even I tried with different versions of it to achieve same.

Here is my sample code.

from atlassian import Jira

# Enter your Jira Cloud site URL and API token
JIRA_URL = "https://<your-domain>.atlassian.net"
JIRA_API_TOKEN = "<your-api-token>"

# Initialize the Jira API client
jira = Jira(
    url=JIRA_URL,
    username="",
    password="",
    cloud=True,
    api_token=JIRA_API_TOKEN,
)

# Fetch a list of all assets
assets = jira.assets().search("")

# Print the asset details in a tabular format
print("Asset ID\tAsset Type\tName\tDescription")
for asset in assets:
    print(f"{asset['id']}\t{asset['type']}\t{asset['name']}\t{asset['description']}")

But, getting below error.

 assets = jira.assets().search("")
AttributeError: 'Jira' object has no attribute 'assets'

After that, I tried to fetch with different components like - jira.jira_service_desk().get_all_assets() , jira.get_all_assets() and jira.cloud.asset_management.get_all_assets() . But, everytime I am facing respective issue like 'Jira' object has no attribute <>`.

Could you please suggest a way make the bulk operations on jira-cloud-assets.

FYI, Even I went with the atlassian provided api - https://developer.atlassian.com/cloud/assetsapi/rest/api-group-assets/#api-asset-get - It also doesn't help to get them.

Expecting a solution to make write operations on Jira-Cloud assets.

Upvotes: 2

Views: 1273

Answers (1)

AlexanderK1987
AlexanderK1987

Reputation: 129

I once have the same problem. After I trace codes of the library. It is not documented on the atlassian python API website.

The APIs you seek are in Insight. Here is the link to the source file on gitHub.

from atlassian import Insight
from config import Config     # modify this
import json
insight = Insight(
  url=Config.JSM_SERVER,
  username=Config.JSM_USER,
  password=Config.JSM_TOKEN,
  cloud=True
)

result = insight.list_object_schema()
print (json.dumps(result, indent=2, ensure_ascii=False))

However, not all functions are implemented. You have to patch them yourself.

Hope this can help you. :D

Upvotes: 2

Related Questions