Closed abarrak closed 9 months ago
Hi, This PR supports account name or id (depends on alias resolve option) as a credential profile name.
N/A.
Simplifying workflow I have where config profiles is inconsistent with creds names authoried by gimme-aws-creds
gimme-aws-creds
Unit tests passing:
(venv) ❯ pytest -vv tests ======================================================================== test session starts ========================================================================= platform darwin -- Python 3.11.2, pytest-7.4.3, pluggy-1.3.0 -- ~/code/gimme-aws-creds/venv/bin/python3.11 cachedir: .pytest_cache rootdir: ~/code/gimme-aws-creds collected 78 items tests/test_aws_resolver.py::TestAwsResolver::test_display_role PASSED [ 1%] tests/test_aws_resolver.py::TestAwsResolver::test_enumerate_saml_roles PASSED [ 2%] tests/test_aws_resolver.py::TestAwsResolver::test_enumerate_saml_roles_nextjs PASSED [ 3%] tests/test_config.py::TestConfig::test_fail_if_profile_not_found PASSED [ 5%] tests/test_config.py::TestConfig::test_get_args_username PASSED [ 6%] tests/test_config.py::TestConfig::test_read_config PASSED [ 7%] tests/test_config.py::TestConfig::test_read_config_inherited PASSED [ 8%] tests/test_config.py::TestConfig::test_read_nested_config_inherited PASSED [ 10%] tests/test_main.py::TestMain::test_choose_roles_app_0 PASSED [ 11%] tests/test_main.py::TestMain::test_choose_roles_app_1 PASSED [ 12%] tests/test_main.py::TestMain::test_choose_roles_app_2 PASSED [ 14%] tests/test_main.py::TestMain::test_choose_roles_app_a PASSED [ 15%] tests/test_main.py::TestMain::test_choose_roles_app_neg1 PASSED [ 16%] tests/test_main.py::TestMain::test_get_alias_from_friendly_name_no_alias PASSED [ 17%] tests/test_main.py::TestMain::test_get_alias_from_friendly_name_with_alias PASSED [ 19%] tests/test_main.py::TestMain::test_get_partition_aws PASSED [ 20%] tests/test_main.py::TestMain::test_get_partition_china PASSED [ 21%] tests/test_main.py::TestMain::test_get_partition_govcloud PASSED [ 23%] tests/test_main.py::TestMain::test_get_partition_unkown PASSED [ 24%] tests/test_main.py::TestMain::test_get_profile_accrole_name_do_not_resolve_alias_do_not_include_paths PASSED [ 25%] tests/test_main.py::TestMain::test_get_profile_accrole_name_do_not_resolve_alias_include_paths PASSED [ 26%] tests/test_main.py::TestMain::test_get_profile_name_account_do_not_resolve_alias PASSED [ 28%] tests/test_main.py::TestMain::test_get_profile_name_account_resolve_alias PASSED [ 29%] tests/test_main.py::TestMain::test_get_profile_name_accrole_resolve_alias_do_not_include_paths PASSED [ 30%] tests/test_main.py::TestMain::test_get_profile_name_default PASSED [ 32%] tests/test_main.py::TestMain::test_get_profile_name_else PASSED [ 33%] tests/test_main.py::TestMain::test_get_profile_name_role PASSED [ 34%] tests/test_main.py::TestMain::test_get_region_partition_aws PASSED [ 35%] tests/test_main.py::TestMain::test_get_region_partition_china PASSED [ 37%] tests/test_main.py::TestMain::test_get_region_partition_govcloud PASSED [ 38%] tests/test_main.py::TestMain::test_get_selected_app_from_config_0 PASSED [ 39%] tests/test_main.py::TestMain::test_get_selected_app_from_config_1 PASSED [ 41%] tests/test_main.py::TestMain::test_get_selected_roles_all PASSED [ 42%] tests/test_main.py::TestMain::test_get_selected_roles_from_config_0 PASSED [ 43%] tests/test_main.py::TestMain::test_get_selected_roles_from_config_1 PASSED [ 44%] tests/test_main.py::TestMain::test_get_selected_roles_multiple PASSED [ 46%] tests/test_main.py::TestMain::test_get_selected_roles_multiple_list PASSED [ 47%] tests/test_main.py::TestMain::test_missing_app_from_config PASSED [ 48%] tests/test_main.py::TestMain::test_missing_role_from_config PASSED [ 50%] tests/test_main.py::TestMain::test_parse_role_arn_base_path PASSED [ 51%] tests/test_main.py::TestMain::test_parse_role_arn_extended_path PASSED [ 52%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_authenticator_enrollment PASSED [ 53%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_email PASSED [ 55%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_hardware PASSED [ 56%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_push PASSED [ 57%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_sms PASSED [ 58%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_totp PASSED [ 60%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_unknown PASSED [ 61%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_webauthn_registered PASSED [ 62%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_webauthn_unregistered PASSED [ 64%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_build_factor_name_webauthn_unregistered_with_authenticator_name PASSED [ 65%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_check_push_result PASSED [ 66%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_choose_bad_factor_totp PASSED [ 67%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_choose_factor_push PASSED [ 69%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_choose_factor_sms PASSED [ 70%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_choose_factor_totp PASSED [ 71%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_choose_factor_webauthn PASSED [ 73%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_choose_non_number_factor_totp PASSED [ 74%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_get_headers PASSED [ 75%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_get_saml_response PASSED [ 76%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_get_state_token PASSED [ 78%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_get_username_password_creds PASSED [ 79%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_login_input_mfa_challenge PASSED [ 80%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_login_send_email PASSED [ 82%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_login_send_push PASSED [ 83%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_login_send_sms PASSED [ 84%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_login_username_password PASSED [ 85%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_missing_password PASSED [ 87%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_missing_saml_response PASSED [ 88%] tests/test_okta_classic_client.py::TestOktaClassicClient::test_passed_username PASSED [ 89%] tests/test_okta_identity_engine_client.py::TestOktaIdentityEngineClient::test_auth_session PASSED [ 91%] tests/test_okta_identity_engine_client.py::TestOktaIdentityEngineClient::test_get_headers PASSED [ 92%] tests/test_okta_identity_engine_client.py::TestOktaIdentityEngineClient::test_get_user_tokens PASSED [ 93%] tests/test_okta_identity_engine_client.py::TestOktaIdentityEngineClient::test_saml_response PASSED [ 94%] tests/test_okta_identity_engine_client.py::TestOktaIdentityEngineClient::test_start_device_flow PASSED [ 96%] tests/test_registered_authenticators.py::TestConfig::test_add_authenticator_sanity PASSED [ 97%] tests/test_registered_authenticators.py::TestConfig::test_file_creation_post_init PASSED [ 98%] tests/test_registered_authenticators.py::TestConfig::test_get_authenticator_user_sanity PASSED [100%] ========================================================================= 78 passed in 1.52s =========================================================================
I actually came here looking for how to do this. My multi account pipeline thanks you.
Hi @epierce, can you take a look here? If meged, this will simplify things for me. Thanks.
Description
Hi, This PR supports account name or id (depends on alias resolve option) as a credential profile name.
Related Issue
N/A.
Motivation and Context
Simplifying workflow I have where config profiles is inconsistent with creds names authoried by
gimme-aws-creds
How Has This Been Tested?
Unit tests passing:
Screenshots (if appropriate):
N/A.
Types of changes
Checklist: