pybritive 2.3.0__tar.gz → 2.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. {pybritive-2.3.0/src/pybritive.egg-info → pybritive-2.3.2}/PKG-INFO +1 -1
  2. pybritive-2.3.2/src/pybritive/__init__.py +1 -0
  3. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/britive_cli.py +3 -3
  4. pybritive-2.3.2/src/pybritive/completers/__init__.py +22 -0
  5. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/completers/api.py +7 -4
  6. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/completers/api_command.py +7 -4
  7. {pybritive-2.3.0 → pybritive-2.3.2/src/pybritive.egg-info}/PKG-INFO +1 -1
  8. pybritive-2.3.0/src/pybritive/__init__.py +0 -1
  9. pybritive-2.3.0/src/pybritive/completers/__init__.py +0 -2
  10. {pybritive-2.3.0 → pybritive-2.3.2}/LICENSE +0 -0
  11. {pybritive-2.3.0 → pybritive-2.3.2}/README.md +0 -0
  12. {pybritive-2.3.0 → pybritive-2.3.2}/pyproject.toml +0 -0
  13. {pybritive-2.3.0 → pybritive-2.3.2}/setup.cfg +0 -0
  14. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/__init__.py +0 -0
  15. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/backend.py +0 -0
  16. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/browser.py +0 -0
  17. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/mode.py +0 -0
  18. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/output_format.py +0 -0
  19. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/profile_type.py +0 -0
  20. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/ssh_key_source.py +0 -0
  21. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/choices/ssh_push_public_key.py +0 -0
  22. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/cli_interface.py +0 -0
  23. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/__init__.py +0 -0
  24. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/api.py +0 -0
  25. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/aws.py +0 -0
  26. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/cache.py +0 -0
  27. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/checkin.py +0 -0
  28. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/checkout.py +0 -0
  29. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/clear.py +0 -0
  30. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/configure.py +0 -0
  31. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/login.py +0 -0
  32. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/logout.py +0 -0
  33. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/ls.py +0 -0
  34. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/request.py +0 -0
  35. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/secret.py +0 -0
  36. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/ssh.py +0 -0
  37. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/commands/user.py +0 -0
  38. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/completers/bash_gte_42.py +0 -0
  39. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/completers/powershell_completion.py +0 -0
  40. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/completers/profile.py +0 -0
  41. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/__init__.py +0 -0
  42. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/api_method_argument_decorator.py +0 -0
  43. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/aws_credential_process.py +0 -0
  44. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/build_britive.py +0 -0
  45. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/cache.py +0 -0
  46. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/cloud_credential_printer.py +0 -0
  47. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/config.py +0 -0
  48. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/credentials.py +0 -0
  49. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/encryption.py +0 -0
  50. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/k8s_exec.py +0 -0
  51. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/k8s_exec_credential_builder.py +0 -0
  52. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/kube_config_builder.py +0 -0
  53. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/profile_argument_decorator.py +0 -0
  54. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/helpers/split.py +0 -0
  55. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/__init__.py +0 -0
  56. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/alias.py +0 -0
  57. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/aws_console_duration.py +0 -0
  58. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/aws_credentials_file.py +0 -0
  59. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/aws_profile.py +0 -0
  60. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/blocktime.py +0 -0
  61. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/britive_options.py +0 -0
  62. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/browser.py +0 -0
  63. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/checked_out.py +0 -0
  64. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/configure_alias.py +0 -0
  65. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/configure_backend.py +0 -0
  66. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/configure_prompt.py +0 -0
  67. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/configure_tenant.py +0 -0
  68. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/console.py +0 -0
  69. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/extend.py +0 -0
  70. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/federation_provider.py +0 -0
  71. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/file.py +0 -0
  72. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/force_renew.py +0 -0
  73. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/gcloud_key_file.py +0 -0
  74. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/justification.py +0 -0
  75. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/maxpolltime.py +0 -0
  76. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/mode.py +0 -0
  77. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/otp.py +0 -0
  78. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/output_format.py +0 -0
  79. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/passphrase.py +0 -0
  80. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/profile_type.py +0 -0
  81. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/query.py +0 -0
  82. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/search_text.py +0 -0
  83. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/silent.py +0 -0
  84. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/ssh_hostname.py +0 -0
  85. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/ssh_key_source.py +0 -0
  86. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/ssh_port.py +0 -0
  87. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/ssh_push_public_key.py +0 -0
  88. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/ssh_username.py +0 -0
  89. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/tenant.py +0 -0
  90. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/ticket_id.py +0 -0
  91. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/ticket_type.py +0 -0
  92. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/token.py +0 -0
  93. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/verbose.py +0 -0
  94. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive/options/version.py +0 -0
  95. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive.egg-info/SOURCES.txt +0 -0
  96. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive.egg-info/dependency_links.txt +0 -0
  97. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive.egg-info/entry_points.txt +0 -0
  98. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive.egg-info/requires.txt +0 -0
  99. {pybritive-2.3.0 → pybritive-2.3.2}/src/pybritive.egg-info/top_level.txt +0 -0
  100. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0100_version.py +0 -0
  101. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0200_configure.py +0 -0
  102. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0300_login.py +0 -0
  103. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0400_ls.py +0 -0
  104. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0500_api.py +0 -0
  105. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0600_secret.py +0 -0
  106. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0700_cache.py +0 -0
  107. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0800_checkout.py +0 -0
  108. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_0900_checkin.py +0 -0
  109. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_1000_clear.py +0 -0
  110. {pybritive-2.3.0 → pybritive-2.3.2}/tests/test_1100_logout.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pybritive
3
- Version: 2.3.0
3
+ Version: 2.3.2
4
4
  Summary: A pure Python CLI for Britive
5
5
  Author-email: "Britive Inc." <support@britive.com>
6
6
  License: MIT License
@@ -0,0 +1 @@
1
+ __version__ = '2.3.2'
@@ -612,7 +612,7 @@ class BritiveCli:
612
612
  return next(
613
613
  iter(
614
614
  a['catalogAppName']
615
- for a in self.b.get(f'{self.b.base_url}/access/apps/')
615
+ for a in self.b.get(f'{self.b.base_url}/access/apps')
616
616
  if a['appContainerId'] == application_id
617
617
  )
618
618
  )
@@ -1303,14 +1303,14 @@ class BritiveCli:
1303
1303
  app_id = next(
1304
1304
  iter(
1305
1305
  a['appContainerId']
1306
- for a in self.b.get(f'{self.b.base_url}/access/apps/')
1306
+ for a in self.b.get(f'{self.b.base_url}/access/apps')
1307
1307
  if a['catalogAppDisplayName'].lower() == application_name
1308
1308
  )
1309
1309
  )
1310
1310
  env_id = next(
1311
1311
  iter(
1312
1312
  e['environmentId']
1313
- for e in self.b.get(f'{self.b.base_url}/access/apps/{app_id}/environments/')
1313
+ for e in self.b.get(f'{self.b.base_url}/access/apps/{app_id}/environments')
1314
1314
  if e['environmentName'].lower() == environment_name
1315
1315
  or e['environmentId'] == environment_name
1316
1316
  or e['alternateEnvironmentName'].lower() == environment_name
@@ -0,0 +1,22 @@
1
+ # register the completion scripts since they are not required to be registered anywhere else
2
+ import os
3
+ from typing import Optional
4
+
5
+ from . import bash_gte_42, powershell_completion # noqa: F401
6
+
7
+
8
+ def get_tenant_for_api_completion() -> Optional[str]:
9
+ """Resolve the tenant for API completion from environment or config."""
10
+ tenant = os.getenv('BRITIVE_TENANT')
11
+ if not tenant:
12
+ from pybritive.helpers.config import ConfigManager # noqa: PLC0415
13
+
14
+ config = ConfigManager(None)
15
+ config.load()
16
+ if config.default_tenant and config.default_tenant in config.tenants:
17
+ tenant = config.tenants[config.default_tenant].get('name')
18
+ if not tenant:
19
+ return None
20
+ if not tenant.endswith('.britive-app.com'):
21
+ tenant = f'{tenant.strip()}.britive-app.com'
22
+ return tenant
@@ -4,13 +4,16 @@ import inspect
4
4
  from britive.britive import Britive
5
5
  from click.shell_completion import CompletionItem
6
6
 
7
+ from pybritive.completers import get_tenant_for_api_completion
8
+
7
9
 
8
10
  def api_completer(ctx, param, incomplete):
9
11
  # create an instance of the Britive class, so we can inspect it
10
- # this doesn't need to actually connect to any tenant, and we couldn't even if we
11
- # wanted to since when performing shell completion we have no tenant/token
12
- # context in order to properly establish a connection.
13
- b = Britive(token='ignore', tenant='britive.com', query_features=False)
12
+ # using the user's configured tenant to avoid DNS resolution issues
13
+ tenant = get_tenant_for_api_completion()
14
+ if not tenant:
15
+ return []
16
+ b = Britive(token='ignore', tenant=tenant, query_features=False)
14
17
 
15
18
  # parse the incomplete command, so we can determine where in the "hierarchy" we are
16
19
  # and what commands/subcommands the user should be presented with
@@ -4,14 +4,17 @@ from importlib.metadata import version
4
4
 
5
5
  from britive.britive import Britive
6
6
 
7
+ from pybritive.completers import get_tenant_for_api_completion
8
+
7
9
 
8
10
  def get_dynamic_method_parameters(method):
9
11
  try:
10
12
  # create an instance of the Britive class, so we can inspect it
11
- # this doesn't need to actually connect to any tenant, and we couldn't even if we
12
- # wanted to since when performing shell completion we have no tenant/token
13
- # context in order to properly establish a connection.
14
- b = Britive(token='ignore', tenant='britive.com', query_features=False)
13
+ # using the user's configured tenant to avoid DNS resolution issues
14
+ tenant = get_tenant_for_api_completion()
15
+ if not tenant:
16
+ return []
17
+ b = Britive(token='ignore', tenant=tenant, query_features=False)
15
18
 
16
19
  # parse the method, so we can determine where in the "hierarchy" we are
17
20
  # and what commands/subcommands the user should be presented with
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pybritive
3
- Version: 2.3.0
3
+ Version: 2.3.2
4
4
  Summary: A pure Python CLI for Britive
5
5
  Author-email: "Britive Inc." <support@britive.com>
6
6
  License: MIT License
@@ -1 +0,0 @@
1
- __version__ = '2.3.0'
@@ -1,2 +0,0 @@
1
- # register the completion scripts since they are not required to be registered anywhere else
2
- from . import bash_gte_42, powershell_completion # noqa: F401
File without changes
File without changes
File without changes
File without changes