---
title: Embed Git Information in Ruby Build Artifacts
description: >-
  Embed Git information in Ruby build artifacts for containers, serverless, and
  host deployments.
breadcrumbs: >-
  Docs > Source Code Integration > Service Mapping for Source Code Integration >
  Embed Git Information in Ruby Build Artifacts
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Embed Git Information in Ruby Build Artifacts

## Overview{% #overview %}

To embed Git information in your Ruby build artifacts, follow the instructions for your deployment model: Containers, Serverless, or Host.

## Prerequisites{% #prerequisites %}

- [Datadog Agent](https://docs.datadoghq.com/agent.md) v7.35.0 or later is required.
- The Ruby client library version 1.6.0 or later is required.

## Containers{% #containers %}

If you are using Docker containers, you have the following options: using Docker or configuring your application with the `DD_TAGS` environment variable.

{% collapsible-section %}
### Docker

You can embed git information in your Docker image using either build arguments with environment variables, or image labels.

###### Using build arguments and environment variables{% #using-build-arguments-and-environment-variables %}

1. Add the following lines to your application's Dockerfile:

   ```dockerfile
   ARG DD_GIT_REPOSITORY_URL
   ARG DD_GIT_COMMIT_SHA
   ENV DD_TAGS="git.repository_url:${DD_GIT_REPOSITORY_URL},git.commit.sha:${DD_GIT_COMMIT_SHA}"
   ```

1. Add the following arguments to your Docker build command:

   ```shell
   docker build . \
    -t my-application \
    --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
    --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
   ```

###### Using image labels{% #using-image-labels %}

This approach requires Docker, or containerd >= 1.5.6. It doesn't support containers running on AWS Fargate.

Datadog can extract source code information directly from your images' Docker labels. During build time, follow the [Open Containers standard](https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys) to add the git commit SHA and repository URL as Docker labels:

```shell
docker build . \
  -t my-application \
  --label org.opencontainers.image.revision=$(git rev-parse HEAD) \
  --label org.opencontainers.image.source=$(git config --get remote.origin.url)
```

{% /collapsible-section %}

{% collapsible-section %}
### `DD_TAGS` environment variable

Configure your application with the `DD_TAGS` environment variable:

```ruby
export DD_TAGS="git.commit.sha:<commitSha>,git.repository_url:<git-provider.example/me/my-repo>"
```

Replace `<commitSha>` with the commit SHA used to build your application. You can retrieve this by running `git rev-parse HEAD` at build time, and it needs to be passed into the runtime environment variables. Replace `<git-provider.example/me/my-repo>` with your repository URL.
{% /collapsible-section %}

## Serverless{% #serverless %}

If you are using Serverless, you have the following options depending on your serverless application's setup.

{% collapsible-section %}
### Datadog tooling

{% dl %}

{% dt %}
[Datadog CLI tool](https://www.npmjs.com/package/@datadog/datadog-ci)
{% /dt %}

{% dd %}
Use the `datadog-ci` client version 2.10.0 or later. You must run the CLI tool in the same directory as the code repository.
{% /dd %}

{% dt %}
[Datadog Serverless Plugin](https://docs.datadoghq.com/serverless/libraries_integrations/plugin.md)
{% /dt %}

{% dd %}
Use the plugin version 5.60.0 or later.
{% /dd %}

{% dt %}
[Datadog CDK Construct](https://github.com/DataDog/datadog-cdk-constructs)
{% /dt %}

{% dd %}
Use the `datadog-cdk-constructs` version 0.8.5 or later for AWS CDK v1. Use the `datadog-cdk-constructs` version 1.4.0 or later for AWS CDK v2.
{% /dd %}

{% /dl %}

{% /collapsible-section %}

{% collapsible-section %}
### `DD_TAGS` environment variable

Configure your application with the `DD_TAGS` environment variable:

```ruby
export DD_TAGS="git.commit.sha:<commitSha>,git.repository_url:<git-provider.example/me/my-repo>"
```

Replace `<commitSha>` with the commit SHA used to build your application. You can retrieve this by running `git rev-parse HEAD` at build time, and it needs to be passed into the runtime environment variables. Replace `<git-provider.example/me/my-repo>` with your repository URL.
{% /collapsible-section %}

## Host{% #host %}

If you are using a host, configure your application with the `DD_TAGS` environment variable.

{% collapsible-section %}
### `DD_TAGS` environment variable

Configure your application with the `DD_TAGS` environment variable:

```ruby
export DD_TAGS="git.commit.sha:<commitSha>,git.repository_url:<git-provider.example/me/my-repo>"
```

Replace `<commitSha>` with the commit SHA used to build your application. You can retrieve this by running `git rev-parse HEAD` at build time, and it needs to be passed into the runtime environment variables. Replace `<git-provider.example/me/my-repo>` with your repository URL.
{% /collapsible-section %}
