dd-trace
Version:
Datadog APM tracing client for JavaScript
73 lines (64 loc) • 1.95 kB
JavaScript
const {
GIT_COMMIT_SHA,
GIT_BRANCH,
GIT_REPOSITORY_URL,
GIT_TAG,
GIT_COMMIT_MESSAGE,
GIT_COMMIT_COMMITTER_DATE,
GIT_COMMIT_COMMITTER_EMAIL,
GIT_COMMIT_COMMITTER_NAME,
GIT_COMMIT_AUTHOR_DATE,
GIT_COMMIT_AUTHOR_EMAIL,
GIT_COMMIT_AUTHOR_NAME
} = require('./tags')
const { normalizeRef } = require('./ci')
function removeEmptyValues (tags) {
return Object.keys(tags).reduce((filteredTags, tag) => {
if (!tags[tag]) {
return filteredTags
}
return {
...filteredTags,
[]: tags[tag]
}
}, {})
}
function getUserProviderGitMetadata () {
const {
DD_GIT_COMMIT_SHA,
DD_GIT_BRANCH,
DD_GIT_REPOSITORY_URL,
DD_GIT_TAG,
DD_GIT_COMMIT_MESSAGE,
DD_GIT_COMMIT_COMMITTER_NAME,
DD_GIT_COMMIT_COMMITTER_EMAIL,
DD_GIT_COMMIT_COMMITTER_DATE,
DD_GIT_COMMIT_AUTHOR_NAME,
DD_GIT_COMMIT_AUTHOR_EMAIL,
DD_GIT_COMMIT_AUTHOR_DATE
} = process.env
let branch = normalizeRef(DD_GIT_BRANCH)
let tag = normalizeRef(DD_GIT_TAG)
if (DD_GIT_TAG) {
branch = undefined
}
// if DD_GIT_BRANCH is a tag, we associate its value to TAG instead of BRANCH
if ((DD_GIT_BRANCH || '').includes('origin/tags') || (DD_GIT_BRANCH || '').includes('refs/heads/tags')) {
branch = undefined
tag = normalizeRef(DD_GIT_BRANCH)
}
return removeEmptyValues({
[]: DD_GIT_COMMIT_SHA,
[]: branch,
[]: DD_GIT_REPOSITORY_URL,
[]: tag,
[]: DD_GIT_COMMIT_MESSAGE,
[]: DD_GIT_COMMIT_COMMITTER_NAME,
[]: DD_GIT_COMMIT_COMMITTER_DATE,
[]: DD_GIT_COMMIT_COMMITTER_EMAIL,
[]: DD_GIT_COMMIT_AUTHOR_NAME,
[]: DD_GIT_COMMIT_AUTHOR_EMAIL,
[]: DD_GIT_COMMIT_AUTHOR_DATE
})
}
module.exports = { getUserProviderGitMetadata }