| gsc_auth |
function |
py |
infra |
1.0.0 |
impure |
def gsc_auth(credentials_path: str = "", subject: str = "") -> object |
Autentica contra la Google Search Console API v1 (searchconsole/webmasters) con una cuenta de servicio JSON. Lee el JSON de credentials_path o, si esta vacio, de la env var GSC_SA_JSON; lanza ValueError claro si falta. Usa service_account.Credentials.from_service_account_file con scope https://www.googleapis.com/auth/webmasters.readonly (solo lectura). subject opcional aplica with_subject(subject) para domain-wide delegation (normalmente vacio en GSC). Construye y retorna el objeto service de googleapiclient.discovery.build('searchconsole','v1', cache_discovery=False) listo para consumir por pull_gsc_search_analytics. Requiere google-api-python-client y google-auth. |
| seo |
| gsc |
| infra |
| google |
| search-console |
| auth |
| service-account |
|
|
|
|
false |
error_go_core |
| os |
| google.oauth2.service_account |
| googleapiclient.discovery |
|
| name |
desc |
| credentials_path |
ruta al JSON de la service account de GCP. Si esta vacio, se lee de la env var GSC_SA_JSON. Si tampoco existe, se lanza ValueError. El JSON es un secreto: resolver desde pass o una ruta fuera del repo, nunca commitear. |
|
| name |
desc |
| subject |
opcional. Email para domain-wide delegation (impersonation) via with_subject. Normalmente vacio en Search Console, donde la SA se anade directamente como usuario en GSC sin requerir delegation. |
|
|
object. El service de googleapiclient (googleapiclient.discovery.Resource) para la API 'searchconsole' v1, autenticado con scope webmasters.readonly y cache_discovery=False. Se pasa a funciones consumidoras como pull_gsc_search_analytics. |
true |
| test_build_se_llama_con_searchconsole_v1_y_cache_off |
| test_credentials_se_cargan_con_scope_readonly |
| test_fallback_a_env_var_gsc_sa_json |
| test_subject_aplica_with_subject |
| test_error_cuando_falta_credential |
|
python/functions/infra/gsc_auth_test.py |
python/functions/infra/gsc_auth.py |