Skip to content
This repository was archived by the owner on Feb 27, 2023. It is now read-only.

Commit d82f6d0

Browse files
committed
#19 Get usage report for package
Signed-off-by: Uilian Ries <uilianries@gmail.com>
1 parent 8bbb7cd commit d82f6d0

2 files changed

Lines changed: 41 additions & 0 deletions

File tree

bintray/bintray.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2970,3 +2970,33 @@ def get_usage_report_for_repository(self, subject, repo, from_date=None, to_date
29702970
response = self._requester.post(url, json=json_data)
29712971
self._logger.info("Search successfully")
29722972
return response
2973+
2974+
def get_usage_report_for_package(self, subject, repo, package=None, start_pos=50,
2975+
from_date=None, to_date=None):
2976+
""" Get current storage usage report. Report can be requested for the specified repository,
2977+
optionally for a specific package.
2978+
2979+
Security: Authenticated user with 'admin' permission for repo, or 'publish' permission
2980+
for specific package.
2981+
2982+
:param subject: repository owner
2983+
:param repo: repository name
2984+
:param package: package name
2985+
:param start_pos: index position
2986+
:param from_date: initial date range ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
2987+
:param to_date: end date range ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
2988+
:return: download details
2989+
"""
2990+
url = "{}/usage/package_usage/{}/{}".format(Bintray.BINTRAY_URL, subject, repo)
2991+
if package:
2992+
url += "/{}".format(package)
2993+
params = {"start_pos": start_pos}
2994+
json_data = {}
2995+
if from_date:
2996+
json_data["from"] = from_date
2997+
if to_date:
2998+
json_data["to"] = to_date
2999+
3000+
response = self._requester.post(url, json=json_data, params=params)
3001+
self._logger.info("Search successfully")
3002+
return response

tests/test_statistics.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,14 @@ def test_get_usage_report_for_repository():
5454
error_message = str(error)
5555
assert "Could not POST (403): This resource is only available for Premium repositories" \
5656
== error_message
57+
58+
59+
def test_get_usage_report_for_package():
60+
bintray = Bintray()
61+
error_message = ""
62+
try:
63+
bintray.get_usage_report_for_package("uilianries", "generic", "statistics")
64+
except Exception as error:
65+
error_message = str(error)
66+
assert "Could not POST (403): This resource is only available for Premium repositories" \
67+
== error_message

0 commit comments

Comments
 (0)