|
|
|
@ -108,6 +108,7 @@ class CasWrapper: |
|
|
|
|
local_path: str, |
|
|
|
|
return_json: bool = False, |
|
|
|
|
use_hash: bool = False, |
|
|
|
|
signer_id: str = None, |
|
|
|
|
): |
|
|
|
|
""" |
|
|
|
|
Wrapper around `cas authenticate` |
|
|
|
@ -123,6 +124,8 @@ class CasWrapper: |
|
|
|
|
command_args = ['authenticate', local_path] |
|
|
|
|
if use_hash: |
|
|
|
|
command_args = ['authenticate', '--hash', local_path] |
|
|
|
|
if signer_id: |
|
|
|
|
command_args.extend(('--signerID', signer_id)) |
|
|
|
|
command_args.extend(('-o', 'json')) |
|
|
|
|
command = self._cas[command_args] |
|
|
|
|
try: |
|
|
|
@ -146,6 +149,7 @@ class CasWrapper: |
|
|
|
|
def authenticate_source( |
|
|
|
|
self, |
|
|
|
|
local_path: str, |
|
|
|
|
signer_id: str = None, |
|
|
|
|
) -> typing.Tuple[bool, typing.Optional[str]]: |
|
|
|
|
""" |
|
|
|
|
Authenticates source by git path. |
|
|
|
@ -155,7 +159,11 @@ class CasWrapper: |
|
|
|
|
commit_cas_hash = None |
|
|
|
|
self.ensure_login() |
|
|
|
|
try: |
|
|
|
|
result_json = self.authenticate(local_path, return_json=True) |
|
|
|
|
result_json = self.authenticate( |
|
|
|
|
local_path, |
|
|
|
|
return_json=True, |
|
|
|
|
signer_id=signer_id |
|
|
|
|
) |
|
|
|
|
is_authenticated = result_json['verified'] |
|
|
|
|
commit_cas_hash = result_json['hash'] |
|
|
|
|
# we can fall with ProcessExecutionError, |
|
|
|
@ -168,6 +176,7 @@ class CasWrapper: |
|
|
|
|
self, |
|
|
|
|
local_path: str, |
|
|
|
|
use_hash: bool = False, |
|
|
|
|
signer_id: str = None, |
|
|
|
|
) -> bool: |
|
|
|
|
""" |
|
|
|
|
Authenticates artifact by artifact path or hash if `use_hash` is True. |
|
|
|
@ -180,6 +189,7 @@ class CasWrapper: |
|
|
|
|
local_path, |
|
|
|
|
use_hash=use_hash, |
|
|
|
|
return_json=True, |
|
|
|
|
signer_id=signer_id |
|
|
|
|
)['verified'] |
|
|
|
|
# we can fall with ProcessExecutionError, |
|
|
|
|
# because artifact can be not notarized |
|
|
|
|