Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copilot Code Review Instructions

## Security — PII and Secrets

Flag any logging statements (`log::info!`, `log::debug!`, `log::warn!`, `log::error!`,
`tracing::info!`, `tracing::debug!`, `tracing::warn!`, `tracing::error!`, or unqualified
`info!`, `debug!`, `warn!`, `error!` macros (e.g., via `use tracing::{info, debug, warn, error}`))
that may log:
- HTTP request/response headers (Authorization, Cookie, X-API-Key, or similar)
- HTTP request/response bodies or raw payloads
- Any PII fields (e.g., email, name, user_id, ip_address, phone, ssn, date_of_birth)
- API keys, tokens, secrets, or credentials
- Structs or types that contain any of the above fields
- `SendData` values or any variable that contains a `SendData` object (e.g.,
`traces_with_tags` or similar variables built via `.with_api_key(...).build()`),
since these embed the Datadog API key

Suggest redacting or omitting the sensitive field rather than logging it.

## Security — Unsafe Rust

Flag new `unsafe` blocks and explain what invariant the author must uphold to make the
block safe. If there is a safe alternative, suggest it.

## Security — Error Handling

Flag cases where errors are silently swallowed (empty `catch`, `.ok()` without
handling, `let _ = result`) or where operations like `.unwrap()`/`.expect()` may panic,
in code paths that handle external input or network responses.
22 changes: 22 additions & 0 deletions .github/workflows/build-datadog-serverless-compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,25 @@ jobs:
name: windows-amd64
path: target/release/datadog-serverless-compat.exe
retention-days: 3
- if: ${{ inputs.runner == 'windows-2022' }}
shell: bash
run: |
rustup target add i686-pc-windows-msvc
cargo build --release -p datadog-serverless-compat \
--target i686-pc-windows-msvc \
--features windows-pipes
- if: ${{ inputs.runner == 'windows-2022' }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
with:
name: windows-ia32
path: target/i686-pc-windows-msvc/release/datadog-serverless-compat.exe
retention-days: 3
- if: ${{ inputs.runner == 'macos-14' }}
shell: bash
run: cargo build --release -p datadog-serverless-compat
- if: ${{ inputs.runner == 'macos-14' }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
with:
name: darwin-arm64
path: target/release/datadog-serverless-compat
retention-days: 3
22 changes: 21 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
strategy:
fail-fast: false
matrix:
runner: [ubuntu-24.04, ubuntu-24.04-arm, windows-2022]
runner: [ubuntu-24.04, ubuntu-24.04-arm, windows-2022, macos-14]
uses: ./.github/workflows/build-datadog-serverless-compat.yml
with:
runner: ${{ matrix.runner }}
Expand Down Expand Up @@ -56,6 +56,16 @@ jobs:
name: windows-amd64
path: target/windows-amd64
- run: upx target/windows-amd64/datadog-serverless-compat.exe --lzma
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # 4.3.0
with:
name: windows-ia32
path: target/windows-ia32
- run: upx target/windows-ia32/datadog-serverless-compat.exe --lzma
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # 4.3.0
with:
name: darwin-arm64
path: target/darwin-arm64
- run: chmod +x target/darwin-arm64/datadog-serverless-compat
- name: Determine version
id: determine-version
env:
Expand Down Expand Up @@ -85,6 +95,14 @@ jobs:
mkdir -p npm/datadog-serverless-compat-win32-x64/bin
cp target/windows-amd64/datadog-serverless-compat.exe npm/datadog-serverless-compat-win32-x64/bin/
npm --prefix npm/datadog-serverless-compat-win32-x64 pkg set version="$VERSION"

mkdir -p npm/datadog-serverless-compat-win32-ia32/bin
cp target/windows-ia32/datadog-serverless-compat.exe npm/datadog-serverless-compat-win32-ia32/bin/
npm --prefix npm/datadog-serverless-compat-win32-ia32 pkg set version="$VERSION"

mkdir -p npm/datadog-serverless-compat-darwin-arm64/bin
cp target/darwin-arm64/datadog-serverless-compat npm/datadog-serverless-compat-darwin-arm64/bin/
npm --prefix npm/datadog-serverless-compat-darwin-arm64 pkg set version="$VERSION"
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
with:
name: npm-packages
Expand All @@ -110,3 +128,5 @@ jobs:
npm publish ./npm/datadog-serverless-compat-linux-x64 --provenance --access public
npm publish ./npm/datadog-serverless-compat-linux-arm64 --provenance --access public
npm publish ./npm/datadog-serverless-compat-win32-x64 --provenance --access public
npm publish ./npm/datadog-serverless-compat-win32-ia32 --provenance --access public
npm publish ./npm/datadog-serverless-compat-darwin-arm64 --provenance --access public
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
/target
/.idea
/.worktrees
/CLAUDE.md
/AGENTS.md

Loading
Loading