feat: add remote_public_keys_timeout option in order to set the time after which the retrieval of external public keys should be interrupted
This commit is contained in:
parent
af9a6d82f4
commit
4fb1fff521
6 changed files with 16 additions and 7 deletions
|
|
@ -1 +1 @@
|
|||
__version__ = "0.4.2a1"
|
||||
__version__ = "0.4.2a2"
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ class Settings(BaseSettings):
|
|||
`[~/.ssh/id_ed25519.pub]`
|
||||
cache_path (DirectoryPath): a *valid* path used to cache some stuff,
|
||||
particularly remote public keys. Defaults to $XDG_CACHE_HOME/halig
|
||||
remote_public_keys_timeout (float): time after which the retrieval of external public keys
|
||||
(e.g. github ssh keys) should be interrupted. Defaults to 0.5.
|
||||
"""
|
||||
|
||||
notebooks_root_path: DirectoryPath
|
||||
|
|
@ -38,12 +40,12 @@ class Settings(BaseSettings):
|
|||
],
|
||||
)
|
||||
cache_path: DirectoryPath = Field(
|
||||
...,
|
||||
default_factory=lambda: platformdirs.user_cache_path(
|
||||
"halig",
|
||||
ensure_exists=True,
|
||||
),
|
||||
)
|
||||
remote_public_keys_timeout: float = 0.5
|
||||
|
||||
@field_validator("identity_paths", "recipient_paths", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -83,7 +85,10 @@ class Settings(BaseSettings):
|
|||
with hishel.CacheClient(
|
||||
storage=hishel.FileStorage(base_path=self.cache_path / "hishel"),
|
||||
) as client:
|
||||
response = client.get(str(path))
|
||||
response = client.get(
|
||||
str(path),
|
||||
timeout=self.remote_public_keys_timeout,
|
||||
)
|
||||
if response.status_code == httpx.codes.OK:
|
||||
for line in response.content.decode().split("\n"):
|
||||
if line:
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ def test_edit_raises_invalid_age_file(notes, settings: Settings):
|
|||
|
||||
def test_edit_current_note(mock_edit, current_note, settings: Settings, encryptor):
|
||||
edit_command = EditCommand(
|
||||
note_path=settings.notebooks_root_path, settings=settings,
|
||||
note_path=settings.notebooks_root_path,
|
||||
settings=settings,
|
||||
)
|
||||
assert edit_command.note_path == current_note
|
||||
edit_command.run()
|
||||
|
|
|
|||
|
|
@ -35,7 +35,9 @@ def test_import(unencrypted_notes: Path, command: ImportCommand, encryptor: Encr
|
|||
|
||||
|
||||
def test_import_unlink(
|
||||
unencrypted_notes: Path, command: ImportCommand, encryptor: Encryptor,
|
||||
unencrypted_notes: Path,
|
||||
command: ImportCommand,
|
||||
encryptor: Encryptor,
|
||||
):
|
||||
command.unlink = True
|
||||
command.run()
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@ def test_show_raises_note_path_is_not_age_valid(notes, settings: Settings):
|
|||
|
||||
def test_show_current_note(current_note, settings):
|
||||
show_command = ShowCommand(
|
||||
note_path=settings.notebooks_root_path, settings=settings,
|
||||
note_path=settings.notebooks_root_path,
|
||||
settings=settings,
|
||||
)
|
||||
assert show_command.note_path == current_note
|
||||
assert show_command.decrypt() == "foo"
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ def test_instance_encryptor_from_age_keys(halig_path, notebooks_path):
|
|||
f.write(str(identity.to_public()))
|
||||
|
||||
recipient_paths.append(recipient_path)
|
||||
#cache_path = platformdirs.user_cache_path("halig", ensure_exists=True)
|
||||
# cache_path = platformdirs.user_cache_path("halig", ensure_exists=True)
|
||||
settings = Settings(
|
||||
notebooks_root_path=notebooks_path,
|
||||
identity_paths=identity_paths,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue