Project: docto-crypt · Branch: main · Mode: ` · **Model:**claude-haiku-4-5-20251001`
Stats: 1 user messages, 29 tool calls, tools used: Bash, Glob, Read, Grep.
Conversation
Turn 1 — User
Explore the repository at /Users/USER/workspace/doctolib/docto-crypt. I need to understand:
- All workflow files under .github/workflows/ — read each one fully, especially publish-pnpm.yml and publish.yml
- Any existing Datadog integration, scripts, or configuration (look for datadog, DD_, statsd, metrics, dogstatsd in all files including scripts/, .github/)
- Any benchmark or metrics reporting patterns already in use
Also search the broader workspace for any Datadog GitHub Actions usage patterns: - Check /Users/USER/workspace/doctolib/actions/ if it exists — look for any datadog action or step - Look for files matching datadog or metrics in both repos
Return full content of all relevant files found.
Turn 1 — Assistant
I'll conduct a comprehensive exploration of the docto-crypt repository and the broader workspace to understand the workflow structure and any existing Datadog/metrics integrations.
Tools used:
Bash:find /Users/USER/workspace/doctolib/docto-crypt/.github/workflows -type f -name "*.yml" -o -name "*.yaml" | head -20
Tools used:
Glob:.github/workflows/*.{yml,yaml}in/Users/USER/workspace/doctolib/docto-crypt
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/publish.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_auto_request_claude.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/publish-pnpm.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_check_pr_compliance.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_actionlint.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/java-test.yml
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_check_pr_compliance.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/java-test.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_auto_request_claude.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_actionlint.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/publish-pnpm.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/publish.yml
Tools used:
Bash:ls -la /Users/USER/workspace/doctolib/ | head -20
Tool results:
→ result (ok): drwxr-xr-x clertonra staff 800 B Mon Mar 9 14:06:05 2026 . drwxr-xr-x clertonra staff 320 B Mon Feb 23 14:14:47 2026 .. drwxr-xr-x clertonra staff 96 B Thu Mar 5 11:03:07 2026 .claude .rw-r--r-- clertonra staff 16 KB Wed Mar 4 13:03:52 2026 .DS_Store drwxr-xr-x clertonra staff 3.8 KB Mon Feb 16 10:58:10 2026 actions drwxr-xr-x clertonra staff 3.3 KB Mon Feb 23 10:37:43 2026 billeo-engine drwxr-xr-x clertonra staff 256 B Mon Feb 16 10:58:11 2026 c3-rest-api-guidelines drwxr-xr-x clertonr …(truncated, 919 more chars)
Good! Now let me read all the workflow files and search for Datadog/metrics configurations:
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/.github/workflows/publish.yml
Tool results:
→ result (ok): 1→on: 2→ push: 3→ branches: 4→ - main 5→ workflow_dispatch: 6→ inputs: 7→ use-pnpm: 8→ description: 'Use pnpm instead of npm' 9→ required: false 10→ default: false 11→ type: boolean 12→ 13→name: Publish Package 14→ 15→permissions: 16→ actions: read 17→ contents: write 18→ id-token: write 19→ packages: write 20→ pull-requests: write 21→ 22→jobs: 23→ s …(truncated, 3929 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/.github/workflows/publish-pnpm.yml
Tool results:
→ result (ok): 1→on: 2→ workflow_dispatch: 3→ inputs: 4→ dry-run: 5→ description: "Run in dry-run mode (no actual publish)" 6→ required: false 7→ default: true 8→ type: boolean 9→ 10→name: Publish Package (pnpm) 11→ 12→permissions: 13→ actions: read 14→ contents: write 15→ id-token: write 16→ packages: write 17→ pull-requests: write 18→ 19→jobs: 20→ publish-pnpm: 21→ runs-on: pr …(truncated, 9551 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/.github/workflows/java-test.yml
Tool results:
→ result (ok): 1→name: Java tests 2→ 3→on: 4→ pull_request: 5→ merge_group: 6→ push: 7→ branches: 8→ - main 9→ 10→env: 11→ MAVEN_ARGS: '-B --no-transfer-progress' 12→ 13→permissions: 14→ contents: read 15→ id-token: write 16→ 17→jobs: 18→ test: 19→ name: Java tests 20→ runs-on: prod-linux-s 21→ steps: 22→ - name: Checkout 23→ uses: doctolib/actions/checkout@main 24→ wit …(truncated, 1148 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_auto_request_claude.yml
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_actionlint.yml
Tool results:
→ result (ok): 1→# DON'T MODIFY THIS WORKFLOW FILE DIRECTLY 2→# 3→# This workflow is enforced as-code, and should not be modified manually. 4→# 5→# It permits to request Claude from a Pull Request or an issue. 6→# 7→# See https://doctolib.atlassian.net/wiki/x/xYKLpQ for more details. 8→# 9→ 10→name: (Org) (Auto) Request Claude 11→run-name: '${{ github.event.comment.body || github.event.issue.title }}' 12→ 13→on: 14→ issue_comment: 15→ types: [ …(truncated, 907 more chars)
Tool results:
→ result (ok): 1→# DON'T MODIFY THIS WORKFLOW FILE DIRECTLY 2→# 3→# This workflow is enforced as-code, and should not be modified manually. 4→# 5→# It permits to lint Github Actions workflows. 6→# 7→# See https://doctolib.atlassian.net/wiki/x/KICVeQ for more details. 8→# 9→ 10→name: '(Org) (CI) Run actionlint' 11→run-name: '${{ github.event.pull_request.title }}' 12→ 13→on: 14→ pull_request: 15→ branches: [master, main, staging] 16→ typ …(truncated, 2904 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_check_pr_compliance.yml
Tool results:
→ result (ok): 1→# DON'T MODIFY THIS WORKFLOW FILE DIRECTLY 2→# 3→# This workflow 4→# - checks if the PR title is compliant 5→# (cf. https://doctolib.atlassian.net/wiki/spaces/EE/pages/1793131314/How+to+have+a+good+PR+title) 6→# - is force implemented in specific repositories (tier0 repository) of the organization with Terraform 7→# - is mandatory to merge in main branch of your repo because of 8→# https://github.com/doctolib/kube/blob/master/envs/tooling/terraform/05_github/ …(truncated, 1298 more chars)
Now let me search for any Datadog/metrics configurations in the repository and check the actions directory:
Tools used:
Bash:grep -r "datadog\|DD_\|statsd\|dogstatsd\|metrics" /Users/USER/workspace/doctolib/docto-crypt --include="*.yml" --include="*.yaml" --include="*.sh" --include="*.json" --include="*.js" --include=" …(truncated, 45 more chars)
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_actionlint.yml: DD_GITHUB_JOB_NAME: Run actionlint /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_ci_actionlint.yml: DD_GITHUB_JOB_NAME: Run actionlint preview
Tools used:
Bash:ls -la /Users/USER/workspace/doctolib/actions/ 2>/dev/null | head -20
Tools used:
Grep:datadog|DD_|statsd|dogstatsd|metricsin/Users/USER/workspace/doctolib/actions
Tool results:
→ result (ok): Found 59 files /Users/USER/workspace/doctolib/actions/release-please-config.json /Users/USER/workspace/doctolib/actions/frontend-metrics/run/action.yml /Users/USER/workspace/doctolib/actions/data-product-validation/README.md /Users/USER/workspace/doctolib/actions/claude-pr-review/action.yml /Users/USER/workspace/doctolib/actions/claude-pr-review/CHANGELOG.md /Users/USER/workspace/doctolib/actions/.github/workflows/tfe-modules-validate.yml /Users/USER/workspace/doctolib/actions/.release-please-ma …(truncated, 3951 more chars)
Tool results:
→ result (ok): drwxr-xr-x clertonra staff 3.8 KB Mon Feb 16 10:58:10 2026 . drwxr-xr-x clertonra staff 800 B Mon Mar 9 14:06:05 2026 .. drwxr-xr-x clertonra staff 96 B Mon Sep 1 15:17:42 2025 .claude .rw-r--r-- clertonra staff 147 B Mon Jan 19 17:13:28 2026 .editorconfig drwxr-xr-x clertonra staff 480 B Mon Feb 16 10:58:23 2026 .git .rw-r--r-- clertonra staff 65 B Mon Sep 1 15:17:42 2025 .gitattributes drwxr-xr-x clertonra staff 160 B Mon Sep 1 15:17:42 2025 .github .rw-r--r-- clertonra staff 97 B …(truncated, 926 more chars)
Great! I found several Datadog-related files in the actions directory. Let me read the key ones:
Tools used:
Read:/Users/USER/workspace/doctolib/actions/setup-datadog-test-visibility/action.yaml
Tool results:
→ result (ok): 1→name: 'Setup Datadog Test Visibility' 2→description: 'Setup Datadog Test Visibility' 3→inputs: 4→ api-key: 5→ description: 'Datadog API Key' 6→ required: true 7→ languages: 8→ description: 'Languages to instrument' 9→ required: true 10→ service: 11→ description: 'Service name' 12→ default: ${{ github.repository }} 13→ required: false 14→runs: 15→ using: 'composite' 16→ steps: 17→ - name: Config …(truncated, 638 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/actions/setup-datadog-test-visibility/README.md
Tool results:
→ result (ok): 1→# Setup Datadog Test Visibility 2→ 3→Setup Datadog Test Visibility for your CI/CD workflows to gain insights into test performance, track test execution trends, identify flaky tests or even leverage tests selection. 4→ 5→## Quick Start 6→ 7→```yaml 8→- name: Setup Datadog Test Visibility 9→ uses: doctolib/actions/setup-datadog-test-visibility@6de1f2f2ddc6185268ea41559c6d1c644b945913 # setup-datadog-test-visibility-v0.1.0 10→ with: 11→ api-ke …(truncated, 4230 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/actions/frontend-metrics/run/action.yml
Tool results:
→ result (ok): 1→name: "Run frontend-metrics" 2→description: "Run the frontend-metrics engine against a project" 3→author: "Doctolib" 4→ 5→inputs: 6→ working-directory: 7→ description: "The current working directory to run the frontend-metrics engine in" 8→ required: false 9→ default: "." 10→ 11→runs: 12→ using: "composite" 13→ steps: 14→ - name: Setup Node 15→ uses: doctolib/actions/setup-node@4f01ed3ee207115cd1dffee63da5a1b7f …(truncated, 2972 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/actions/telemetry/action.yml
Tool results:
→ result (ok): 1→name: "Telemetry" 2→description: "Github Actions Telemetry via Datadog CI Visibility" 3→author: "Doctolib" 4→branding: 5→ icon: "bar-chart-2" 6→ color: "purple" 7→inputs: 8→ install: 9→ description: "Install Datadog CI" 10→ default: "false" 11→ dd_api_key: 12→ description: "Datadog API Key" 13→ required: true 14→ dd_tags: 15→ description: "Datadog Tags" 16→ required: true 17→runs: 18→ using: "co …(truncated, 945 more chars)
Now let me check for additional frontend-metrics and telemetry related files, and see if there are any other metrics patterns:
Tools used:
Read:/Users/USER/workspace/doctolib/actions/frontend-metrics/README.md
Tool results:
→ result (ok): 1→# frontend-metrics 2→ 3→This is a set of actions that makes it easy to setup frontend-metrics checks on your CI. 4→This includes: 5→- run 6→- pr-comment 7→- save-baseline 8→ 9→ 10→## Reusable Workflow 11→ 12→These actions can be used separately depending on your workflow needs, but the recommended way is to use this [reusable workflow](../.github/workflows/rw-frontend-metrics.ym …(truncated, 2682 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/actions/telemetry/README.md
Tool results:
→ result (ok): 1→# actions/telemetry
2→
3→## About
4→
5→Only use this action on self-hosted runners, or set install to "true"
6→
7→Tag pipelines ans jobs on Datadog CI.
8→
9→## Usage
10→
11→This action sends telemetry data to Datadog CI.
12→You will need to make sure your env contains the following variables:
13→
14→- DD_API_KEY: Your Datadog API key
15→- DD_TAGS: A comma separated list of tags to attach to the telemetry data
16→- `D
…(truncated, 2364 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/actions/.github/workflows/test_setup-datadog-test-visibility.yml
Tool results:
→ result (ok): 1→name: 'Test Action: setup-datadog-test-visibility' 2→on: 3→ pull_request: 4→ branches: 5→ - main 6→ paths: 7→ - 'setup-datadog-test-visibility/**' 8→ - '.github/workflows/test_setup-datadog-test-visibility.yml' 9→ 10→permissions: 11→ id-token: write 12→ contents: read 13→ 14→jobs: 15→ test: 16→ concurrency: 17→ group: ${{ github.workflow }}-${{ github.ref }} 18→ cancel-in-progress: …(truncated, 1172 more chars)
Let me check if there are any scripts or additional configuration files in docto-crypt that contain metrics:
Tools used:
Bash:find /Users/USER/workspace/doctolib/docto-crypt -type f \( -name "*.sh" -o -name "*.json" -o -name "*.yml" -o -name "*.yaml" \) | head -30
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/docto-crypt/pnpm-lock.yaml /Users/USER/workspace/doctolib/docto-crypt/renovate.json /Users/USER/workspace/doctolib/docto-crypt/.claude/settings.local.json /Users/USER/workspace/doctolib/docto-crypt/package-lock.json /Users/USER/workspace/doctolib/docto-crypt/package.json /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/publish.yml /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/org_auto_request_claude.yml /Users/USER/workspace/doctolib/doct …(truncated, 292 more chars)
Tools used:
Bash:ls -la /Users/USER/workspace/doctolib/docto-crypt/ 2>/dev/null | grep -v "^\."
Tool results:
→ result (ok): drwxr-xr-x clertonra staff 736 B Mon Mar 9 13:50:49 2026 . drwxr-xr-x clertonra staff 800 B Mon Mar 9 14:06:05 2026 .. drwxr-xr-x clertonra staff 96 B Mon Mar 9 14:14:56 2026 .claude drwxr-xr-x clertonra staff 672 B Mon Mar 9 14:03:39 2026 .git drwxr-xr-x clertonra staff 96 B Thu Aug 28 15:02:30 2025 .github drwxr-xr-x clertonra staff 512 B Thu Oct 23 15:55:29 2025 .idea drwxr-xr-x clertonra staff 96 B Thu Aug 28 15:02:30 2025 .mvn drwxr-xr-x clertonra staff 160 B Mon Sep 1 16:55 …(truncated, 78 more chars)
Let me check the pom.xml to understand the project structure better:
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/pom.xml
Tool results:
→ result (ok): 1→ 2→<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3→ <modelVersion>4.0.0</modelVersion> 4→ 5→ <groupId>com.doctolib</groupId> 6→ <artifactId>docto-crypt</artifactId> 7→ <version>${revision}</version> 8→ <packaging>jar</packaging> 9→ 10→ <name>docto-cry …(truncated, 11745 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/docto-crypt/package.json
Tool results:
→ result (ok): 1→{ 2→ "name": "@doctolib/docto-crypt", 3→ "version": "0.10.0", 4→ "description": "A JVM crypto library by Doctolib with support for curves like brainpoolP256r1", 5→ "main": "target/docto-crypt-*.jar", 6→ "scripts": { 7→ "build": "./mvnw clean package -Drevision=$npm_package_version", 8→ "maven:install": "./mvnw install -Drevision=$npm_package_version -Dmaven.build.cache.enabled=false", 9→ "test": "./mvnw test", 10→ "clean": "./mvnw cl …(truncated, 1080 more chars)
Perfect! Now let me check if there are any other Datadog-related actions or patterns in the broader actions directory by looking at a few more key files:
Tools used:
Bash:find /Users/USER/workspace/doctolib/actions -type f -name "*datadog*" -o -name "*telemetry*" 2>/dev/null
Tools used:
Read:/Users/USER/workspace/doctolib/actions/.github/workflows/test_telemetry.yml
Tool results:
→ result (ok): 1→name: "(Test) telemetry" 2→on: 3→ pull_request: 4→ branches: 5→ - main 6→ paths: 7→ - "telemetry/**" 8→ - ".github/workflows/test_telemetry.yml" 9→ 10→permissions: 11→ id-token: write 12→ contents: read 13→ 14→env: 15→ DD_GIT_COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.event.after || github.sha }} 16→ DD_GIT_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }} 17→ …(truncated, 1086 more chars)
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/actions/.github/workflows/test_telemetry.yml /Users/USER/workspace/doctolib/actions/.github/workflows/test_setup-datadog-test-visibility.yml /Users/USER/workspace/doctolib/actions/telemetry /Users/USER/workspace/doctolib/actions/.git/logs/refs/remotes/origin/release-please--branches--main--components--telemetry /Users/USER/workspace/doctolib/actions/.git/logs/refs/remotes/origin/datadog-ci /Users/USER/workspace/doctolib/actions/.git/refs/tags/setup-datadog-test-vis …(truncated, 369 more chars)
Excellent! Now let me check the frontend-metrics related action files as well:
Tools used:
Read:/Users/USER/workspace/doctolib/actions/frontend-metrics/pr-comment/action.yml
Tool results:
→ result (ok): 1→name: "Frontend Metrics PR Comment" 2→description: | 3→ Generate a Pull Request comment containing the frontend-metrics report. 4→ This works by: 5→ - Downloading the last successful run of the workflow on the default branch (main or master) 6→ - Running the frontend-metrics on the current (PR) branch 7→ - Comparing the current report with the baseline report 8→ - Generating a markdown comment with the comparison results 9→ - Posting the comment t …(truncated, 4141 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/actions/frontend-metrics/save-baseline/action.yml
Tools used:
Read:/Users/USER/workspace/doctolib/actions/frontend-metrics/run/README.md
Tool results:
→ result (ok): 1→name: "Save Frontend Metrics Baseline" 2→description: | 3→ Save baseline frontend-metrics report as GitHub artifact. 4→ This should be used in a workflow that runs on the default branch (main or master) to save the baseline report, 5→ so that it can be used to compare the Pull Requests against the baseline. 6→author: "Doctolib" 7→ 8→inputs: 9→ working-directory: 10→ description: "The current working directory to run the frontend-metrics engine …(truncated, 1518 more chars)
Tool results:
→ result (ok): 1→# actions/frontend-metrics/run
2→
3→## Description
4→
5→
6→
7→Run the frontend-metrics engine against a project
8→
9→
10→
11→## Usage
12→
13→yaml
14→uses: doctolib/actions/frontend-metrics/run@main
15→with:
16→ working-directory: "."
17→
18→
19→## Inputs
20→
21→<!-- AUTO-DOC-INPUT:START - Do not
…(truncated, 1000 more chars)
Perfect! Now let me compile a comprehensive summary of all findings. Let me do a final search to check for any other relevant patterns:
Tools used:
Bash:grep -r "DD_GITHUB_JOB_NAME\|DATADOG_CI_JOB_NAME" /Users/USER/workspace/doctolib --include="*.yml" --include="*.yaml" 2>/dev/null | head -20
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/doctolib/.github/workflows/rw_frontend_linting.yml: DD_GITHUB_JOB_NAME: Frontend linting / Frontend linting /Users/USER/workspace/doctolib/doctolib/.github/workflows/rw_frontend_linting.yml: job_name: ${{ env.DD_GITHUB_JOB_NAME }} /Users/USER/workspace/doctolib/doctolib/.github/workflows/rw_frontend_linting.yml: job_name: ${{ env.DD_GITHUB_JOB_NAME }} /Users/USER/workspace/doctolib/doctolib/.github/workflows/fhir_frontend_test.yml: DD_GI …(truncated, 2239 more chars)
Perfect! Now I have all the information needed. Let me compile a comprehensive report.
Comprehensive Exploration Report: docto-crypt Repository & Datadog Integration
I've completed a thorough exploration of the docto-crypt repository and the broader Doctolib workspace to understand workflow structure and existing Datadog/metrics integrations. Here are my findings:
1. DOCTO-CRYPT WORKFLOW FILES
All workflow files are located at /Users/USER/workspace/doctolib/docto-crypt/.github/workflows/
publish.yml (Full Content Above)
- Main publish workflow triggered on
pushtomainand manual dispatch - Key Features:
- Setup job determines package manager (npm vs pnpm) from PR labels or input
- Separate publish job with Maven build, tests, Node.js setup
- Publishes to CodeArtifact
- No Datadog/metrics integration yet
- Timeout: 15 minutes
publish-pnpm.yml (Full Content Above) - INCLUDES METRICS PATTERNS
- Triggered via
workflow_dispatchwith dry-run option - Key Features:
- Has performance metrics tracking (build time, test time, Node.js setup time, publish time)
- Uses step IDs to capture timing data:
steps.maven-build.outputs.build-time,steps.maven-test.outputs.test-time, etc. - Generates markdown performance summary in
$GITHUB_STEP_SUMMARY - Includes comparative job
publish-npm-comparisonto benchmark npm vs pnpm - Pattern to follow: Uses timestamp capture and
GITHUB_OUTPUTto track metrics - No Datadog integration - metrics only appear in step summary
java-test.yml (Full Content Above)
- Runs on PR, merge_group, and push to main
- Executes spotless formatting check, identifies changed files, runs Maven tests
- No metrics or Datadog integration
org_auto_request_claude.yml
- Enforced org-wide workflow (do not modify directly)
- Triggers Claude on PR/issue comments containing
@claude - Uses reusable workflow from doctolib/actions
- No metrics or Datadog integration
org_ci_actionlint.yml (DATADOG INTEGRATION FOUND)
- Lints GitHub Actions workflows
- DATADOG INTEGRATION: ```yaml env: DD_GITHUB_JOB_NAME: Run actionlint
```yaml
env:
DD_GITHUB_JOB_NAME: Run actionlint preview
- Sets environment variable for Datadog CI pipeline tagging
- No custom metrics reporting
org_ci_check_pr_compliance.yml
- Enforced org-wide workflow (checks PR title compliance)
- Uses doctolib/actions/check-pr-title action
- No Datadog or metrics integration
2. EXISTING DATADOG INTEGRATIONS IN DOCTOLIB ECOSYSTEM
Found in /Users/USER/workspace/doctolib/actions/:
A. setup-datadog-test-visibility
Location: /Users/USER/workspace/doctolib/actions/setup-datadog-test-visibility/
action.yaml:
name: 'Setup Datadog Test Visibility'
inputs:
api-key: (required) Datadog API Key
languages: (required) Languages to instrument (java, js, etc.)
service: (optional, default: github.repository)
# Wraps: datadog/test-visibility-github-action@fa5d4c02a5f2329cf2c62a70fd8ec532317af1c9 (v2)
README.md includes:
- Instrumentation for Java and JS test frameworks
- Automatic test execution data collection
- Test trend tracking, flaky test detection, test selection
- Uses environment variables: DD_TRACE_PACKAGE, DD_TRACE_ESM_IMPORT for JS instrumentation
- Example usage with load-secrets action to retrieve VAULT_SECRET_DATADOG_API_KEY
Test workflow: /Users/USER/workspace/doctolib/actions/.github/workflows/test_setup-datadog-test-visibility.yml
- Loads secrets from Vault
- Tests with languages: 'js'
- Verifies DD_SERVICE environment variable is set
B. telemetry
Location: /Users/USER/workspace/doctolib/actions/telemetry/
action.yml:
name: "Telemetry"
description: "Github Actions Telemetry via Datadog CI Visibility"
inputs:
install: (default: false) Install Datadog CI binary
dd_api_key: (required) Datadog API Key
dd_tags: (required) Datadog Tags (comma-separated)
# Steps:
# 1. Downloads datadog-ci binary from GitHub releases (if install=true)
# 2. Runs: datadog-ci tag --level pipeline
# 3. Runs: datadog-ci tag --level job
#
# Environment variables:
# DATADOG_API_KEY: {{ inputs.dd_api_key }}
# DD_TAGS: {{ inputs.dd_tags }}
# DD_ENV: "ci"
README.md shows:
- For use on self-hosted runners (or set install=true for managed runners)
- Tags pipelines and jobs in Datadog CI
- Supports optional: DATADOG_CI_JOB_NAME, DD_SERVICE, DD_ENV, and other Datadog CI env vars
Test workflow: /Users/USER/workspace/doctolib/actions/.github/workflows/test_telemetry.yml
env:
DD_GIT_COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.event.after || github.sha }}
DD_GIT_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }}
DD_SERVICE: actions
DD_TAGS: "team:ee-foo"
steps:
- uses: ./telemetry
with:
dd_api_key: ${{ env.DATADOG_API_KEY }}
dd_tags: "${{ env.DD_TAGS }}"
C. frontend-metrics
Location: /Users/USER/workspace/doctolib/actions/frontend-metrics/
Three sub-actions:
1. run/action.yml - Executes frontend-metrics engine
- Installs @doctolib/frontend-metrics package globally
- Generates .fqm/report.score.json report
- Computes safe Node.js memory allocation
- Outputs performance analysis (no direct Datadog integration)
2. pr-comment/action.yml - Generates PR comparison comments
- Downloads baseline report from last successful main branch run
- Compares baseline vs. current PR metrics
- Generates markdown report
- Posts comment to PR using maintain-one-comment action
- Uses: npx @doctolib/frontend-metrics report with --changed-files flag
3. save-baseline/action.yml - Saves baseline to artifact - Renames current report to baseline - Uploads as GitHub artifact for future PR comparisons
Reusable Workflow: .github/workflows/rw-frontend-metrics.yml
- On PR: Runs metrics + posts PR comment
- On main: Runs metrics + saves baseline artifact
3. DD_GITHUB_JOB_NAME PATTERN IN DOCTOLIB WORKFLOWS
Found extensive usage in /Users/USER/workspace/doctolib/doctolib/.github/workflows/:
env:
DD_GITHUB_JOB_NAME: "Human-readable job name"
This environment variable is used across many workflows to provide human-readable names for Datadog CI tagging. Examples:
- DD_GITHUB_JOB_NAME: Frontend linting / Frontend linting
- DD_GITHUB_JOB_NAME: Run FHIR profile validation tests for frontend mappers
- DD_GITHUB_JOB_NAME: Docker build / Docker build
- DD_GITHUB_JOB_NAME: Contract tests / Contract tests
4. DOCTO-CRYPT PROJECT STRUCTURE
Type: Kotlin/Java cryptographic library with NPM wrapper
Key Files:
- /Users/USER/workspace/doctolib/docto-crypt/pom.xml - Maven configuration
- /Users/USER/workspace/doctolib/docto-crypt/package.json - NPM package metadata
- Version: 0.10.0
- Main class: com.doctolib.doctocrypt.DoctoCryptApplication
- Package manager: Dual (npm + pnpm via Maven build)
Build Chain:
1. Maven builds Kotlin → JAR with all dependencies (maven-shade-plugin)
2. JAR included in npm package as target/docto-crypt-*.jar
3. Tests: Maven Surefire Plugin with JUnit 5 + Mockito
5. SUMMARY: WHAT'S ALREADY IN PLACE
| Component | Status | Location |
|---|---|---|
| Datadog Test Visibility | Available | actions/setup-datadog-test-visibility/ |
| Datadog CI Telemetry | Available | actions/telemetry/ |
| Frontend Metrics | Available | actions/frontend-metrics/ |
| Datadog in docto-crypt | Minimal | Only DD_GITHUB_JOB_NAME in org_ci_actionlint.yml |
| Custom metrics in docto-crypt | Yes, but local only | publish-pnpm.yml tracks build/test/setup times in GITHUB_STEP_SUMMARY |
| Datadog API integration | Not in docto-crypt | Available via actions, not currently used |
KEY FILES TO REFEREN
…(truncated, 849 more chars)