Python client for Helix Swarm
Package supports sync and async syntax with same code base.
from helixswarm import SwarmAsyncClient, SwarmClient
There are two identical packages: helix-swarm
and alias helixswarm
, alias
was created one year later due name confusion, to be import name and package name will the same.
pip3 install helixswarm
Get review info:
from helixswarm import SwarmClient
client = SwarmClient('http://server/api/v9', 'user', 'password')
review = client.reviews.get_info(12345)
print(review['review']['author'])
Add comment to review in async way (be careful SwarmAsyncClient
must be called inside async function):
import asyncio
from helixswarm import SwarmAsyncClient
async def example():
client = SwarmAsyncClient('http://server/api/v5', 'user', 'password')
await client.comments.add('reviews/12345', 'my awesome comment')
asyncio.run(example())
Update credentials handler:
import requests
from helixswarm import SwarmClient
def get_credentials():
response = requests.get(...).json()
return response['user'], response['password']
client = SwarmClient(
'http://server/api/v9',
'user',
'password',
auth_update_callback=get_credentials
)
# let's suppose credentials are valid now
review = client.reviews.get_info(12345)
print(review['review']['author'])
# now, after some time, password of user somehow changed, so our callback
# will be called, new credentials will be using for retry and future
# here we get also correct review data instead of SwarmUnauthorizedError
# exception
review = client.reviews.get_info(12345)
print(review['review']['author'])
Prerequisites: tox
Then just run tox, all dependencies and checks will run automatically
tox
Feel free to any contributions.
Latest version of code can be download from official page: https://www.perforce.com/downloads/helix-swarm
API | Date | Notes |
---|---|---|
v11 | March 2022 | Extended v10, standardized the endpoint, response pattern for new rich UI. |
v10 | October 2019 | Integration with CI tools |
v9 | April 2018 | Review append and replace changelist, 2fa, mark comment as read |
v8 | December 2017 | Default reviewers |
v7 | October 2017 | Groups as review participants, groups as moderators of project |
v6 | May 2017 | Activity dashboard, archiving reviews, cleaning reviews, for voting reviews |
v5 | October 2016 | Limiting comments to a specific review version |
v4 | October 2016 | Private projects, file-level and line-level inline comments |
v3 | September 2016 | Comments management |
v2 | May 2016 | Projects, groups |
v1.2 | October 2015 | Author filter to the list reviews endpoint |
v1.1 | January 201 | Required reviewers |
v1 | July 2014 | Initial |