Skip to content

Commit 62358c1

Browse files
committed
Added license metadata endpoint
1 parent bcad005 commit 62358c1

File tree

3 files changed

+70
-1
lines changed

3 files changed

+70
-1
lines changed

socketdev/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from socketdev.utils import Utils, IntegrationType, INTEGRATION_TYPES
1818
from socketdev.version import __version__
1919
from socketdev.labels import Labels
20+
from socketdev.licensemetadata import LicenseMetadata
2021
from socketdev.log import log
2122

2223

@@ -59,6 +60,7 @@ def __init__(self, token: str, timeout: int = 1200):
5960
self.triage = Triage(self.api)
6061
self.utils = Utils()
6162
self.labels = Labels(self.api)
63+
self.licensemetadata = LicenseMetadata(self.api)
6264

6365
@staticmethod
6466
def set_timeout(timeout: int):

socketdev/licensemetadata/__init__.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import json
2+
import logging
3+
4+
5+
log = logging.getLogger("socketdev")
6+
7+
8+
class LicenseMetadata:
9+
def __init__(self, api):
10+
self.api = api
11+
12+
def post(self, licenses: list) -> dict:
13+
path = f"license-metadata"
14+
payload = json.dumps(licenses)
15+
response = self.api.do_request(path=path, method="POST", payload=payload)
16+
17+
if response.status_code == 200:
18+
result = response.json()
19+
return result
20+
21+
error_message = response.json().get("error", {}).get("message", "Unknown error")
22+
log.error(f"Failed to create license metadata: {response.status_code}, message: {error_message}")
23+
return {}
24+
25+
def get(self, org_slug: str, label_id: str) -> dict:
26+
path = f"orgs/{org_slug}/repos/labels/{label_id}"
27+
response = self.api.do_request(path=path)
28+
if response.status_code == 200:
29+
result = response.json()
30+
return result
31+
32+
error_message = response.json().get("error", {}).get("message", "Unknown error")
33+
log.error(f"Failed to get repository label: {response.status_code}, message: {error_message}")
34+
return {}
35+
36+
def delete(self, org_slug: str, label_id: str) -> dict:
37+
path = f"orgs/{org_slug}/repos/labels/{label_id}"
38+
response = self.api.do_request(path=path, method="DELETE")
39+
if response.status_code == 200:
40+
return response.json()
41+
42+
error_message = response.json().get("error", {}).get("message", "Unknown error")
43+
log.error(f"Error deleting repository label: {response.status_code}, message: {error_message}")
44+
return {}
45+
46+
47+
def associate(self, org_slug: str, label_id: int, repo_id: str) -> dict:
48+
path = f"orgs/{org_slug}/repos/labels/{label_id}/associate"
49+
payload = json.dumps({"repository_id": repo_id})
50+
response = self.api.do_request(path=path, method="POST", payload=payload)
51+
if response.status_code == 200:
52+
return response.json()
53+
54+
error_message = response.json().get("error", {}).get("message", "Unknown error")
55+
log.error(f"Error associating repository label: {response.status_code}, message: {error_message}")
56+
return {}
57+
58+
def disassociate(self, org_slug: str, label_id: int, repo_id: str) -> dict:
59+
path = f"orgs/{org_slug}/repos/labels/{label_id}/disassociate"
60+
payload = json.dumps({"repository_id": repo_id})
61+
response = self.api.do_request(path=path, method="POST", payload=payload)
62+
if response.status_code == 200:
63+
return response.json()
64+
65+
error_message = response.json().get("error", {}).get("message", "Unknown error")
66+
log.error(f"Error associating repository label: {response.status_code}, message: {error_message}")
67+
return {}

socketdev/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.1.0"
1+
__version__ = "2.1.2"

0 commit comments

Comments
 (0)