Compare commits
No commits in common. "a17ae75c593b09c096cd4c4f66ab71e04ac7371c" and "71a05d631c32f95b80cb141e45dbe5f434ebb73e" have entirely different histories.
a17ae75c59
...
71a05d631c
14 changed files with 48 additions and 144 deletions
|
|
@ -1,9 +1,3 @@
|
||||||
## 0.1.0a17 (2025-04-09)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- better error message
|
|
||||||
|
|
||||||
## 0.1.0a16 (2025-04-04)
|
## 0.1.0a16 (2025-04-04)
|
||||||
|
|
||||||
### Fix
|
### Fix
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"POT-Creation-Date: 2025-04-09 14:13+0200\n"
|
"POT-Creation-Date: 2025-02-17 09:25+0100\n"
|
||||||
"PO-Revision-Date: 2025-04-09 14:14+0200\n"
|
"PO-Revision-Date: 2025-02-17 09:28+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
|
@ -20,24 +20,15 @@ msgstr ""
|
||||||
msgid "\"bitwarden\" is not set in step.user_data"
|
msgid "\"bitwarden\" is not set in step.user_data"
|
||||||
msgstr "\"bitwarden\" n'est pas dans step.user_data"
|
msgstr "\"bitwarden\" n'est pas dans step.user_data"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:74
|
#: src/rougail/user_data_bitwarden/data.py:83
|
||||||
msgid "\"rbw\" or \"bw\""
|
msgid "please unlock Bitwarden password database"
|
||||||
msgstr "\"rbw\" ou \"bw\""
|
msgstr "veuillez déverrouiller la base de donnée de mot de passe Bitwarden"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:76
|
#: src/rougail/user_data_bitwarden/data.py:84
|
||||||
msgid "\"{0}\""
|
msgid "cannot find Bitwarden command (rbw or bw) please install it"
|
||||||
msgstr "\"{0}\""
|
msgstr "ne peut trouver la commande Bitwarden (rbw ou bw) veuillez l'installer"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:78
|
#: src/rougail/user_data_bitwarden/data.py:126
|
||||||
msgid "please unlock Bitwarden password database with {0}"
|
|
||||||
msgstr ""
|
|
||||||
"veuillez déverrouiller la base de donnée de mot de passe Bitwarden avec {0}"
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:79
|
|
||||||
msgid "cannot find Bitwarden command {0} please install it"
|
|
||||||
msgstr "ne peut trouver la commande Bitwarden {0} veuillez l'installer"
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:153
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"the value for \"{0}\" at index {1} is already set while it should be filled "
|
"the value for \"{0}\" at index {1} is already set while it should be filled "
|
||||||
"in by Bitwarden"
|
"in by Bitwarden"
|
||||||
|
|
@ -45,7 +36,7 @@ msgstr ""
|
||||||
"la valeur de \"{0}\" à l'index {1} est déjà renseigné alors que celle doit "
|
"la valeur de \"{0}\" à l'index {1} est déjà renseigné alors que celle doit "
|
||||||
"devrait être renseigné par Bitwarden"
|
"devrait être renseigné par Bitwarden"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:155
|
#: src/rougail/user_data_bitwarden/data.py:128
|
||||||
msgid ""
|
msgid ""
|
||||||
"the value for \"{0}\" is already set while it should be filled in by "
|
"the value for \"{0}\" is already set while it should be filled in by "
|
||||||
"Bitwarden"
|
"Bitwarden"
|
||||||
|
|
@ -53,46 +44,32 @@ msgstr ""
|
||||||
"la valeur de \"{0}\" est déjà renseignée alors que celle doit devrait être "
|
"la valeur de \"{0}\" est déjà renseignée alors que celle doit devrait être "
|
||||||
"renseignée par Bitwarden"
|
"renseignée par Bitwarden"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:185
|
#: src/rougail/user_data_bitwarden/data.py:157
|
||||||
msgid "the default value for \"{0}\" must be the Bitwarden item name"
|
msgid "the default value for \"{0}\" must be the Bitwarden item name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"la valeur par défaut pour \"{0}\" doit être un nom d'élément de Bitwarden"
|
"la valeur par défaut pour \"{0}\" doit être un nom d'élément de Bitwarden"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:198
|
#: src/rougail/user_data_bitwarden/data.py:166
|
||||||
msgid "cannot execute the \"{0}\" commandline from Bitwarden for \"{1}\": {2}"
|
msgid "cannot execute the \"{0}\" commandline from Bitwarden for \"{1}\": {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ne peut exécuter la ligne de commande \"{0}\" pour Bitwarden pour \"{1}\": "
|
"ne peut exécuter la ligne de commande \"{0}\" pour Bitwarden pour \"{1}\": "
|
||||||
"{2}"
|
"{2}"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:201
|
#: src/rougail/user_data_bitwarden/data.py:169
|
||||||
msgid "item \"{0}\" in Bitwarden is not found for \"{1}\""
|
msgid "cannot find {0} \"{1}\" from Bitwarden for \"{2}\""
|
||||||
msgstr "l'élément \"{0}\" dans Bitwarden n'est pas trouvé pour \"{1}\""
|
msgstr "ne peut trouver {0} \"{1}\" pour Bitwarden pour \"{2}\""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:208
|
#: src/rougail/user_data_bitwarden/data.py:176
|
||||||
msgid "several items found with name \"{0}\" in Bitwarden for \"{1}\": \"{2}\""
|
msgid ""
|
||||||
|
"several items found with name \"{0}\" from Bitwarden for \"{1}\": \"{2}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"plusieurs éléments trouvés avec le nom \"{0}\" dans Bitwarden pour \"{1}\": "
|
"plusieurs éléments trouvés avec le nom \"{0}\" pour Bitwarden pour \"{1}\": "
|
||||||
"\"{2}\""
|
"\"{2}\""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:219
|
#: src/rougail/user_data_bitwarden/data.py:186
|
||||||
msgid "unexpected datas \"{0}\" from Bitwarden for \"{1}\": {2}"
|
msgid "unexpected datas \"{0}\" from Bitwarden for \"{1}\": {2}"
|
||||||
msgstr "données inattendues \"{0}\" pour Bitwarden pour \"{1}\": {2}"
|
msgstr "données inattendues \"{0}\" pour Bitwarden pour \"{1}\": {2}"
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:224
|
|
||||||
msgid "password"
|
|
||||||
msgstr "de mot de passe"
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:226
|
|
||||||
msgid "username"
|
|
||||||
msgstr "de nom d'utilisateur"
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:227
|
|
||||||
msgid "item \"{0}\" in Bitwarden has no {1} for \"{2}\""
|
|
||||||
msgstr "l'élément \"{0}\" dans Bitwarden n'a pas {1} for \"{2}\""
|
|
||||||
|
|
||||||
#~ msgid "cannot find {0} \"{1}\" from Bitwarden for \"{2}\""
|
|
||||||
#~ msgstr "ne peut trouver {0} \"{1}\" pour Bitwarden pour \"{2}\""
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "only \"unix_user\" or \"secret\" variable type can have \"bitwarden\" "
|
#~ "only \"unix_user\" or \"secret\" variable type can have \"bitwarden\" "
|
||||||
#~ "attribute, but \"{0}\" has type \"{1}\""
|
#~ "attribute, but \"{0}\" has type \"{1}\""
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"POT-Creation-Date: 2025-04-09 14:14+0200\n"
|
"POT-Creation-Date: 2025-02-17 09:28+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -19,59 +19,39 @@ msgstr ""
|
||||||
msgid "\"bitwarden\" is not set in step.user_data"
|
msgid "\"bitwarden\" is not set in step.user_data"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:74
|
#: src/rougail/user_data_bitwarden/data.py:83
|
||||||
msgid "\"rbw\" or \"bw\""
|
msgid "please unlock Bitwarden password database"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:76
|
#: src/rougail/user_data_bitwarden/data.py:84
|
||||||
msgid "\"{0}\""
|
msgid "cannot find Bitwarden command (rbw or bw) please install it"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:78
|
#: src/rougail/user_data_bitwarden/data.py:126
|
||||||
msgid "please unlock Bitwarden password database with {0}"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:79
|
|
||||||
msgid "cannot find Bitwarden command {0} please install it"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:153
|
|
||||||
msgid "the value for \"{0}\" at index {1} is already set while it should be filled in by Bitwarden"
|
msgid "the value for \"{0}\" at index {1} is already set while it should be filled in by Bitwarden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:155
|
#: src/rougail/user_data_bitwarden/data.py:128
|
||||||
msgid "the value for \"{0}\" is already set while it should be filled in by Bitwarden"
|
msgid "the value for \"{0}\" is already set while it should be filled in by Bitwarden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:185
|
#: src/rougail/user_data_bitwarden/data.py:157
|
||||||
msgid "the default value for \"{0}\" must be the Bitwarden item name"
|
msgid "the default value for \"{0}\" must be the Bitwarden item name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:198
|
#: src/rougail/user_data_bitwarden/data.py:166
|
||||||
msgid "cannot execute the \"{0}\" commandline from Bitwarden for \"{1}\": {2}"
|
msgid "cannot execute the \"{0}\" commandline from Bitwarden for \"{1}\": {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:201
|
#: src/rougail/user_data_bitwarden/data.py:169
|
||||||
msgid "item \"{0}\" in Bitwarden is not found for \"{1}\""
|
msgid "cannot find {0} \"{1}\" from Bitwarden for \"{2}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:208
|
#: src/rougail/user_data_bitwarden/data.py:176
|
||||||
msgid "several items found with name \"{0}\" in Bitwarden for \"{1}\": \"{2}\""
|
msgid "several items found with name \"{0}\" from Bitwarden for \"{1}\": \"{2}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:219
|
#: src/rougail/user_data_bitwarden/data.py:186
|
||||||
msgid "unexpected datas \"{0}\" from Bitwarden for \"{1}\": {2}"
|
msgid "unexpected datas \"{0}\" from Bitwarden for \"{1}\": {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:224
|
|
||||||
msgid "password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:226
|
|
||||||
msgid "username"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/user_data_bitwarden/data.py:227
|
|
||||||
msgid "item \"{0}\" in Bitwarden has no {1} for \"{2}\""
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "rougail.user_data_bitwarden"
|
name = "rougail.user_data_bitwarden"
|
||||||
version = "0.1.0a17"
|
version = "0.1.0a16"
|
||||||
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
|
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
description = "Rougail user_data Bitwarden"
|
description = "Rougail user_data Bitwarden"
|
||||||
|
|
|
||||||
|
|
@ -198,31 +198,22 @@ class RougailUserDataBitwarden:
|
||||||
self.errors.append(_('cannot execute the "{0}" commandline from Bitwarden for "{1}": {2}').format(self.bitwarden_command_line, path, exc))
|
self.errors.append(_('cannot execute the "{0}" commandline from Bitwarden for "{1}": {2}').format(self.bitwarden_command_line, path, exc))
|
||||||
return None, None
|
return None, None
|
||||||
if not data:
|
if not data:
|
||||||
self.errors.append(_('item "{0}" in Bitwarden is not found for "{1}"').format(key_bitwarden, path))
|
self.errors.append(_('cannot find {0} "{1}" from Bitwarden for "{2}"').format(type_, key_bitwarden, path))
|
||||||
return None, None
|
return None, None
|
||||||
if len(data) != 1:
|
if len(data) != 1:
|
||||||
names = [d["name"] for d in data]
|
names = [d["name"] for d in data]
|
||||||
if allow_multiple:
|
if allow_multiple:
|
||||||
ret = []
|
ret = []
|
||||||
return names, [self.get_value(key_bitwarden, path, type_, d) for d in data]
|
return names, [self.get_value(key_bitwarden, path, type_, d) for d in data]
|
||||||
self.errors.append(_('several items found with name "{0}" in Bitwarden for "{1}": "{2}"').format(key_bitwarden, path, "\", \"".join(names)))
|
self.errors.append(_('several items found with name "{0}" from Bitwarden for "{1}": "{2}"').format(key_bitwarden, path, "\", \"".join(names)))
|
||||||
return None, None
|
return None, None
|
||||||
return data[0]['name'], self.get_value(key_bitwarden, path, type_, data[0])
|
return data[0]['name'], self.get_value(key_bitwarden, path, type_, data[0])
|
||||||
|
|
||||||
def get_value(self, key_bitwarden: str, path: str, type_: str, data: dict) -> str:
|
def get_value(self, key_bitwarden: str, path: str, type_: str, data: dict) -> str:
|
||||||
try:
|
try:
|
||||||
if type_ == 'secret':
|
if type_ == 'secret':
|
||||||
value = data['login']['password']
|
return data['login']['password']
|
||||||
else:
|
return data['login']['username']
|
||||||
value = data['login']['username']
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
self.errors.append(_('unexpected datas "{0}" from Bitwarden for "{1}": {2}').format(key_bitwarden, path, exc))
|
self.errors.append(_('unexpected datas "{0}" from Bitwarden for "{1}": {2}').format(key_bitwarden, path, exc))
|
||||||
value = None
|
return None
|
||||||
else:
|
|
||||||
if value is None:
|
|
||||||
if type_ == 'secret':
|
|
||||||
bw_type = _('password')
|
|
||||||
else:
|
|
||||||
bw_type = _('username')
|
|
||||||
self.errors.append(_('item "{0}" in Bitwarden has no {1} for "{2}"').format(key_bitwarden, bw_type, path))
|
|
||||||
return value
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"errors": [
|
"errors": [
|
||||||
"item \"1_secret_unknown - environment - service - user\" in Bitwarden is not found for \"rougail.secret\""
|
"cannot find secret \"1_secret_unknown - environment - service - user\" from Bitwarden for \"rougail.secret\""
|
||||||
],
|
],
|
||||||
"warnings": []
|
"warnings": []
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"errors": [
|
"errors": [
|
||||||
"several items found with name \"4_several_secrets - environment - service - user\" in Bitwarden for \"rougail.secret\": \"4_several_secrets - environment - service - user_1\", \"4_several_secrets - environment - service - user_2\""
|
"several items found with name \"4_several_secrets - environment - service - user\" from Bitwarden for \"rougail.secret\": \"4_several_secrets - environment - service - user_1\", \"4_several_secrets - environment - service - user_2\""
|
||||||
],
|
],
|
||||||
"warnings": []
|
"warnings": []
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"errors": [
|
"errors": [
|
||||||
"several items found with name \"3_leadership_secret - ENVIRONMENT - SERVICE - USER\" in Bitwarden for \"rougail.secret\": \"3_leadership_secret - environment - service - user_1\", \"3_leadership_secret - environment - service - user_2\""
|
"several items found with name \"3_leadership_secret - ENVIRONMENT - SERVICE - USER\" from Bitwarden for \"rougail.secret\": \"3_leadership_secret - environment - service - user_1\", \"3_leadership_secret - environment - service - user_2\""
|
||||||
],
|
],
|
||||||
"warnings": []
|
"warnings": []
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"errors": [
|
|
||||||
"item \"6_no_username - environment - service - user_1\" in Bitwarden has no username for \"rougail.username\""
|
|
||||||
],
|
|
||||||
"warnings": []
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
"rougail.username": null,
|
|
||||||
"rougail.secret": "ET6RrpdZv5bNZu"
|
|
||||||
}
|
|
||||||
4
tests/results/9_unknown_type/errors/bitwarden.json
Normal file
4
tests/results/9_unknown_type/errors/bitwarden.json
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"errors": [],
|
||||||
|
"warnings": []
|
||||||
|
}
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
username:
|
|
||||||
description: the username
|
|
||||||
type: unix_user
|
|
||||||
secret_manager:
|
|
||||||
host: test
|
|
||||||
project: 6_no_username
|
|
||||||
environment: environment
|
|
||||||
service: service
|
|
||||||
user: user_1
|
|
||||||
|
|
||||||
secret:
|
|
||||||
description: the secret
|
|
||||||
type: secret
|
|
||||||
secret_manager:
|
|
||||||
host: test
|
|
||||||
project: 6_no_username
|
|
||||||
environment: environment
|
|
||||||
service: service
|
|
||||||
user: user_1
|
|
||||||
|
|
@ -169,16 +169,6 @@ def test_dictionaries_5_secret_calc_bw():
|
||||||
_test_dictionaries(test_dir / '5_secret_calc', 'bw')
|
_test_dictionaries(test_dir / '5_secret_calc', 'bw')
|
||||||
|
|
||||||
|
|
||||||
def test_dictionaries_6_no_username_rbw():
|
|
||||||
"tests the output"
|
|
||||||
_test_dictionaries(test_dir / '6_no_username', 'rbw')
|
|
||||||
|
|
||||||
|
|
||||||
def test_dictionaries_6_no_username_bw():
|
|
||||||
"tests the output"
|
|
||||||
_test_dictionaries(test_dir / '6_no_username', 'bw')
|
|
||||||
|
|
||||||
|
|
||||||
def test_dictionaries_8_multi_variable_rbw():
|
def test_dictionaries_8_multi_variable_rbw():
|
||||||
"tests the output"
|
"tests the output"
|
||||||
with raises(DictConsistencyError) as err:
|
with raises(DictConsistencyError) as err:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue