Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-25 06:14 UTC

AzureAD / microsoft-authentication-library-for-android

Microsoft Authentication Library (MSAL) for Android

Java · KotlinMIT★ 265 estrellas⑂ 149 forksdesde jul 2016Ver en GitHub ↗

AzureAD/microsoft-authentication-library-for-android tiene un índice de salud de 76 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Vitality (97/100) y la más baja, Security (50/100). Se actualizó por última vez hoy. 4 personas concentran la mayor parte del trabajo reciente.

76
global / 100
Bueno

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

76
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

794 seguidores57 repositorios públicosdesde dic 2012

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

97Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
31.2/36Cadencia de commits — 45/52 semanas con commits
18/18Volumen de commits — 109 commits en el último año
10/10OpenSSF Scorecard: Maintained — 29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year109
human_commit_share1
days_since_last_push0
active_weeks_last_year45
Cómo se puntúa
27/27Publica versiones — 100 versiones publicadas
36/36Recencia de las versiones — última versión hace 10 días
27/27Cadencia de publicación — una versión cada ~20,9 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count100
latest_release_tagv8.4.1
releases_from_tagsno
days_since_latest_release10
mean_days_between_releases20,9
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

60Moderado · 18% del índice global
Cómo se puntúa
39.3/60Estrellas — 265 estrellas
18.1/25Forks — 149 forks
11.5/15Observadores — 116 observadores
Datos de entrada utilizados
forks149
stars265
watchers116
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

84Bueno · 24% del índice global
Cómo se puntúa
43.2/54Factor bus — la mitad de los commits recae en 4 contribuyente(s)
17.5/22.5Distribución de commits — el principal contribuyente firma el 22% de los commits
13.5/13.5Amplitud de contribuyentes — 58 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 6 contributing companies or organizations
Datos de entrada utilizados
bus_factor4
contributors_sampled58
top_contributor_share0,221
Cómo se puntúa
44.6/46.8Resolución de issues — 95% de issues cerradas
32.7/38.3Aceptación de PR — 1366/1600 PR decididos fusionados
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Datos de entrada utilizados
merged_prs1366
open_issues41
closed_issues832
issue_closed_ratio0,953
closed_unmerged_prs234
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
20.9/25Alcance del propietario — 794 seguidores de AzureAD
24.8/25Trayectoria — 57 repos públicos, cuenta de ~13 años
Datos de entrada utilizados
followers794
owner_typeOrganization
is_verified
owner_loginAzureAD
public_repos57
account_age_days4980

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

81Bueno · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 3 flujo(s) de trabajo
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentación

100Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — http://aka.ms/aadv2
10/10Descripción del repositorio
10/10Topics — 5 topics
10/10Wiki
Datos de entrada utilizados
topicsmsal, android, identity, microsoft, azure-active-directory
has_wiki
homepagehttp://aka.ms/aadv2
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

50Moderado · 16% del índice global
Cómo se puntúa
4.5/7.5Binary-Artifacts — binaries present in source code
1.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 6 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — sin datos
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5
Excluidos de la puntuación (sin datos o no aplicable): packaging, signed_releases. Los pesos restantes se han renormalizado.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

69Moderado · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — .github/copilot-instructions.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 100 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_files.github/copilot-instructions.md
agent_instruction_max_bytes47.238
Cómo se puntúa
12.6/18Arranque con un solo comando — build.gradle, examples/hello-msal-multiple-account/app/build.gradle, examples/hello-msal-multiple-account/build.gradle (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — Java (tipado estático)
0/10Entorno reproducible
10/10Práctica demostrada con agentes — 36 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfiles
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0,36
toolchain_manifestsbuild.gradle, examples/hello-msal-multiple-account/app/build.gradle, examples/hello-msal-multiple-account/build.gradle, examples/hello-msal-single-account/app/build.gradle, examples/hello-msal-single-account/build.gradle, msal/build.gradle, msalautomationapp/build.gradle, package-inspector/build.gradle, pop-benchmarker/build.gradle, testapps/testapp/build.gradle
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — Java (tipado estático)
54.4/55Tamaños de archivo manejables — 4/367 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageJava
largest_source_bytes145.542
source_files_sampled367
oversized_source_files4
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — example, examples
Datos de entrada utilizados
example_dirsexample, examples
has_mcp_signalno
api_schema_files

Datos clave

265estrellas de GitHub
58contribuidores
109commits en los últimos 12 meses
0días desde el último push
100versiones publicadas
4factor bus
41issues abiertas
Mavenecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Más detalle

Historial de estrellas y forks 0 ★ / 149 ⇿
0Estrellas
149Forks
98Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

025507510012515014642017-062021-122026-07
Mayor 6Menor 33Parche 55

Cada punto abarca 9 días.

OpenSSF Scorecard 5.0 / 10
5.0agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-25 06:13 UTC

6Binary-Artifactsbinaries present in source code
2Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 6 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
n/dPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Todas las dependencias 0

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 0 paquetes directos y 0 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

RegistroPaqueteVersiónRelación
Avisos de dependencias sin evaluar

El cotejo de avisos no pudo ejecutarse para este informe: No resolved dependencies to assess

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [
        "msal",
        "android",
        "identity",
        "microsoft",
        "azure-active-directory"
      ],
      "is_fork": false,
      "size_kb": 91928,
      "has_wiki": true,
      "homepage": "http://aka.ms/aadv2",
      "languages": {
        "Java": 1934041,
        "Kotlin": 932275
      },
      "pushed_at": "2026-07-24T06:35:22Z",
      "created_at": "2016-07-27T20:27:57Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-24T00:06:58Z",
      "description": "Microsoft Authentication Library (MSAL) for Android",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "dev",
      "license_spdx_raw": "MIT",
      "primary_language": "Java",
      "significant_languages": [
        "Java",
        "Kotlin"
      ]
    },
    "owner": {
      "blog": "http://azure.microsoft.com/en-us/services/active-directory/",
      "name": "Azure Active Directory",
      "type": "Organization",
      "login": "AzureAD",
      "company": null,
      "location": "Redmond, WA",
      "followers": 794,
      "avatar_url": "https://avatars.githubusercontent.com/u/2966316?v=4",
      "created_at": "2012-12-04T23:19:57Z",
      "is_verified": null,
      "public_repos": 57,
      "account_age_days": 4980
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v8.4.1",
          "kind": "patch",
          "published_at": "2026-07-15T03:07:18Z"
        },
        {
          "tag": "v8.4.0",
          "kind": "minor",
          "published_at": "2026-06-18T00:58:58Z"
        },
        {
          "tag": "v8.3.3",
          "kind": "patch",
          "published_at": "2026-05-30T01:52:51Z"
        },
        {
          "tag": "v8.3.2",
          "kind": "patch",
          "published_at": "2026-05-01T17:23:27Z"
        },
        {
          "tag": "v8.3.1",
          "kind": "patch",
          "published_at": "2026-04-17T18:14:50Z"
        },
        {
          "tag": "v8.3.0",
          "kind": "minor",
          "published_at": "2026-03-27T01:23:10Z"
        },
        {
          "tag": "v8.2.3",
          "kind": "patch",
          "published_at": "2026-03-06T00:55:02Z"
        },
        {
          "tag": "v8.2.2",
          "kind": "patch",
          "published_at": "2026-02-26T22:45:40Z"
        },
        {
          "tag": "v8.2.1",
          "kind": "patch",
          "published_at": "2026-02-07T00:02:57Z"
        },
        {
          "tag": "v8.2.0",
          "kind": "minor",
          "published_at": "2026-01-08T01:45:34Z"
        },
        {
          "tag": "v8.1.1",
          "kind": "patch",
          "published_at": "2025-12-02T21:43:48Z"
        },
        {
          "tag": "v8.1.0",
          "kind": "minor",
          "published_at": "2025-11-13T18:58:07Z"
        },
        {
          "tag": "v8.0.2",
          "kind": "patch",
          "published_at": "2025-10-09T22:04:16Z"
        },
        {
          "tag": "v7.1.0",
          "kind": "minor",
          "published_at": "2025-09-09T15:23:36Z"
        },
        {
          "tag": "v7.0.3",
          "kind": "patch",
          "published_at": "2025-08-27T00:30:19Z"
        },
        {
          "tag": "v7.0.1",
          "kind": "patch",
          "published_at": "2025-08-11T22:02:44Z"
        },
        {
          "tag": "v7.0.0",
          "kind": "major",
          "published_at": "2025-08-06T20:24:36Z"
        },
        {
          "tag": "v6.2.0",
          "kind": "minor",
          "published_at": "2025-07-08T00:19:24Z"
        },
        {
          "tag": "v6.1.0",
          "kind": "minor",
          "published_at": "2025-06-05T19:36:41Z"
        },
        {
          "tag": "v6.0.1",
          "kind": "patch",
          "published_at": "2025-05-06T18:05:08Z"
        },
        {
          "tag": "v6.0.0",
          "kind": "major",
          "published_at": "2025-04-03T22:06:36Z"
        },
        {
          "tag": "v5.10.2",
          "kind": "patch",
          "published_at": "2025-03-07T16:14:03Z"
        },
        {
          "tag": "v5.10.0",
          "kind": "minor",
          "published_at": "2025-02-10T09:50:32Z"
        },
        {
          "tag": "5.9.0",
          "kind": "minor",
          "published_at": "2025-01-10T04:00:28Z"
        },
        {
          "tag": "v5.8.3",
          "kind": "patch",
          "published_at": "2025-01-07T01:52:30Z"
        },
        {
          "tag": "v5.8.2",
          "kind": "patch",
          "published_at": "2024-11-19T05:58:47Z"
        },
        {
          "tag": "v5.8.1",
          "kind": "patch",
          "published_at": "2024-11-15T22:19:09Z"
        },
        {
          "tag": "v5.8.0",
          "kind": "minor",
          "published_at": "2024-11-12T20:34:05Z"
        },
        {
          "tag": "v5.7.0",
          "kind": "minor",
          "published_at": "2024-10-08T20:00:52Z"
        },
        {
          "tag": "v5.6.0",
          "kind": "minor",
          "published_at": "2024-09-12T19:14:44Z"
        },
        {
          "tag": "v5.5.0",
          "kind": "minor",
          "published_at": "2024-08-08T19:54:31Z"
        },
        {
          "tag": "v5.4.2",
          "kind": "patch",
          "published_at": "2024-07-15T21:18:46Z"
        },
        {
          "tag": "v5.4.0",
          "kind": "minor",
          "published_at": "2024-06-12T00:59:01Z"
        },
        {
          "tag": "v5.3.1",
          "kind": "patch",
          "published_at": "2024-05-22T18:15:33Z"
        },
        {
          "tag": "v5.3.0",
          "kind": "minor",
          "published_at": "2024-04-15T16:13:19Z"
        },
        {
          "tag": "v5.2.1",
          "kind": "patch",
          "published_at": "2024-03-28T16:07:37Z"
        },
        {
          "tag": "v5.2.0",
          "kind": "minor",
          "published_at": "2024-03-14T20:31:11Z"
        },
        {
          "tag": "v5.1.0",
          "kind": "minor",
          "published_at": "2024-02-13T00:59:50Z"
        },
        {
          "tag": "v5.0.1",
          "kind": "patch",
          "published_at": "2024-01-25T20:40:13Z"
        },
        {
          "tag": "v5.0.0",
          "kind": "major",
          "published_at": "2024-01-08T23:33:33Z"
        },
        {
          "tag": "v4.10.0",
          "kind": "minor",
          "published_at": "2023-11-17T19:18:18Z"
        },
        {
          "tag": "v4.9.2",
          "kind": "patch",
          "published_at": "2023-11-15T22:43:33Z"
        },
        {
          "tag": "v4.9.0",
          "kind": "minor",
          "published_at": "2023-10-08T20:32:29Z"
        },
        {
          "tag": "v4.8.1",
          "kind": "patch",
          "published_at": "2023-09-20T16:09:38Z"
        },
        {
          "tag": "v4.7.0",
          "kind": "minor",
          "published_at": "2023-08-08T04:15:25Z"
        },
        {
          "tag": "v4.6.3",
          "kind": "patch",
          "published_at": "2023-07-24T04:54:15Z"
        },
        {
          "tag": "v4.6.2",
          "kind": "patch",
          "published_at": "2023-07-11T21:50:07Z"
        },
        {
          "tag": "v4.6.1",
          "kind": "patch",
          "published_at": "2023-06-12T13:44:12Z"
        },
        {
          "tag": "v4.5.0",
          "kind": "minor",
          "published_at": "2023-05-09T23:57:23Z"
        },
        {
          "tag": "v4.4.0",
          "kind": "minor",
          "published_at": "2023-04-06T18:47:53Z"
        },
        {
          "tag": "v4.3.1",
          "kind": "patch",
          "published_at": "2023-03-08T06:33:23Z"
        },
        {
          "tag": "v4.2.0",
          "kind": "minor",
          "published_at": "2023-02-07T03:20:53Z"
        },
        {
          "tag": "v4.1.3",
          "kind": "patch",
          "published_at": "2023-01-09T13:30:34Z"
        },
        {
          "tag": "v4.1.0",
          "kind": "minor",
          "published_at": "2022-11-12T12:19:54Z"
        },
        {
          "tag": "v4.0.5",
          "kind": "patch",
          "published_at": "2022-11-01T16:24:40Z"
        },
        {
          "tag": "v4.0.4",
          "kind": "patch",
          "published_at": "2022-10-20T22:17:29Z"
        },
        {
          "tag": "v4.0.3",
          "kind": "patch",
          "published_at": "2022-10-11T18:41:16Z"
        },
        {
          "tag": "v4.0.2",
          "kind": "patch",
          "published_at": "2022-09-21T19:09:19Z"
        },
        {
          "tag": "v4.0.1",
          "kind": "patch",
          "published_at": "2022-08-16T18:35:20Z"
        },
        {
          "tag": "v4.0.0",
          "kind": "major",
          "published_at": "2022-07-26T21:10:52Z"
        },
        {
          "tag": "v3.0.2",
          "kind": "patch",
          "published_at": "2022-03-25T00:30:59Z"
        },
        {
          "tag": "v2.2.3",
          "kind": "patch",
          "published_at": "2022-01-12T20:27:44Z"
        },
        {
          "tag": "v2.2.2",
          "kind": "patch",
          "published_at": "2021-12-07T16:23:37Z"
        },
        {
          "tag": "v2.2.1",
          "kind": "patch",
          "published_at": "2021-09-27T22:20:58Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2021-08-26T23:21:08Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2021-07-08T15:19:38Z"
        },
        {
          "tag": "v2.0.12",
          "kind": "patch",
          "published_at": "2021-05-07T17:23:03Z"
        },
        {
          "tag": "v2.0.10",
          "kind": "patch",
          "published_at": "2021-04-19T17:34:12Z"
        },
        {
          "tag": "v2.0.8",
          "kind": "patch",
          "published_at": "2021-03-08T13:22:25Z"
        },
        {
          "tag": "v2.0.6",
          "kind": "patch",
          "published_at": "2021-01-22T05:02:51Z"
        },
        {
          "tag": "v2.0.5",
          "kind": "patch",
          "published_at": "2021-01-07T05:47:55Z"
        },
        {
          "tag": "2.0.4",
          "kind": "patch",
          "published_at": "2020-11-12T04:17:38Z"
        },
        {
          "tag": "2.0.3",
          "kind": "patch",
          "published_at": "2020-11-11T16:47:16Z"
        },
        {
          "tag": "v2.0.2",
          "kind": "patch",
          "published_at": "2020-10-15T21:54:14Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2020-09-23T19:10:22Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2020-09-15T22:05:19Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2020-07-30T00:16:07Z"
        },
        {
          "tag": "v1.5.5",
          "kind": "patch",
          "published_at": "2020-07-23T17:46:54Z"
        },
        {
          "tag": "v1.5.4",
          "kind": "patch",
          "published_at": "2020-07-02T21:32:55Z"
        },
        {
          "tag": "v1.5.3",
          "kind": "patch",
          "published_at": "2020-06-25T20:09:23Z"
        },
        {
          "tag": "v1.5.2",
          "kind": "patch",
          "published_at": "2020-06-17T21:51:11Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2020-05-05T21:47:05Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2020-04-27T21:10:53Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2020-04-23T17:33:10Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2020-02-28T22:21:20Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2020-02-12T20:11:22Z"
        },
        {
          "tag": "v1.2.0-hf1",
          "kind": "prerelease",
          "published_at": "2020-02-04T22:00:36Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2020-01-16T19:55:08Z"
        },
        {
          "tag": "v1.1.0-hf1",
          "kind": "prerelease",
          "published_at": "2020-01-07T18:11:31Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2019-12-18T00:40:55Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2019-12-16T20:16:23Z"
        },
        {
          "tag": "v1.0.0-hf1",
          "kind": "prerelease",
          "published_at": "2019-12-03T18:47:03Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2019-09-30T18:18:07Z"
        },
        {
          "tag": "v0.3.1-alpha",
          "kind": "prerelease",
          "published_at": "2019-05-02T16:19:12Z"
        },
        {
          "tag": "v0.2.2",
          "kind": "patch",
          "published_at": "2019-02-07T22:50:28Z"
        },
        {
          "tag": "v0.2.1",
          "kind": "patch",
          "published_at": "2018-10-17T00:07:48Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2018-10-10T16:55:14Z"
        },
        {
          "tag": "v0.1.3",
          "kind": "patch",
          "published_at": "2018-04-27T18:50:10Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2018-04-25T20:00:59Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2017-05-10T00:57:53Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "8d1f0552ced36459d70bfd6705862bf6d0f0af84",
          "body": "…eline, Fixes AB#3678342 (#2540)\n\n[AB#3678342](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3678342)\n\n## What\n\nMakes `FlakyTestRetryRule` / `@RetryFlakyTest` (added in common)\navailable to broker's instrumented (androidTest) suite\n(AADAuthenticator),\n[…]\nulator.\n\n## Depends on\nCommon PR (AzureAD common-for-android #3181). The wiring is harmless\nbefore that lands; `@RetryFlakyTest` becomes usable once the common\nsubmodule is bumped to include the rule.",
          "is_bot": false,
          "headline": "Wire testutils into msal instrumented tests + add instrumented PR pip…",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-07-24T00:06:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b757f5eb85794316b039bb98720e1c4264268c95",
          "body": "Fixes AB#3684509\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>",
          "is_bot": false,
          "headline": "Release integration/8.4.1 back to dev,  Fixes AB#3684509 (#2543)",
          "author_name": "Sowmya Malayanur",
          "author_login": "somalaya",
          "committed_at": "2026-07-15T00:28:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2964cbe49ec67a8f66aa25b96f7eb72beffd527",
          "body": "…itive review patterns, Fixes AB#3660481 (#2539)\n\n### What\n\nAdds a new **§7.17 Recurring False-Positive Patterns — Do NOT Flag\nThese** subsection to `.github/copilot-instructions.md` (within the §7\nreview block, before the appendices), plus reciprocal cross-references\nin Intent Safety (§7.2.3), Test\n[…]\nAB#3660481](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3660481)\n\n---------\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "[msal] Refine copilot-instructions.md to suppress recurring false-pos…",
          "author_name": "Shahzaib",
          "author_login": "shahzaibj",
          "committed_at": "2026-07-09T16:11:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fe3f65d3ec67098f2b4db92fb9a422ee8fae3664",
          "body": "### Summary\nA couple of UI auto tests which rely on Mooncake were failing, so adding\nthe ignore annotation.\n\n\n[AB#3688062](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3688062)",
          "is_bot": false,
          "headline": "Ignoring a couple of other Mooncake tests, Fixes AB#3688062 (#2538)",
          "author_name": "melissaahn",
          "author_login": "melissaahn",
          "committed_at": "2026-07-08T19:35:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a39208341a6b54b6c58472178d015ec807c32e5",
          "body": "### Summary\nUpdated UI automated test to better represent what the interactive and\nthen silent requests will look like (lookup mode).\n\n\n[AB#3682854](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3682854/)\n\n---------\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "WebApps UI test Lookup mode update, Fixes AB#3682854 (#2537)",
          "author_name": "melissaahn",
          "author_login": "melissaahn",
          "committed_at": "2026-07-08T16:29:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "783c3ff64b1b749e7f2f7edb23a2002f97f9dc1a",
          "body": "China accounts are decommissioned, ignoring tests for now to unblock\ndevelopment\n\n\n[AB#3686034](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3686034)",
          "is_bot": false,
          "headline": "disable china tests, Fixes AB#3686034 (#2536)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-07-07T19:43:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca4701fe2ce7923a31efad16d3fa97fb2bc7800d",
          "body": "…2531)\n\n## Summary\n\nAdds OWASP Dependency-Check scanning to the :msal Android library build\nso runtime dependencies can be analyzed for known CVEs during the\nstandard Gradle check lifecycle, using a suppression file for\nnarrowly-scoped false positives.\n\n## What changed\n\n- Applies the org.owasp.depen\n[…]\nidentitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3557141)\n-\nhttps://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3667951",
          "is_bot": false,
          "headline": "Add OWASP Dependency-Check to msal library build, Fixes AB#3557141 (#…",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-07-02T16:16:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "58a942227c7a9f3955ab632d2bc98e94f6e4783a",
          "body": "This updates the `common` git submodule to the current head of the `dev`\nbranch in `AzureAD/microsoft-authentication-library-common-for-android`,\nso MSAL Android consumes the latest shared auth/runtime fixes and\nbehavior changes.\n\n- **Submodule pointer update**\n- Advanced `common` from `0b219baca3bd\n[…]\nAB#3673330](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3673330)\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update `common` submodule to latest `dev` commit (#2535)",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-06-26T15:31:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "22315e4d3130b2eb931fa492c4ff8d653cd6cf65",
          "body": "This PR updates the `common` git submodule to the latest `dev` tip\nrequested in the issue. The repository now points `common` from\n`fb98ec58...` to `0b219bac...`, with no other tree changes.\n\n- **Submodule pointer update**\n  - Moved submodule gitlink at `common`:\n- `fb98ec58b36af556fed6de41480b783c8\n[…]\nd6de41480b783c8ee3df53\n+Subproject commit 0b219baca3bdc00a610de9a9d5d70aad40e0bcfb\n```\n\nFixes AB#3667378\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Bump `common` submodule to latest `dev` commit, Fixes AB#3667378 (#2534)",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-06-18T20:27:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6c13eea2b8cbb00b10f376824a8ab9b240f57997",
          "body": "### Summary\nUpdating changelog and versioning.\n\n\n[AB#3669341](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3669341)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>",
          "is_bot": false,
          "headline": "Release integration/8.4.0 to dev, Fixes AB#3669341 (#2532)",
          "author_name": "melissaahn",
          "author_login": "melissaahn",
          "committed_at": "2026-06-17T22:50:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d2f24585601408ea7bbd354becc79281aef30c2",
          "body": "…es AB#3582859 (#2504)\n\n[AB#3582859](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3582859)\n\nAdd stress test for concurrent request scenario.\n(one caveat: there's currently a known \"null_object\" issue which is only\naddressed in OneAuth. so the test wi\n[…]\nthub.com>\nCo-authored-by: rpdome <19558668+rpdome@users.noreply.github.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: Dome Pongmongkol <rapong@microsoft.com>",
          "is_bot": false,
          "headline": "Add e2e concurrent/stress test for AcquireTokenSilent via broker, Fix…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-06-17T21:37:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "69b54758891c2c9e396d7b6a091e8fd92444266a",
          "body": "[AB#3654871](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3654871)\n\nDue to an ongoing CA change [Enforcement for baseline scopes in\nConditional Access - Microsoft Entra ID | Microsoft\nLearn](https://learn.microsoft.com/en-us/entra/identity/conditiona\n[…]\nhttps://console.firebase.google.com/u/1/project/msal-automation-app-764c7/testlab/histories/bh.8ea0f850e176ede8/matrices/5652255611600854094/details?stepId=bs.5728d347d675a2e4&testCaseId=1&tabId=video",
          "is_bot": false,
          "headline": "update to sharepoint resource for Token , Fixes AB#3654871 (#2528)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-06-12T20:41:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2f7851aa15e7e9a13801397ae7247f5db743d8d6",
          "body": "[AB#3648301](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3648301)",
          "is_bot": false,
          "headline": "Update common, Fixes AB#3648301 (#2526)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-06-10T22:21:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f01a486d4a3e4958aad0a4633bb18a042474b92d",
          "body": "Pull cleaned common, adjust two tests\n\n\n[AB#3647753](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3647753)",
          "is_bot": false,
          "headline": "small cleanups, pull common, Fixes AB#3647753 (#2522)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-06-10T06:34:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b42ae4a34b234cbbe4579b5cd7db5235a3f22543",
          "body": "When release-integration/8.3.3 was back-merged into dev (#2520), entry\n#2511 (which was merged to dev *after* the 8.3.3 RC cut) got listed\nunder `Version 8.3.3`. It actually shipped to dev after 8.3.3 was\nfinalized, so it belongs under `vNext` for the next release.\n\nThis PR moves 1 entry from `Versi\n[…]\ne RC\" cut).\n\n\n[AB#3618269](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3618269)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix changelog: move #2511 from Version 8.3.3 to vNext (#2525)",
          "author_name": "Shahzaib",
          "author_login": "shahzaibj",
          "committed_at": "2026-06-09T23:51:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6f74ea5581f339cb91643203a68e3e8d2c8f1290",
          "body": "…8301 (#2523)\n\n[AB#3648301](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3648301)\n\nPart of\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/3142",
          "is_bot": false,
          "headline": "handle batt opt exemption prompt in token binding tests, Fixes AB#364…",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-06-09T23:03:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d93bafecbb44cc77db7a3d0a68327129922b44d1",
          "body": "AB#3611236",
          "is_bot": false,
          "headline": "update versions.gradle (#2524)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-06-09T21:21:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c4974f4f2888b966263ae0d107e07eb12384f91",
          "body": "… (#2513)\n\n## Summary\nAdds a new `flatusername` built-in attribute to the\n`UserAttributes.Builder` class, following the existing pattern for other\nattributes (city, country, surname, etc.).\n\n## Changes\n- **UserAttributes.kt**: Added `FLAT_USERNAME` constant and\n`flatUsername()` builder method with K\n[…]\nside existing attributes.\n\n\n[AB#3607103](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3607103)\n\n---------\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add flatUsername attribute to UserAttributes builder Fixes AB#3607103…",
          "author_name": "Silviu Petrescu",
          "author_login": "spetrescu84",
          "committed_at": "2026-06-09T15:45:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eb7bd5912303f605784fda1e0326a6a2ed87c5c1",
          "body": "[AB#3618269](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3618269)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>\nCo-authored-by: fadidurah <88730756+fadidurah@users.noreply.github.com>\nCo-authored-by: Mohit <mohitc1@live.com>",
          "is_bot": false,
          "headline": "Merge Release integration/8.3.3 to dev, Fixes AB#3618269 (#2520)",
          "author_name": "Shahzaib",
          "author_login": "shahzaibj",
          "committed_at": "2026-06-08T23:07:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a1be91c8cd5ae143af78bc4dd8bddfa8aac1a33",
          "body": "### Summary\nRemoving GetCookies and replacing it with GetAllSsoToken (the method\nwhich should actually be getting called by Edge).\n\n\n[AB#3624552](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3624552)\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Edits to the WebApp UI Automated test, Fixes AB#3624552 (#2521)",
          "author_name": "melissaahn",
          "author_login": "melissaahn",
          "committed_at": "2026-06-05T16:53:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "eaf3d1f2d8c3d5bf1a3715f3400e0ff652c38aee",
          "body": "Update all ui automation test cases to work with the ID4SLAB2 resources\n\n- Update configurations to point ID4SLAB2 client ids and applications\nthat replace what was previously accessed in lab4\n- Remove all usage of LabQuery\n- Remove all usage of RetryOnFailure, reduces clutter since we force a\nminim\n[…]\n\n\n\n[AB#3525444](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3525444)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Migrate tests to using ID4SLAB2, Fixes AB#3525444 (#2471)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-06-04T16:14:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ebc0d1c2aad6301c8ce1e216db1b3015cfefe5c7",
          "body": "… Fixes AB#3606613 (#2511)\n\n## Summary\n\nEnables apps to inject custom `x-*` headers into native auth HTTP\nrequests (e.g., for CIAM fraud-signal scenarios like Akamai sensor\ndata).\n\n## Changes\n\n### MSAL (this PR)\n- **`NativeAuthRequestInterceptor.kt`** — Defined in\n`com.microsoft.identity.nativeauth`\n[…]\nngineering/_workitems/edit/3606613)\n\n---------\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add NativeAuthRequestInterceptor for custom per-request HTTP headers,…",
          "author_name": "Silviu Petrescu",
          "author_login": "spetrescu84",
          "committed_at": "2026-06-03T15:09:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a4ad7f0fc22dbc9cc7e94f8189d15fbd98f3addc",
          "body": "[AB#3609347](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3609347)\n\n## Summary\nSwitches Maven publishing from the `AndroidADAL` feed to the\n`NewAndroid` feed to eliminate upstream-feed traversal latency on\ndependency resolution in CI.\n\n## Why\n- We pu\n[…]\nre DevOps organization, same auth, same package\ncoordinates, same retention. Only the publish-target feed name changes.\n\n---------\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Build perf: enable Gradle configure-on-demand, Fixes AB#3609347 (#2512)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-06-01T20:18:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2596e2d4f57280bd91e11042131a452099df5e9f",
          "body": "… (#2414), Fixes AB#3611726 (#2515)\n\nFixes\n[AB#3611726](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3611726)\ntracks the MSAL-side default-config update for the customer-reported\nEdge browser issue.\n\n## Customer-reported issue\nResolves [microsoft-aut\n[…]\nhe version in the\ncommon repo (which uses `(?<=AB#)\\d+ | head -n 1`).\n\n---------\n\nCo-authored-by: shjameel <shjameel@microsoft.com>\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add rotated Microsoft Edge signature hash to default browser safelist…",
          "author_name": "Shahzaib",
          "author_login": "shahzaibj",
          "committed_at": "2026-05-21T04:33:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d003b0b34de5432f279bd31fc49b55ad8441fa7c",
          "body": "[AB#3605734](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3605734)\n\nI don't think this is needed (we don't use bouncy here)... i'm just\nupdating for the sake of consistency.",
          "is_bot": false,
          "headline": "Update Bouncy to 1.84, Fixes AB#3605734 (#2514)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-05-18T15:37:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26a4790566d6bebd681c0feb7055f0f09c1cef9b",
          "body": "… AB#3587778 (#2507)\n\nAdds a new PR validation pipeline that runs\n`msalautomationapp:assembleLocal` to validate the msalautomationapp\nproject builds successfully.\n\n\nhttps://identitydivision.visualstudio.com/Engineering/_build?definitionId=3081&_a=summary\n\n\n[AB#3587778](https://identitydivision.visua\n[…]\nedit/3587778)\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add PR validation pipeline for msalautomationapp assembleLocal, Fixes…",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-05-13T01:37:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5ee0dd187de5254118eb5674f3241b7816343ff2",
          "body": "… 3561310 (#2508)\n\nFixes\n[AB#3588706](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3588706)\nThis test has been converted to a manual test case (ADO Test Case\n3561310) under the 'MSAL /w Broker' category. Adding @Ignore to skip\nautomated execution.\n\n---------\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fixes AB#3588706 Ignore TestCase833544 - converted to manual test ADO…",
          "author_name": "Siddhi",
          "author_login": "siddhijain",
          "committed_at": "2026-05-06T20:06:49Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6cb9bf3cd415f78647578b1b3674798948779727",
          "body": "Fixes\n[AB#3557679](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3557679)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>",
          "is_bot": false,
          "headline": "Merge release-integration/8.3.2 to dev, Fixes AB#3557679 (#2506)",
          "author_name": "Mohit",
          "author_login": "mohitc1",
          "committed_at": "2026-05-05T17:52:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7e157aed04cabd0fd45ed2ae815e6f2cb5eb623",
          "body": "AB#3587724",
          "is_bot": false,
          "headline": "Update subproject commit reference in common (#2503)",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-04-27T20:23:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "954d4ca29f0aff87c19ac1091875b66c70aac161",
          "body": "…nfiguration, Fixes AB#3568778 (#2494)\n\n- [x] Remove `validateCustomTabRedirectActivity()` from\n`PublicClientApplicationConfiguration.java`\n- [x] Delete `ShadowPublicClientApplicationConfiguration.java`\n- [x] Update 10 test files to remove the deleted shadow from\n`@Config(shadows = ...)`\n- [x] Remov\n[…]\nored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: fadidurah <88730756+fadidurah@users.noreply.github.com>\nCo-authored-by: fadidurah <fadidurah@microsoft.com>",
          "is_bot": false,
          "headline": "Remove \"multiple apps listening\" check from PublicClientApplicationCo…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-04-24T16:11:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "299672abaf13aceafc50cd0fafd4f7af851475d5",
          "body": "…e833544) (#2502)\n\nWord intermittently shows a 'Your privacy option' dialog after sign-in\nvia FOCI SSO. This blocks subsequent UI interactions and causes the test\nto fail. Add a safe dismiss of the 'Close' button if the dialog appears\nafter the 'Fetching your files' screen.\n\n<img width=\"1080\" height\n[…]\nd2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3584928)\n\n---------\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fixes AB#3584928 Handle Word privacy screen in FOCI SSO test (TestCas…",
          "author_name": "Siddhi",
          "author_login": "siddhijain",
          "committed_at": "2026-04-23T19:49:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "167b9256460ae57731739d6702a9ba3d7a921c21",
          "body": "[AB#3580011](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3580011)\n\n\nEnhanced the MSAL test app's concurrent ATS stress test to better\nreproduce broker deadlocks and race conditions:\n\n### Execution model\n- **Wave-synchronized execution** — Added `Cyc\n[…]\nbb5d100bf\"\n/>\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update Concurrent ATS Section in MsalTestApp, Fixes AB#3580011 (#2500)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-04-20T21:13:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ba640331145ff2666be68c12b3daec80315bee23",
          "body": "Update bouncy castle version due to vulnerability revealed\n\nhttps://identitydivision.visualstudio.com/Engineering/_componentGovernance/AuthClientAndroidPipelines/alert/13283474?typeId=34726829&pipelinesTrackingFilter=0\n\nValidation:\nhttps://identitydivision.visualstudio.com/Engineering/_build/results?buildId=1617164&view=results\n\n\n[AB#3565065](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3565065)",
          "is_bot": false,
          "headline": "bouncyCastleVersion 1.80, Fixes AB#3565065 (#2493)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-04-16T00:45:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f6624232c61cf9c8434ddc91a16615f5a1d3c1d",
          "body": "use feed for robolectric\n\n\n[AB#3544225](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3544225)",
          "is_bot": false,
          "headline": "use feed for robolectric, Fixes AB#3544225 (#2498)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-04-15T21:41:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfbe26a2f7a50b331c48f56e5af2f0386816ef11",
          "body": "…, Fixes AB#3568550 (#2496)\n\n### Summary\nThis UI test case tests the WebApps API with local BrokerHost only.\nOperations tested include GetToken (Interactive and silent), GetCookies,\nand SignOut.\nLink to test item:\nhttps://identitydivision.visualstudio.com/Engineering/_workitems/edit/3571739\nI put this item in the Broker Master Test Plan under\nLocalBrokerHostDebug\n\n\n[AB#3568550](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3568550/)",
          "is_bot": false,
          "headline": "Adding UI automation testcase for WebApps API within local BrokerHost…",
          "author_name": "melissaahn",
          "author_login": "melissaahn",
          "committed_at": "2026-04-15T17:35:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab65e0fcb0af070de270448e1e0550ea99673025",
          "body": "[AB#3575771](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3575771)",
          "is_bot": false,
          "headline": "fixing github injection vuln as part of MSRC, Fixes AB#3575771 (#2497)",
          "author_name": "richardtz12",
          "author_login": "richardtz12",
          "committed_at": "2026-04-13T19:34:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cefec8c04c631050c7f1fbd95a9b89fe11b55578",
          "body": "This pull request updates the Android SDK versions used in the project\nto ensure compatibility with the latest tools and platform features. The\nmost important changes are:\n\n**Build configuration updates:**\n\n* Updated `compileSdkVersion` to 36 and `buildToolsVersion` to 36.0.0 in\n`gradle/versions.gra\n[…]\nply.github.com>\nCo-authored-by: p3dr0rv <76129899+p3dr0rv@users.noreply.github.com>\nCo-authored-by: p3dr0rv <pedroro@microsoft.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Bump compileSdk to 36, Fixes AB#3561424 (#2492)",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-04-08T00:20:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bd7fee4e887ea57d2c93b0d98be001f471df65ba",
          "body": "Merging latest MSAL release (8.3.0) back onto dev branch\n\nWorkItem id:\n[AB#3557594](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3557594)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>\nCo-authored-by: pedro romero vargas <76129899+p3dr0rv@users.noreply.github.com>\nCo-authored-by: Cesar Acosta <cesaracosta@microsoft.com>",
          "is_bot": false,
          "headline": "Release integration/8.3.0, Fixes AB#3557594 (#2490)",
          "author_name": "Cesar Acosta",
          "author_login": "cacosta33",
          "committed_at": "2026-03-30T14:31:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0aa906d0612664af2f3273f43f07d8ac369caa20",
          "body": "This pull request removes several unused test classes and updates test\nlogic for device registration and workplace join scenarios, particularly\naround migration and verification of device records. The changes focus\non cleaning up redundant code and improving the accuracy and reliability\nof test asse\n[…]\nhttps://identitydivision.visualstudio.com/Engineering/_build/results?buildId=1608442&view=results\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update test that use legacy WPJ API, Fixes AB#3528431 (#2483)",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-03-27T00:14:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f5d424143a45c1b74934a5978b9d00ec8faabcb7",
          "body": "Adds a new `AzureFranceSov` value to the `AzureCloudInstance` enum,\nenabling app developers to target the Bleu sovereign cloud (France)\nusing the type-safe builder pattern:\n\n```java\nAcquireTokenParameters.builder()\n    .fromAuthority(AzureCloudInstance.AzureFranceSov, AadAuthorityAudience.AzureAdMul\n[…]\nor-android/pull/3027\nFixes\n[AB#3536002](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3536002)\n\n---------\n\nCo-authored-by: Mohit <mchand@microsoft.com>",
          "is_bot": false,
          "headline": "Add AzureFranceSov to AzureCloudInstance enum, Fixes AB#3536002 (#2484)",
          "author_name": "Mohit",
          "author_login": "mohitc1",
          "committed_at": "2026-03-21T02:46:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f1e2ab518c737e33e6f87fe1d56435998d86f816",
          "body": "…token binding, Fixes AB#3544154 (#2485)\n\n[AB#3544154](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3544154)",
          "is_bot": false,
          "headline": "Fix msalautomation tests (update common) + Use id4slab2 accounts for …",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-03-20T22:17:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8af45d1a46c1827f9514f03c1486561fb47f3b35",
          "body": "…ipeline (#2486)\n\n## Summary\nReplace `MSSecurity-1ES-Build-Agents-Pool` with Microsoft-hosted\n`vmImage: 'windows-2022'` in the `pr-msal.yml` pipeline.\n\n## Changes\n- **File:** `azure-pipelines/pull-request-validation/pr-msal.yml`\n- **Before:** `pool: { name: MSSecurity-1ES-Build-Agents-Pool, image:\nM\n[…]\n.\n\n[AB#3549891](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3549891)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Replace MSSecurity-1ES pool with Microsoft-hosted agents in pr-msal p…",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-03-20T18:10:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "afe0a831fb7eac41cb08302c069f37eced28fa2e",
          "body": "…28 (#2470)\n\nFixes\n[AB#3501428](https://dev.azure.com/IdentityDivision/Engineering/_workitems/edit/3501428)\n\nThis pull request adds end-to-end (E2E) test support for the Browser SSO\n(Single Sign-On) flow in the test app. It introduces new UI fragments\nand layouts that allow developers to simulate br\n[…]\non to the new fragments\nwhen the corresponding menu items are selected.\n\n**4. Submodule Update:**\n- Updated the `common` submodule reference to the latest commit,\nensuring dependencies are up to date.",
          "is_bot": false,
          "headline": "Add BrowserSsoFragment for E2E testing of Browser SSO, Fixes AB#35014…",
          "author_name": "Shahzaib",
          "author_login": "shahzaibj",
          "committed_at": "2026-03-16T20:54:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ad8d449b5f55ce010194bfcb2c6b8ccb679d914e",
          "body": "… AB#3540776 (#2481)\n\n* Added a call to confirmCallingAppNotVerified in\ntest_1600567_nonAllowedBrokerApp. When the app is launched, an error\nmessage is immediately received, so we need to validate and dispatch\nthis initial message first.\n\n* Introduced an Assume.assumeFalse statement in\ntest_2516571_\n[…]\ndivision.visualstudio.com/Engineering/_build/results?buildId=1604258&view=results\n\n\n[AB#3540776](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3540776)",
          "is_bot": false,
          "headline": "Fix UI test related to broker validation for ECS configuration, Fixes…",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-03-14T00:09:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "06734194df2d01eb40625b67a9dc5d850e76ad94",
          "body": "… AB#3537345 (#2482)\n\nRefer\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/3015\nfor description,\n\nFixes\n[AB#3537345](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3537345)\n\n---------\n\nCo-authored-by: Mohit <mchand@microsoft.com>",
          "is_bot": false,
          "headline": "Fix test_2828864_DCF_CheckSignInFromOtherDeviceOptionAvailable, Fixes…",
          "author_name": "Mohit",
          "author_login": "mohitc1",
          "committed_at": "2026-03-13T16:58:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3a50ff277307a83b5c9e787deacac95a33c599c",
          "body": "Moshi 1.14.0 pulls in `okio:2.10.0`, which is vulnerable to\nCVE-2023-3635. Prior mitigation via dependency constraints in\nbuild.gradle only worked for pipeline builds, not for independent\nconsuming apps. Bumping Moshi to 1.15.2 fixes this at the source\n(`okio:3.7.0`).\n\n- **`gradle/versions.gradle`**\n[…]\n/gh.io/copilot-coding-agent-survey).\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: mohitc1 <22034758+mohitc1@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update Moshi to 1.15.2 to resolve transitive okio CVE-2023-3635 (#2480)",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-03-06T20:01:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "77c500db6642163c7d97939e77b4e32a2c715b05",
          "body": "[AB#3534721](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3534721)\n\n---------\n\nCo-authored-by: Dome Pongmongkol <19558668+rpdome@users.noreply.github.com>\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>",
          "is_bot": false,
          "headline": "Release integration/8.2.3, Fixes AB#3534721 (#2479)",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-03-06T00:49:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa86adb40206d5b57aa53c4de8e0af8b9b468933",
          "body": "[AB#3532401](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3532401)",
          "is_bot": false,
          "headline": "fix dcf test, Fixes AB#3532401 (#2477)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-03-05T06:54:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "27b37eb9208ef8856380bbb0ebc390be38739b75",
          "body": "[AB#3275400](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3275400)\n\n---------\n\nCo-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Strongkey E2E tests, Fixes AB#3275400 (#2468)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-02-27T18:50:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "39448089dc7ffa9cdddc53527c67ed9eea900657",
          "body": "[AB#3509010](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3509010)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>\nCo-authored-by: pedro romero vargas <76129899+p3dr0rv@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Release integration/8.2.2, Fixes AB#3509010 (#2475)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-02-26T22:43:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cf8fb0fe97e817753f2437455f47802d697ad28",
          "body": "…le valid messages, Fixes AB#3505565 (#2472)\n\nThis pull request updates the test logic in `TestCase1600567.java` to\nimprove compatibility with different versions of the Broker by allowing\nmultiple valid dialog messages when verifying that a calling app is not\nallowed. The main change is in how dialo\n[…]\n.\n\n[AB#3505565](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3505565)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update dialog message assertions in TestCase1600567 to support multip…",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-02-26T18:04:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "48b12d2466ba1343a841e6e580ed4b068c81d6f1",
          "body": "PR to trim down ui automation, combine tests where possible to result in\na shorter runtime overall. For a summary of the combinations made, check\nmsalautomationapp/src/androidTest/TestCaseSummary_Compact.md\n\nValidation:\nhttps://identitydivision.visualstudio.com/Engineering/_build/results?buildId=1596072&view=results\n\n\n[AB#3421522](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3421522)",
          "is_bot": false,
          "headline": "Trim down ui automation, combine many tests, Fixes AB#3421522 (#2432)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-02-26T00:37:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b062005cb309539dff2c1a89386502860387b544",
          "body": "[AB#3494371](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3494371).\n\nrun\nhttps://identitydivision.visualstudio.com/Engineering/_build/results?buildId=1593966&view=results",
          "is_bot": false,
          "headline": "Remove AAD Graph usage, Fixes AB#3494371 (#2467)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2026-02-19T20:18:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57f114fc7d013e0f78a7bfa63a5fede6873a48b8",
          "body": "Finally got this to work, tested in a fork of the repo\n\nFull Github Models integration for github issues, both on creation and\non demand/backfill using a label `Target-For-Ai-Triage'.\n\nFeatures:\n- Initial triage and possible solution\n- Issue Classification with explanation for classification\n- Prior\n[…]\nd2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3517523)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Final Fix to github issues (#2463)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-02-19T17:15:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0b36c6254d79b6a4cd98cb01741b8913422c8c84",
          "body": "…d, Fixes AB#3505565 (#2451)\n\nThis pull request adds conditional logic to several Android test cases\nto ensure they only run when the device is configured to trust or not\ntrust debug brokers, according to their requirements. This improves test\nreliability and prevents false failures by skipping tests when\npreconditions are not met.\n\n\n[AB#3505565](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3505565)",
          "is_bot": false,
          "headline": "Add precondition checks to skip tests if debug brokers are not truste…",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-02-13T21:36:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f188f3aff084801232ceabcb5af2415f5ee8c5f8",
          "body": "…ue, Fixes AB#3515122 (#2459)\n\nThis testcase is no longer applicable when the flight\nperformNonSharedWpjWithHardwareKey is set to true. See PR\nhttps://github.com/identity-authnz-teams/ad-accounts-for-android/pull/39\nfor original changes where we disabled install certificate with harware\nbound key sc\n[…]\nes\n[AB#3515122](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3515122)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Disable testcase when performNonSharedWpjWithHardwareKey is set to tr…",
          "author_name": "Sowmya Malayanur",
          "author_login": "somalaya",
          "committed_at": "2026-02-13T04:41:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d9af1defbcfe65e9814e262d4e593ad7bcf6ef0e",
          "body": "…#2455)\n\nGithub Model Api is now enabled for our Org, just need to make an\nadjustment to this action to enable testing with it. I took this chance\nto refactor the yaml (it had gotten pretty huge) with claude and added\nthe needed models: read permission. Also, added a trigger for the\n`Target-For-Ai-T\n[…]\n\n\n\n[AB#3482361](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3482361)\n\n---------\n\nCo-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update permissions for github issue triage action, Fixes AB#3482361 (…",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-02-12T08:01:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d82e5ab99db1e0c25d7daf26410145fc9553977f",
          "body": "…506772 (#2442)\n\nSetting up code coverage checks in PRs. the check does the comparison\nbetween pr branch and dev, but it is not blocking at this time.\n\nCommon PR:\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2884\n\n\n[AB#3506772](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3506772)",
          "is_bot": false,
          "headline": "Add Code coverage comparison for Msal, it is not blocking, Fixes AB#3…",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-02-12T01:10:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f6102483adf6d493d726dab094a25766aba11b6",
          "body": "[AB#3501549](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3501549)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>\nCo-authored-by: pedro romero vargas <76129899+p3dr0rv@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Merge release_integration/8.2.1 to dev, Fixes AB#3501549 (#2452)",
          "author_name": "wzhipan",
          "author_login": "wzhipan",
          "committed_at": "2026-02-06T23:56:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0f36b99d4648ab5848b793ae845aab7da95ba3e",
          "body": "There are 2 issues to fix with the github issues yaml\n(.github/workflows/copilot-issue-response.yml) at this time:\n- PING-COPILOT section has a syntax error, which is stopping the\nautomatic replies. Check here for more info\nhttps://github.com/AzureAD/microsoft-authentication-library-for-android/acti\n[…]\ns much\nhttps://github.com/AzureAD/microsoft-authentication-library-for-android/actions/runs/21680063535/job/62511599816\n\n---------\n\nCo-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Github issue workflow yaml fix (#2446)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-02-05T16:31:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d668e5ad076e311115c755338c07bbd5de5e24bd",
          "body": "…iority assignment using GitHub Models API (#2440)\n\nReplaces hardcoded PING-COPILOT response logic and rule-based issue\nclassification with fully AI-powered analysis using GitHub Models API.\nThe system now uses AI for impact detection, response generation, issue\nclassification, security detection, a\n[…]\nswe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: fadidurah <88730756+fadidurah@users.noreply.github.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Implement fully AI-powered issue triage with PING-COPILOT and auto-pr…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-02-04T16:42:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ba2bd0f6a7491e19b8a03cf316f40f56fad5f588",
          "body": "Introduced a bug that caused an error in consumers pipeline. This PR\nfixes the bug by excluding jacoco from tasks where it doesn't belong.\n\n\nhttps://identitydivision.visualstudio.com/Engineering/_build/results?buildId=1588026&view=results\n\n\n[AB#3421522](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3421522)",
          "is_bot": false,
          "headline": "Fix Jacoco Gradle, Fixes AB#3421522 (#2444)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2026-02-04T00:53:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d23bbe381b63db59bd14b3f0997aa5f3a962dc6",
          "body": "Update error message\n\n\n[AB#3505565](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3505565)",
          "is_bot": false,
          "headline": "Update verification message in TestCase1600567, Fixes AB#3505565 (#2443)",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2026-02-03T23:10:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afe03b641aba9ddc488ecc4ed83ec07b3050af88",
          "body": "…21522 (#2433)\n\nThis PR adds a gradle task to generate a jacoco test coverage report. I\nwill use this in a later PR to enable code coverage increase check as\npart of the test pipeline check.\n\n\n[AB#3421522](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit\n[…]\nusers.noreply.github.com>\nCo-authored-by: Cesar Acosta <cacosta333@hotmail.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: fadidurah <fadidurah@microsoft.com>",
          "is_bot": false,
          "headline": "Move code coverage from GitHub Actions to Azure Pipeline, Fixes AB#34…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-02-03T17:44:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6c204088f0b575338bd59f759e7a545ccb3c2d75",
          "body": "…y bugs, Fixes AB#3482361 (#2438)\n\n## Add Missing Pattern Detectors ✅\n\nRe-added three pattern detection checks that existed in the original\n`pattern_detection` job but were accidentally omitted when pattern\ndetection was integrated into the `classify` step:\n\n### Patterns Re-Added:\n\n1. **display-mask\n[…]\n7a6bf26/_workitems/edit/3482361)\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: fadidurah <88730756+fadidurah@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Decouple priority from issue type, distinguish user error from librar…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-02-03T03:06:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "88b1cb458d263bcd728b4a9ee339f87a0153258b",
          "body": "Getting rid of a test that is failing due to a code cleanup done\nhttps://identitydivision.visualstudio.com/Engineering/_build/results?buildId=1583005&view=logs&j=5c79abb1-9ec0-595a-4f3c-4dab092abbb7&t=3a27e138-3b87-5c14-208e-f494ebcbafb3&s=2c159723-1993-5fdc-9491-8356989f2405",
          "is_bot": false,
          "headline": "Remove server side telemetry test that is not needed anymore (#2435)",
          "author_name": "Siddhi",
          "author_login": "siddhijain",
          "committed_at": "2026-01-22T20:46:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5215c5c286f163ccc4cabd7f2369e1d6acba276c",
          "body": "Fixes\n[AB#3493850](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3493850)\nThe eSTS telemetry emission has been gated behind a flight since\nSeptember 2025. This PR removes the associated code paths as part of the\ncleanup.\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2742",
          "is_bot": false,
          "headline": "code cleanup - skip eSTS telemetry Fixes AB#3493850 (#2434)",
          "author_name": "Siddhi",
          "author_login": "siddhijain",
          "committed_at": "2026-01-20T22:44:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2fe12cd7a52ec134afe5d4436ca15db00028700",
          "body": "…xes AB#3462702 (#2430)\n\n[AB#3462702](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3462702)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>",
          "is_bot": false,
          "headline": "Merge release-integration/8.2.0 into dev to finish up the release, Fi…",
          "author_name": "wzhipan",
          "author_login": "wzhipan",
          "committed_at": "2026-01-08T00:45:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d777f3c1515825cddf329a5bc5295d6980be513",
          "body": "…ow-up for Copilot agent, Fixes AB#3482361 (#2429)\n\n## Summary\n\nSuccessfully implemented all requirements and addressed all PR review\nfeedback:\n\n### ✅ Review Feedback Addressed (Final)\n\n1. **Case-insensitive PING-COPILOT trigger** - Added lowercase variant\nto workflow conditional\n2. **Multi-line PIN\n[…]\n7a6bf26/_workitems/edit/3482361)\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: fadidurah <88730756+fadidurah@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add version-aware triage, label transparency, and user-triggered foll…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-01-07T20:13:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a4e9fe0d36d23ac03423c323d09b9677bc4a0320",
          "body": "[AB#3469226](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3469226)",
          "is_bot": false,
          "headline": "DCF API test removed, Fixes AB#3469226 (#2428)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-12-30T18:23:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c9610cc8d5656afef986f644c652bf7674ec54f",
          "body": "…xes AB#3415746 (#2424)\n\nFixes\n[AB#3415746](https://dev.azure.com/IdentityDivision/Engineering/_workitems/edit/3415746)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add MSAL-specific code review guidance to copilot-instructions.md, Fi…",
          "author_name": "Shahzaib",
          "author_login": "shahzaibj",
          "committed_at": "2025-12-29T19:29:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "442e3127c185a2ee3fe16c0b18a355e3605814c9",
          "body": "…472 (#2427)\n\nThis test has been failing again with invalid_grant; this is because the\nexpired device code value we used is now \"expired\" (server side not\nrecognizing it as a previous code anymore). So we need to update this\nvalue.\n\nAlso updating common submodule while I'm at it.\n\n\n[AB#3468472](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3468472)",
          "is_bot": false,
          "headline": "Updating testDeviceCodeFlowTokenExpiredToken unit test, Fixes AB#3468…",
          "author_name": "melissaahn",
          "author_login": "melissaahn",
          "committed_at": "2025-12-23T18:56:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72b7d6f79ceabf3cb9d7da52af82c1547c36607d",
          "body": "The feature has been stopped, per Mohit\n\n\n[AB#3465480](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3465480)",
          "is_bot": false,
          "headline": "Remove Phone Sign Up Test case, Fixes AB#3465480 (#2425)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-12-19T22:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9435d715c823bd19ac697fd65a10511e75f2b1fc",
          "body": "…es AB#3377270 (#2411)\n\nAdds AI-agent resources for triaging GitHub issues **and** providing\ngeneral debugging support to users across all interaction channels: a\ncommon issues reference guide, customer communication guidelines, and an\nautomated workflow for initial issue triage.\n\n## Capabilities\n\nT\n[…]\nswe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: fadidurah <88730756+fadidurah@users.noreply.github.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add AI resources for GitHub issue handling and debugging support, Fix…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2025-12-15T17:21:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b2b91b3558e1bd35a6795e159dd09414f574dea1",
          "body": "…entral, Fixes AB#3395409 (#2413)\n\nReceived an s360 item asking our libraries to always pull packages from\nfeeds, and not declare mavenCentral as a repository to source\ndependencies. The feed itself has maven as an upstream. We cannot use\nAndroidADAL feed as that one has some versions deleted (once \n[…]\ndivision.visualstudio.com/Engineering/_build/results?buildId=1568877&view=results\n\n\n[AB#3395409](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3395409)",
          "is_bot": false,
          "headline": "Move our Libraries to only use artifact feed for packages, no Maven C…",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-12-11T17:08:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "390feda95cef8a6757aa3f356d50b345e103a97e",
          "body": "Fixes\n[AB#3444129](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3444129)",
          "is_bot": false,
          "headline": "Fixes AB#3444129 merge release branch to dev (#2417)",
          "author_name": "Siddhi",
          "author_login": "siddhijain",
          "committed_at": "2025-12-11T03:16:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec9dd47a93ecc18521d0e9f50ff8d84f0f7943d0",
          "body": "…430779 (#2407)\n\nLab is now back online, we can un-ignore some tests\n\n\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2820\n\n[AB#3430779](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3430779)",
          "is_bot": false,
          "headline": "Lab back online, take common changes and bring back tests, Fixes AB#3…",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-11-24T18:18:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70f423bca060ec0a58fcfbdf9889732dca257e53",
          "body": "[AB#3435630](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3435630)\n\n[Related Common\nChange](https://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2818)",
          "is_bot": false,
          "headline": "Update test app , Fixes AB#3435630 (#2409)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2025-11-20T01:32:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a69af3a3504281c6391848d615ecadf61e38171",
          "body": "[AB#3427295](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3427295)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>",
          "is_bot": false,
          "headline": "Merge info of release 8.1.0 to dev, Fixes AB#3427295 (#2403)",
          "author_name": "wzhipan",
          "author_login": "wzhipan",
          "committed_at": "2025-11-19T20:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "477a72959e52131a27af73516a2e414f2f5830f0",
          "body": "…4041 (#2398)\n\nThere are some functions that still don't work from lab api. This PR\nignores 4 tests that use these apis.\n\nCommon PR to fix lab api calls:\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2809\n\n\n[AB#3424041](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3424041)",
          "is_bot": false,
          "headline": "Ignore some UI tests that use ResetApi, EnablePolicyApi, Fixes AB#342…",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-11-10T22:22:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48cbc99146909b77828c7304b039356fb0c7d024",
          "body": "Update common to latest dev\n\n\n[AB#3395876](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3395876)",
          "is_bot": false,
          "headline": "Update common to latest dev, Fixes AB#3395876 (#2399)",
          "author_name": "Danilo Raspa",
          "author_login": "nilo-ms",
          "committed_at": "2025-11-10T14:29:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a20f4a5b71594c1c49e537a718bb526f1f7eb57",
          "body": "[AB#3385532](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3385532)\n\nhttps://identitydivision.visualstudio.com/DevEx/_git/AuthLibrariesApiReview/pullrequest/20357\n### Add WebAuthn Version Support and Passkey Headers\n\nThis PR adds support for handling \n[…]\nlete\nthe flow, and you will end up with a token and a passkey.\n6 - try again with no user selected and use the passkey.\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add WebAuthn version support in configuration, Fixes AB#3385532 (#2393)",
          "author_name": "pedro romero vargas",
          "author_login": "p3dr0rv",
          "committed_at": "2025-11-06T22:37:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "71ac706202aaf57b14e92b1cfbe22a83ddf7b1bc",
          "body": "[AB#3403843](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3403843)\n\nRemove native auth doc warning and log warning from preview features in\nnative auth SDK. This is no longer needed going into preview.",
          "is_bot": false,
          "headline": "Remove native auth warning logs, Fixes AB#3403843 (#2397)",
          "author_name": "anzhen",
          "author_login": "andwhysoft",
          "committed_at": "2025-11-06T16:32:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76f578a8e8b2ca26a511b8d6f2e4ef5f63f8d9c0",
          "body": "…2392)\n\n[AB#3385486](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3385486)\n\nThis PR adds the domainHint parameters into acquireTokenParameters and\nhas a dependency on\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2792\n\nDomainHint is adde\n[…]\n to streamline developer experience for\nSocial IdP/Custom OIDC scenarios with MSAL SDK. Today developer can use\nextraQueryParameters as a alternative which required developer to type\nin \"domain_hint\".",
          "is_bot": false,
          "headline": "Add domainHint support to acquireTokenParameters, Fixes AB#3385486 (#…",
          "author_name": "anzhen",
          "author_login": "andwhysoft",
          "committed_at": "2025-10-29T15:22:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e8ee2d0b70c0ae293ac592a9d5447241557456eb",
          "body": "[AB#3397730](https://dev.azure.com/IdentityDivision/Engineering/_workitems/edit/3397730)\n\n---------\n\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>\nCo-authored-by: p3dr0rv <pedroro@microsoft.com>\nCo-authored-by: rohitluthra <rohitluthra@microsoft.com>",
          "is_bot": false,
          "headline": "Merge branch created from Release/8.0.0 to dev, Fixes AB#3397730 (#2389)",
          "author_name": "Rohit Luthra",
          "author_login": "rohitluthra",
          "committed_at": "2025-10-24T21:51:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b2bbab67fd4e0aa0c756174ac37174c9c357c1f",
          "body": "[AB#3404910](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3404910)\n\nNOTE: in order for this to work, the build config\n```shouldSkipSilentTokenCommandCacheForStressTest``` must be set to\ntrue.\nOtherwise, the redundant requests will be absorbed by the\n\n[…]\n654\" height=\"1408\" alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/9603c253-a906-4ee3-afdd-f1d8767a1e35\"\n/>\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add stress test for ATS to msaltestapp, Fixes AB#3404910 (#2391)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2025-10-24T18:38:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "95e5aed343e6b0cafde9e55f9146292719a12179",
          "body": "Remove some old ltw tests that use \"Old\" apks, also remove usage of api\n29 in remaining ltw tests (oneauthtestapp no longer needs api 29 minus).\n\n\n[AB#3382033](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3382033)",
          "is_bot": false,
          "headline": "adjust ltw tests, Fixes AB#3382033 (#2385)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-10-07T18:57:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50deebcf88ee0b02cae813ee9687c96cb7552d0f",
          "body": "…3313635 (#2384)\n\nThis PR adds a new SDK error with instructions when the auth method is\nblocked during MFA flow.\n\nMSAL Common PR:\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2772\n\nFixes\n[AB#3313635](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3313635)",
          "is_bot": false,
          "headline": "Native auth: add new SDK error when auth method is blocked, Fixes AB#…",
          "author_name": "Danilo Raspa",
          "author_login": "nilo-ms",
          "committed_at": "2025-09-26T11:11:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a1b0122f8618c83423131ff51927a10dee5cae1",
          "body": "This PR needs to be merged after the email OTP MFA one.\n\nThis PR contains the changes to support SMS OTP MFA/JIT.\nVerification contact is now a mandatory field.\n\nMSAL Common PR:\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2766\n\nFixes\n[AB#3313635](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3313635)",
          "is_bot": false,
          "headline": "Native auth: SMS OTP MFA/JIT implementation, Fixes AB#3313635 (#2382)",
          "author_name": "Danilo Raspa",
          "author_login": "nilo-ms",
          "committed_at": "2025-09-25T10:10:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d1c787a32bfc9353936363b345f7810e7258063",
          "body": "…B#3351233 (#2380)\n\nThis PR updates the SDK to match the latest flow from EC.\n\nIn this new flow, the developer must always supply an auth Method to the\n/oauth2/v2.0/challenge endpoint which means once the .mfaRequired error\nis received from token endpoint, the /oauth2/v2.0/introspect endpoint\nneeds \n[…]\nes\n[AB#3351233](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3351233)\n\nMSAL Common PR:\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2764",
          "is_bot": false,
          "headline": "Native auth: Update Email OTP MFA to Match EC Implementation, Fixes A…",
          "author_name": "Danilo Raspa",
          "author_login": "nilo-ms",
          "committed_at": "2025-09-24T10:54:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8a8c96e5af4ad60e01aad24ae289914385edb4fb",
          "body": "Fixes\n[AB#3340920](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3340920)\n\nCommon:\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2756\n\nRUn:\nhttps://identitydivision.visualstudio.com/Engineering/_build/results?buildId=1532428&view=results",
          "is_bot": false,
          "headline": "[MSAL] Update proguard rules, Fixes AB#3340920 (#2372)",
          "author_name": "Mohit",
          "author_login": null,
          "committed_at": "2025-09-16T18:45:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "148f2c62ea4a8ffc36140d595d995cf2206441db",
          "body": "Fixes\n[AB#3363212](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3363212)",
          "is_bot": false,
          "headline": "Update release versions in dev, Fixes AB#3363212 (#2377)",
          "author_name": "Siddhi",
          "author_login": "siddhijain",
          "committed_at": "2025-09-10T20:00:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc5375fcac1d8741d4e7e4a2f3a07d8d00167933",
          "body": "Settings up copilot instructions to facilitate app generation and\ngeneral calling pattern debugging\n\nThis is to get the file into dev. Will probably need to tweak it once\ni've validated things, from a general perspective in dev, without\nexisting context with the agent.\n\n\nhttps://github.com/AzureAD/m\n[…]\nosoft-authentication-library-for-android/pull/2370\n\n---------\n\nCo-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fadi/copilot 1 (#2369)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-09-09T15:25:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "960bc92c9dd6f4cd2fe4574558eadde6e46d8148",
          "body": "…s Ui, Fixes AB#3330305 (#2365)\n\nAuthenticator is rolling out React Native settings page. This PR is to\nupdate our E2E Ui Automation validation to handle both the old Ui and\nthe new to maintain success rate as the feature rolls out.\n\nValidation:\n\nhttps://identitydivision.visualstudio.com/Engineering\n[…]\ndit/3330305)\n\n---------\n\nCo-authored-by: richardtz12 <richardtz12@gmail.com>\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>\nCo-authored-by: Dome Pongmongkol <rapong@microsoft.com>",
          "is_bot": false,
          "headline": "Adjust Ui Automation to handle both old and new Authenticator Setting…",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-08-29T17:33:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b7c62432bd106ade2c95ab1ff96588eb4f3a3327",
          "body": "See related common PR:\nhttps://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/2745",
          "is_bot": false,
          "headline": "Fix for App Link Usage in DUNA / SSO scenarios (#2363)",
          "author_name": "Shahzaib",
          "author_login": "shahzaibj",
          "committed_at": "2025-08-28T17:43:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed72371713a7523c164bba48e917f1bc1b25a212",
          "body": "Working/release/7.0.3\n\n---------\n\nCo-authored-by: richardtz12 <richardtz12@gmail.com>\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>\nCo-authored-by: Dome Pongmongkol <rapong@microsoft.com>",
          "is_bot": false,
          "headline": "Working/release/7.0.3 (#2364)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-08-27T00:52:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55240275c39c56f93ce6490912bd3831e7f145ff",
          "body": "### Summary\n\n[AB#3330213](https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3330213)\n\nWe got a report from a partner team that they were seeing very low\namounts (like 5 instances) of an NPE related to AccountAdapter. Looking\nat past related issues, this seems like some account en\n[…]\no very old\nbroker versions. The patch in this PR is to add null checks for both the\nhome and local id from the guest account, and if either are null, then\nit won't be added to the guest account array.",
          "is_bot": false,
          "headline": "Add null checks for guest account ids, Fixes AB#3330213 (#2361)",
          "author_name": "melissaahn",
          "author_login": "melissaahn",
          "committed_at": "2025-08-26T00:42:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e5f13ee8780ace706a32228e56adb5caed841df2",
          "body": "ignore 3 federated tests\n\nThese tests use a lab api which currently does not have VMs allocated\nfor federated auth. Ignoring these tests as they are currently failing\nas false flags.",
          "is_bot": false,
          "headline": "ignore 3 federated tests (#2357)",
          "author_name": "fadidurah",
          "author_login": "fadidurah",
          "committed_at": "2025-08-20T00:21:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "886e28176f84b67c816565524e7fbdb2a118f7de",
          "body": "Co-authored-by: richardtz12 <richardtz12@gmail.com>\nCo-authored-by: Azure DevOps Pipeline <build-agent@azuredevops.com>",
          "is_bot": false,
          "headline": "Merge working/release/7.0.1 to dev (#2352)",
          "author_name": "Dome Pongmongkol",
          "author_login": "rpdome",
          "committed_at": "2025-08-12T19:15:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65e5ad746d23e1a3bd838fd8998bd5db6f74a67a",
          "body": "Enabling Phone signup option test again, as the changes are not deployed\nto WW.\n\nTested Locally using the URL redirects. The test can run on 08/10/2025\nweekly run",
          "is_bot": false,
          "headline": "Re-enable Phone Sign Up Option Test (#2351)",
          "author_name": "Mohit",
          "author_login": null,
          "committed_at": "2025-08-08T23:22:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 109,
      "latest_release_at": "2026-07-15T03:07:18Z",
      "latest_release_tag": "v8.4.1",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 45,
      "days_since_latest_release": 10,
      "mean_days_between_releases": 20.9
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 149,
      "stars": 265,
      "watchers": 116,
      "fork_history": {
        "days": [
          {
            "date": "2017-06-07",
            "count": 1
          },
          {
            "date": "2017-06-27",
            "count": 1
          },
          {
            "date": "2017-06-29",
            "count": 1
          },
          {
            "date": "2017-07-23",
            "count": 1
          },
          {
            "date": "2017-08-13",
            "count": 1
          },
          {
            "date": "2017-08-17",
            "count": 1
          },
          {
            "date": "2017-10-03",
            "count": 1
          },
          {
            "date": "2017-10-22",
            "count": 1
          },
          {
            "date": "2018-02-06",
            "count": 1
          },
          {
            "date": "2018-03-19",
            "count": 1
          },
          {
            "date": "2018-04-03",
            "count": 1
          },
          {
            "date": "2018-05-30",
            "count": 1
          },
          {
            "date": "2018-07-17",
            "count": 1
          },
          {
            "date": "2018-09-20",
            "count": 1
          },
          {
            "date": "2018-10-08",
            "count": 1
          },
          {
            "date": "2018-11-27",
            "count": 1
          },
          {
            "date": "2018-12-19",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 1
          },
          {
            "date": "2019-01-25",
            "count": 1
          },
          {
            "date": "2019-02-04",
            "count": 1
          },
          {
            "date": "2019-02-08",
            "count": 1
          },
          {
            "date": "2019-02-24",
            "count": 1
          },
          {
            "date": "2019-03-22",
            "count": 1
          },
          {
            "date": "2019-03-28",
            "count": 1
          },
          {
            "date": "2019-04-16",
            "count": 1
          },
          {
            "date": "2019-04-17",
            "count": 1
          },
          {
            "date": "2019-05-08",
            "count": 1
          },
          {
            "date": "2019-05-22",
            "count": 1
          },
          {
            "date": "2019-06-02",
            "count": 2
          },
          {
            "date": "2019-07-03",
            "count": 1
          },
          {
            "date": "2019-07-05",
            "count": 1
          },
          {
            "date": "2019-08-28",
            "count": 1
          },
          {
            "date": "2019-09-19",
            "count": 1
          },
          {
            "date": "2019-10-11",
            "count": 1
          },
          {
            "date": "2019-12-03",
            "count": 1
          },
          {
            "date": "2019-12-12",
            "count": 1
          },
          {
            "date": "2020-01-10",
            "count": 1
          },
          {
            "date": "2020-01-12",
            "count": 1
          },
          {
            "date": "2020-01-14",
            "count": 1
          },
          {
            "date": "2020-01-31",
            "count": 1
          },
          {
            "date": "2020-02-04",
            "count": 1
          },
          {
            "date": "2020-02-13",
            "count": 1
          },
          {
            "date": "2020-04-14",
            "count": 1
          },
          {
            "date": "2020-04-16",
            "count": 1
          },
          {
            "date": "2020-04-28",
            "count": 1
          },
          {
            "date": "2020-04-29",
            "count": 1
          },
          {
            "date": "2020-04-30",
            "count": 2
          },
          {
            "date": "2020-05-12",
            "count": 1
          },
          {
            "date": "2020-05-14",
            "count": 1
          },
          {
            "date": "2020-06-29",
            "count": 1
          },
          {
            "date": "2020-07-16",
            "count": 1
          },
          {
            "date": "2020-08-10",
            "count": 1
          },
          {
            "date": "2020-09-08",
            "count": 1
          },
          {
            "date": "2020-10-08",
            "count": 1
          },
          {
            "date": "2020-12-18",
            "count": 1
          },
          {
            "date": "2021-02-22",
            "count": 1
          },
          {
            "date": "2021-03-01",
            "count": 1
          },
          {
            "date": "2021-04-29",
            "count": 1
          },
          {
            "date": "2021-05-05",
            "count": 2
          },
          {
            "date": "2021-05-10",
            "count": 1
          },
          {
            "date": "2021-05-13",
            "count": 1
          },
          {
            "date": "2021-05-25",
            "count": 1
          },
          {
            "date": "2021-05-26",
            "count": 1
          },
          {
            "date": "2021-06-07",
            "count": 1
          },
          {
            "date": "2021-06-24",
            "count": 1
          },
          {
            "date": "2021-06-30",
            "count": 1
          },
          {
            "date": "2021-07-05",
            "count": 1
          },
          {
            "date": "2021-10-06",
            "count": 1
          },
          {
            "date": "2021-10-15",
            "count": 1
          },
          {
            "date": "2022-01-07",
            "count": 1
          },
          {
            "date": "2022-01-14",
            "count": 1
          },
          {
            "date": "2022-01-17",
            "count": 1
          },
          {
            "date": "2022-01-18",
            "count": 1
          },
          {
            "date": "2022-01-30",
            "count": 1
          },
          {
            "date": "2022-02-18",
            "count": 1
          },
          {
            "date": "2022-03-11",
            "count": 1
          },
          {
            "date": "2022-03-15",
            "count": 1
          },
          {
            "date": "2022-03-31",
            "count": 1
          },
          {
            "date": "2022-04-25",
            "count": 1
          },
          {
            "date": "2022-04-28",
            "count": 1
          },
          {
            "date": "2022-05-29",
            "count": 1
          },
          {
            "date": "2022-06-09",
            "count": 1
          },
          {
            "date": "2022-06-22",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-10-19",
            "count": 1
          },
          {
            "date": "2022-10-21",
            "count": 1
          },
          {
            "date": "2022-11-19",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-12-30",
            "count": 1
          },
          {
            "date": "2023-01-13",
            "count": 1
          },
          {
            "date": "2023-03-02",
            "count": 1
          },
          {
            "date": "2023-03-10",
            "count": 1
          },
          {
            "date": "2023-04-07",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-05-17",
            "count": 1
          },
          {
            "date": "2023-05-29",
            "count": 1
          },
          {
            "date": "2023-07-05",
            "count": 1
          },
          {
            "date": "2023-07-25",
            "count": 2
          },
          {
            "date": "2023-07-28",
            "count": 1
          },
          {
            "date": "2023-08-05",
            "count": 1
          },
          {
            "date": "2023-10-18",
            "count": 1
          },
          {
            "date": "2023-10-20",
            "count": 1
          },
          {
            "date": "2023-10-22",
            "count": 1
          },
          {
            "date": "2023-11-04",
            "count": 1
          },
          {
            "date": "2023-12-04",
            "count": 1
          },
          {
            "date": "2024-01-08",
            "count": 1
          },
          {
            "date": "2024-03-23",
            "count": 1
          },
          {
            "date": "2024-06-13",
            "count": 1
          },
          {
            "date": "2024-07-19",
            "count": 1
          },
          {
            "date": "2024-07-31",
            "count": 1
          },
          {
            "date": "2024-08-21",
            "count": 1
          },
          {
            "date": "2024-08-29",
            "count": 1
          },
          {
            "date": "2024-10-01",
            "count": 1
          },
          {
            "date": "2024-10-03",
            "count": 1
          },
          {
            "date": "2024-11-16",
            "count": 1
          },
          {
            "date": "2024-12-13",
            "count": 1
          },
          {
            "date": "2025-05-15",
            "count": 1
          },
          {
            "date": "2025-06-02",
            "count": 1
          },
          {
            "date": "2025-06-06",
            "count": 1
          },
          {
            "date": "2025-06-08",
            "count": 1
          },
          {
            "date": "2025-06-25",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 1
          },
          {
            "date": "2025-07-07",
            "count": 1
          },
          {
            "date": "2025-07-16",
            "count": 2
          },
          {
            "date": "2025-08-12",
            "count": 1
          },
          {
            "date": "2025-09-08",
            "count": 1
          },
          {
            "date": "2025-09-11",
            "count": 1
          },
          {
            "date": "2025-10-29",
            "count": 1
          },
          {
            "date": "2025-12-18",
            "count": 2
          },
          {
            "date": "2026-02-09",
            "count": 1
          },
          {
            "date": "2026-04-03",
            "count": 1
          },
          {
            "date": "2026-04-04",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 1
          },
          {
            "date": "2026-05-02",
            "count": 1
          },
          {
            "date": "2026-07-04",
            "count": 2
          },
          {
            "date": "2026-07-11",
            "count": 1
          },
          {
            "date": "2026-07-15",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 146,
        "total_forks": 149
      },
      "star_history": null,
      "open_issues_and_prs": 78
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "example",
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "build.gradle",
        "examples/hello-msal-multiple-account/app/build.gradle",
        "examples/hello-msal-multiple-account/build.gradle",
        "examples/hello-msal-single-account/app/build.gradle",
        "examples/hello-msal-single-account/build.gradle",
        "msal/build.gradle",
        "msalautomationapp/build.gradle",
        "package-inspector/build.gradle",
        "pop-benchmarker/build.gradle",
        "testapps/testapp/build.gradle"
      ],
      "largest_source_bytes": 145542,
      "source_files_sampled": 367,
      "oversized_source_files": 4,
      "agent_instruction_files": [
        ".github/copilot-instructions.md"
      ],
      "agent_instruction_max_bytes": 47238
    },
    "dependencies": {
      "manifests": [
        "build.gradle",
        "msal/build.gradle",
        "msalautomationapp/build.gradle",
        "package-inspector/build.gradle",
        "pop-benchmarker/build.gradle"
      ],
      "advisories": {
        "error": "No resolved dependencies to assess",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "maven"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [],
        "collected": true,
        "truncated": false,
        "total_count": 0,
        "direct_count": 0,
        "indirect_count": 0
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 37,
        "merged_prs": 1366,
        "open_issues": 41,
        "closed_ratio": 0.953,
        "closed_issues": 832,
        "closed_unmerged_prs": 234
      },
      "bus_factor": 4,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "shahzaibj",
          "commits": 892,
          "avatar_url": "https://avatars.githubusercontent.com/u/37125644?v=4"
        },
        {
          "type": "User",
          "login": "fadidurah",
          "commits": 566,
          "avatar_url": "https://avatars.githubusercontent.com/u/88730756?v=4"
        },
        {
          "type": "User",
          "login": "rpdome",
          "commits": 365,
          "avatar_url": "https://avatars.githubusercontent.com/u/19558668?v=4"
        },
        {
          "type": "User",
          "login": "shoatman",
          "commits": 361,
          "avatar_url": "https://avatars.githubusercontent.com/u/8864677?v=4"
        },
        {
          "type": "User",
          "login": "weijjia",
          "commits": 242,
          "avatar_url": "https://avatars.githubusercontent.com/u/1166233?v=4"
        },
        {
          "type": "User",
          "login": "AdamBJohnsonx",
          "commits": 191,
          "avatar_url": "https://avatars.githubusercontent.com/u/63813613?v=4"
        },
        {
          "type": "User",
          "login": "heidijinxujia",
          "commits": 163,
          "avatar_url": "https://avatars.githubusercontent.com/u/16140683?v=4"
        },
        {
          "type": "User",
          "login": "iamgusain",
          "commits": 146,
          "avatar_url": "https://avatars.githubusercontent.com/u/75644120?v=4"
        },
        {
          "type": "User",
          "login": "iambmelt",
          "commits": 139,
          "avatar_url": "https://avatars.githubusercontent.com/u/990063?v=4"
        },
        {
          "type": "User",
          "login": "paulkagiri",
          "commits": 126,
          "avatar_url": "https://avatars.githubusercontent.com/u/4158695?v=4"
        }
      ],
      "contributors_sampled": 58,
      "top_contributor_share": 0.221
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "copilot-issue-response.yml",
        "label.yml",
        "validate-pr-ab-id.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 6,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 2,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 6 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "8d1f0552ced36459d70bfd6705862bf6d0f0af84",
        "ran_at": "2026-07-25T06:13:58Z",
        "aggregate_score": 5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-24T00:06:55Z",
      "oldest_open_prs": [
        {
          "number": 1614,
          "created_at": "2022-04-20T16:34:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1625,
          "created_at": "2022-05-22T16:38:44Z",
          "last_comment_at": "2022-05-22T16:48:20Z",
          "last_comment_author": "codecov-commenter"
        },
        {
          "number": 1641,
          "created_at": "2022-06-22T14:00:21Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1652,
          "created_at": "2022-07-13T13:08:16Z",
          "last_comment_at": "2022-08-14T22:06:48Z",
          "last_comment_author": "codecov-commenter"
        },
        {
          "number": 1684,
          "created_at": "2022-08-18T16:08:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1716,
          "created_at": "2022-10-27T17:13:43Z",
          "last_comment_at": "2023-01-06T00:53:05Z",
          "last_comment_author": "moumighosh"
        },
        {
          "number": 1745,
          "created_at": "2022-12-30T23:56:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1778,
          "created_at": "2023-03-11T07:21:50Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1800,
          "created_at": "2023-04-12T03:48:56Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1830,
          "created_at": "2023-05-29T02:45:09Z",
          "last_comment_at": "2025-04-04T04:36:14Z",
          "last_comment_author": "Goooler"
        },
        {
          "number": 1861,
          "created_at": "2023-07-25T02:17:50Z",
          "last_comment_at": "2024-09-25T03:34:17Z",
          "last_comment_author": "repstosw"
        },
        {
          "number": 1862,
          "created_at": "2023-07-25T07:59:45Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2035,
          "created_at": "2024-02-12T12:20:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2045,
          "created_at": "2024-02-23T17:57:45Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2051,
          "created_at": "2024-03-01T09:03:40Z",
          "last_comment_at": "2024-05-07T11:11:15Z",
          "last_comment_author": "Dickson-Mwendia"
        },
        {
          "number": 2066,
          "created_at": "2024-03-23T17:54:06Z",
          "last_comment_at": "2024-04-16T10:45:28Z",
          "last_comment_author": "SammyO"
        },
        {
          "number": 2075,
          "created_at": "2024-04-12T20:58:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2096,
          "created_at": "2024-05-08T14:51:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2102,
          "created_at": "2024-05-15T11:47:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2135,
          "created_at": "2024-07-01T15:43:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-24T00:06:54Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 1287,
          "created_at": "2021-01-26T03:57:41Z",
          "last_comment_at": "2026-02-24T23:59:03Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1751,
          "created_at": "2023-01-18T16:01:43Z",
          "last_comment_at": "2026-04-24T06:21:43Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1920,
          "created_at": "2023-10-12T14:17:48Z",
          "last_comment_at": "2026-02-25T00:18:09Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2053,
          "created_at": "2024-03-06T04:30:41Z",
          "last_comment_at": "2026-02-25T00:14:18Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2142,
          "created_at": "2024-07-15T19:56:01Z",
          "last_comment_at": "2026-02-25T05:00:11Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2146,
          "created_at": "2024-07-25T01:59:07Z",
          "last_comment_at": "2026-04-24T06:21:11Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2172,
          "created_at": "2024-09-05T07:25:09Z",
          "last_comment_at": "2026-02-25T00:09:14Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2175,
          "created_at": "2024-09-11T02:55:28Z",
          "last_comment_at": "2026-02-25T00:07:52Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2204,
          "created_at": "2024-10-16T18:52:13Z",
          "last_comment_at": "2026-02-25T00:06:17Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2215,
          "created_at": "2024-11-07T02:13:03Z",
          "last_comment_at": "2026-02-25T00:01:52Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2227,
          "created_at": "2024-12-13T09:08:13Z",
          "last_comment_at": "2026-02-25T00:00:44Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2232,
          "created_at": "2024-12-23T11:05:42Z",
          "last_comment_at": "2026-02-24T23:57:20Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2235,
          "created_at": "2025-01-03T05:45:37Z",
          "last_comment_at": "2026-02-24T23:55:01Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2237,
          "created_at": "2025-01-06T17:42:39Z",
          "last_comment_at": "2026-02-24T23:53:59Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2243,
          "created_at": "2025-01-10T14:25:52Z",
          "last_comment_at": "2026-02-24T23:52:43Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2257,
          "created_at": "2025-02-18T15:25:31Z",
          "last_comment_at": "2026-02-24T23:51:29Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2266,
          "created_at": "2025-03-17T17:42:32Z",
          "last_comment_at": "2026-02-24T20:15:58Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2289,
          "created_at": "2025-05-01T13:38:46Z",
          "last_comment_at": "2026-02-24T23:39:43Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2292,
          "created_at": "2025-05-07T23:02:27Z",
          "last_comment_at": "2026-02-24T20:14:00Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2295,
          "created_at": "2025-05-13T10:52:50Z",
          "last_comment_at": "2026-02-24T20:16:10Z",
          "last_comment_author": "github-actions"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/AzureAD/microsoft-authentication-library-for-android",
    "host": "github.com",
    "name": "microsoft-authentication-library-for-android",
    "owner": "AzureAD"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 76,
      "inputs": {
        "security": 50,
        "vitality": 97,
        "community": 60,
        "governance": 84,
        "engineering": 81
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 97,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 95,
            "inputs": {
              "commits_last_year": 109,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 45
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "45/52 weeks with commits",
                "points": 31.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 45
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "109 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 109
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v8.4.1",
              "releases_from_tags": false,
              "days_since_latest_release": 10,
              "mean_days_between_releases": 20.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 10 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~20.9 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 20.9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 1,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 1 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 60,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "forks": 149,
              "stars": 265,
              "watchers": 116,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "265 stars",
                "points": 39.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 265
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "149 forks",
                "points": 18.1,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 149
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "116 watchers",
                "points": 11.5,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 116
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 84,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "good",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "bus_factor": 4,
              "contributors_sampled": 58,
              "top_contributor_share": 0.221
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "4 contributor(s) cover half of all commits",
                "points": 43.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 22% of commits",
                "points": 17.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 22
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "58 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 58
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 6 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "merged_prs": 1366,
              "open_issues": 41,
              "closed_issues": 832,
              "issue_closed_ratio": 0.953,
              "closed_unmerged_prs": 234
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "95% of issues closed",
                "points": 44.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 95
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1366/1600 decided PRs merged",
                "points": 32.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1366,
                      "decided": 1600
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "followers": 794,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "AzureAD",
              "public_repos": 57,
              "account_age_days": 4980
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "794 followers of AzureAD",
                "points": 20.9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 794,
                      "login": "AzureAD"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "57 public repos, account ~13 yr old",
                "points": 24.8,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 57
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 81,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "msal",
                "android",
                "identity",
                "microsoft",
                "azure-active-directory"
              ],
              "has_wiki": true,
              "homepage": "http://aka.ms/aadv2",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "http://aka.ms/aadv2",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "5 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 50,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 6 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 69,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                ".github/copilot-instructions.md"
              ],
              "agent_instruction_max_bytes": 47238
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".github/copilot-instructions.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/copilot-instructions.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.36,
              "toolchain_manifests": [
                "build.gradle",
                "examples/hello-msal-multiple-account/app/build.gradle",
                "examples/hello-msal-multiple-account/build.gradle",
                "examples/hello-msal-single-account/app/build.gradle",
                "examples/hello-msal-single-account/build.gradle",
                "msal/build.gradle",
                "msalautomationapp/build.gradle",
                "package-inspector/build.gradle",
                "pop-benchmarker/build.gradle",
                "testapps/testapp/build.gradle"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "build.gradle, examples/hello-msal-multiple-account/app/build.gradle, examples/hello-msal-multiple-account/build.gradle (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "build.gradle, examples/hello-msal-multiple-account/app/build.gradle, examples/hello-msal-multiple-account/build.gradle"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Java (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Java"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "36 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 36,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Java",
              "largest_source_bytes": 145542,
              "source_files_sampled": 367,
              "oversized_source_files": 4
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Java (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Java"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "4/367 source files over 60KB",
                "points": 54.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 367,
                      "oversized": 4
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "example",
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "example, examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "example, examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T06:14:47.702985Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/AzureAD/microsoft-authentication-library-for-android.svg",
  "full_name": "AzureAD/microsoft-authentication-library-for-android",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadas.