Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Polarion Adapter #39

Open
jeising opened this issue Dec 13, 2021 · 3 comments
Open

Polarion Adapter #39

jeising opened this issue Dec 13, 2021 · 3 comments

Comments

@jeising
Copy link

jeising commented Dec 13, 2021

It would be awesome to be able to also connect Polarion requirements in Sphinx Needs.

Polarion provides a Java API:

Polarion® ALM™ Software Development Kit (SDK)

I am not sure how well that integrates in the existing system. Maybe there is a way to use Polarion via REST?

@danwos
Copy link
Member

danwos commented Dec 13, 2021

Looks like Polarion is not providing a REST API, but at least a SOAP API
Not state of the art, but it does its job.

As sphinx-needs-enterprise is Python based, we would need a lib which understands SOAP / WSDL.
This one looks promising: https://github.com/mvantellingen/python-zeep

Last time I have worked with SOAP is ~8 years ago, before JIRA moved to REST.
But I think there will not be any technical surprises, so I think it's doable.

Looks like there was a demo site available in the past: almdemo.polarion.com

@jeising: If you know a contact / sales person at Polarion, pls write me an e-mail.
So I can try to get access to a test license or test instance for 2022.

@jeising
Copy link
Author

jeising commented Dec 13, 2021

Thank you for your quick answer!

I will check to find a sales contact for you. We might be able to provide access to one of our test environments.

@alacasta
Copy link

alacasta commented Apr 12, 2022

We in the past succeeded accessing using Python to the SOAP interface by using suds like follows

from suds.client import Client
from suds.sax.element import Element

url_session_web_service = 'https://almdemo.polarion.com/polarion/ws/services/SessionWebService?wsdl' % self.hostname
url_tracker_web_service = 'https://almdemo.polarion.com/polarion/ws/services/TrackerWebService?wsdl' % self.hostname
self.session = Client(url_session_web_service)
self.tracker = Client(url_tracker_web_service)
self.session.service.logIn(username, password)

From that point, it is straightforward to access to data like

# Query workitems, get a list[suds.sudsobject.WorkItem].
workitems_raw = self.tracker.service.queryWorkItems(query, 'id', Workitem.WORKITEM_FIELDS)

where query is the typical Polarion Query (e.g. query = 'project.id:' + project_id)

Is there a chance for creating an skeleton where we can play around to make a Proof of Concept for this? I don't know the internals of sphinx-needs or sphinx-needs-enterprise, but I can try to contribute if a boilerplate is provided.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants