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

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions