Skip to content

Docker image lingodotdev/ci-action missing git, breaks npx lingo.dev ci outside GitHub runners #2074

@louisguitton

Description

@louisguitton

Bug

Running lingo.dev ci inside the official lingodotdev/ci-action Docker image fails immediately:

/bin/sh: git: not found
Error: Command failed: git config --global safe.directory /builds/...
    at InBranchFlow.configureGit (.../cli.mjs:14044:5)
    at InBranchFlow.preRun (.../cli.mjs:13978:30)

Root cause

The root Dockerfile is FROM node:20.12.2-alpine with no additional package install. Alpine's Node image does not ship git.

InBranchFlow.configureGit (packages/cli/src/cli/cmd/ci/flows/in-branch.ts:100) unconditionally runs git config --global safe.directory … via execSync as its first step, so any ci invocation of this image fails at preRun.

This code has required git since the original feat: ci cmd commit (77633531, May 2025). The GitHub composite action path is unaffected because it runs on a runner that already has git. The Docker image path (e.g. GitLab CI using image: lingodotdev/ci-action:latest) is broken.

Reproduction

GitLab CI:

translate:
  image:
    name: lingodotdev/ci-action:latest
    entrypoint: ['']
  script:
    - npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"

Fails with the error above.

Proposed fix

One-line addition to Dockerfile:

FROM node:20.12.2-alpine

RUN apk add --no-cache git

ENTRYPOINT [...]

Happy to submit the PR if assigned.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions