InfoGrab Docs

플로우 실행 변수

요약

모든 변수가 플로우를 실행하는 작업에서 사용 가능한 것은 아닙니다. 다음 변수를 플로우를 실행하는 작업에서 사용할 수 있습니다. 다음 미리 정의된 CI/CD 변수를 사용할 수 있습니다: 다음 환경 변수는 Agent Platform에 특화되어 있습니다.

모든 변수가 플로우를 실행하는 작업에서 사용 가능한 것은 아닙니다.

  • 일부 미리 정의된 변수와 Agent Platform 특정 변수를 사용할 수 있습니다.
  • 미리 정의된 필터링된 변수, 사용자 정의 CI/CD 변수, 사용자 ID 변수는 사용할 수 없습니다.

사용 가능한 변수#

다음 변수를 플로우를 실행하는 작업에서 사용할 수 있습니다.

미리 정의된 변수#

다음 미리 정의된 CI/CD 변수를 사용할 수 있습니다:

변수 설명
CI_PROJECT_ID 프로젝트 ID.
CI_PROJECT_NAME 프로젝트 이름.
CI_PROJECT_PATH 네임스페이스가 포함된 프로젝트 경로.
CI_PROJECT_URL 프로젝트 HTTP URL.
CI_PROJECT_NAMESPACE 프로젝트 네임스페이스.
CI_PROJECT_VISIBILITY 프로젝트 가시성 (public, internal, 또는 private).
CI_DEFAULT_BRANCH 기본 브랜치 이름.
CI_JOB_ID 작업 ID.
CI_JOB_URL 작업 URL.
CI_JOB_TOKEN 작업 인증 토큰.
CI_JOB_IMAGE 작업에 사용된 Docker 이미지.
CI_JOB_STATUS 작업 상태.
CI_JOB_TIMEOUT 작업 타임아웃(초).
CI_JOB_STARTED_AT ISO 8601 형식의 작업 시작 타임스탬프.
CI_PIPELINE_ID 파이프라인 ID.
CI_PIPELINE_URL 파이프라인 URL.
CI_REGISTRY_USER 컨테이너 레지스트리 사용자 이름 (gitlab-ci-token).
CI_REGISTRY_PASSWORD 컨테이너 레지스트리 비밀번호 (작업 토큰).
CI_DEPENDENCY_PROXY_USER 종속성 프록시 사용자 이름.
CI_DEPENDENCY_PROXY_PASSWORD 종속성 프록시 비밀번호.
CI_REPOSITORY_URL 자격 증명이 포함된 Git 클론 URL.
CI_RUNNER_VERSION 러너 버전.
CI_RUNNER_EXECUTABLE_ARCH 러너 아키텍처 (예: linux/amd64).
CI_SERVER CI/CD 환경에서 항상 yes.
CI_WORKLOAD_REF 플로우 실행에 대한 워크로드 참조 (예: refs/workloads/c727f70ba7f). 이것들은 내부 Git 참조이며 파이프라인 작업이 완료되거나 실패할 때 자동으로 제거됩니다.

환경 변수#

다음 환경 변수는 Agent Platform에 특화되어 있습니다. 이 변수는 setup_script와 기본 에이전트 런타임 모두에서 사용할 수 있습니다.

이 표는 주요 변수를 설명합니다. 추가 내부 변수 (예: 디버그 플래그 및 원격 측정 식별자)도 실행 컨테이너에 있을 수 있지만 플로우 구성에서 사용하도록 의도된 것은 아닙니다.

변수 설명
DUO_WORKFLOW_GIT_HTTP_BASE_URL GitLab 인스턴스 기본 URL. CI_SERVER_URL 대신 이것을 사용합니다. https://gitlab.com
DUO_WORKFLOW_PROJECT_ID 프로젝트 ID. CI_PROJECT_ID와 동일한 값. 77056053
DUO_WORKFLOW_NAMESPACE_ID 네임스페이스 ID. 91555435
DUO_WORKFLOW_GOAL 플로우를 트리거한 이슈의 URL. https://gitlab.com/group/project/-/issues/10
DUO_WORKFLOW_DEFINITION 플로우 정의 식별자. developer/v1
DUO_WORKFLOW_SERVICE_REALM 배포 유형. saas 또는 self-managed
DUO_WORKFLOW_GIT_HTTP_USER 클론을 위한 Git HTTP 사용자 이름. oauth
DUO_WORKFLOW_GIT_HTTP_PASSWORD 클론을 위한 Git HTTP 비밀번호. (OAuth 토큰)
DUO_WORKFLOW_GIT_USER_NAME 플로우를 트리거한 사용자의 이름. Git 커미터로 사용됩니다. Jane Developer
DUO_WORKFLOW_GIT_USER_EMAIL 플로우를 트리거한 사용자의 이메일. Git 커미터 이메일로 사용됩니다. jdeveloper@example.com
DUO_WORKFLOW_GIT_AUTHOR_EMAIL 서비스 계정의 이메일. Git 작성자 이메일로 사용됩니다. service_account_group_@noreply.gitlab.com
DUO_WORKFLOW_GIT_AUTHOR_USER_NAME 서비스 계정의 이름. Git 작성자 이름으로 사용됩니다. Duo Developer
GITLAB_BASE_URL GitLab 인스턴스 기본 URL. DUO_WORKFLOW_GIT_HTTP_BASE_URL과 동일한 값. https://gitlab.com
GITLAB_PROJECT_PATH 네임스페이스가 포함된 프로젝트 전체 경로. CI_PROJECT_PATH와 동일한 값. my-group/my-project
GITLAB_TOKEN GitLab API 액세스를 위한 OAuth 토큰. DUO_WORKFLOW_GIT_HTTP_PASSWORD와 동일한 값. (OAuth 토큰)
AGENT_PLATFORM_GITLAB_VERSION 플로우를 실행하는 GitLab 버전. 18.9.0

사용할 수 없음#

다음 변수는 플로우를 실행하는 작업에서 사용할 수 없습니다.

필터링된 미리 정의된 변수#

다음 미리 정의된 CI/CD 변수는 사용할 수 없습니다:

변수 이유
CI_REGISTRY 워크로드 변수 게이트에 의해 필터링됩니다. 하드코딩된 레지스트리 호스트 이름을 대신 사용합니다.
CI_REGISTRY_IMAGE 워크로드 변수 게이트에 의해 필터링됩니다. 하드코딩된 이미지 경로를 대신 사용합니다.
CI_SERVER_URL, CI_SERVER_HOST, CI_API_V4_URL 필터링됩니다. 대신 GITLAB_BASE_URL 또는 DUO_WORKFLOW_GIT_HTTP_BASE_URL을 사용합니다.
CI_COMMIT_SHA, CI_COMMIT_BRANCH, CI_COMMIT_REF_NAME 작업에 커밋 컨텍스트가 없습니다. 소스 브랜치는 GitLab Duo 에이전트에 의해 관리됩니다.
GITLAB_USER_LOGIN, GITLAB_USER_EMAIL, GITLAB_USER_NAME 작업은 트리거한 사용자가 아닌 서비스 계정으로 실행됩니다.
CI_PIPELINE_SOURCE, CI_PIPELINE_IID 워크로드 변수 게이트에 의해 필터링됩니다.

사용자 ID#

플로우 실행 중에 사용되는 CI 작업 토큰은 트리거한 사용자와 서비스 계정 모두를 나타내는 복합 ID 토큰입니다.

플로우 실행 중에 생성된 Git 커밋은 플로우를 트리거한 사용자가 커밋했지만 서비스 계정이 작성한 것으로 표시됩니다.

서비스 계정이 플로우를 실행하고 사용자가 아니기 때문에 GITLAB_USER_LOGINGITLAB_USER_EMAIL 변수는 사용할 수 없습니다.

그러나 플로우를 트리거한 사용자의 ID는 DUO_WORKFLOW_GIT_USER_EMAILDUO_WORKFLOW_GIT_USER_NAME에서 사용할 수 있으며, 서비스 계정 ID는 DUO_WORKFLOW_GIT_AUTHOR_EMAILDUO_WORKFLOW_GIT_AUTHOR_USER_NAME에서 사용할 수 있습니다.

사용자 정의 CI/CD 변수#

프로젝트, 그룹 또는 인스턴스의 설정 > CI/CD > 변수에 정의된 사용자 정의 CI/CD 변수는 사용할 수 없습니다.

사용자 정의 CI/CD 변수에는 보호된 변수, 보호되지 않은 변수, 마스킹된 변수, 파일 변수가 포함됩니다.

모든 플로우 구성은 agent-config.yml에서 제공하거나 사용 가능한 환경 변수를 통해 제공해야 합니다.

GitLab 인스턴스 URL 액세스#

표준 CI_SERVER_URL 변수는 사용할 수 없습니다. 대신 GITLAB_BASE_URL 또는 DUO_WORKFLOW_GIT_HTTP_BASE_URL을 사용합니다.

예를 들어, setup_script에서 API 호출을 하려면:

setup_script:
  - "curl --silent --header 'JOB-TOKEN: ${CI_JOB_TOKEN}' ${GITLAB_BASE_URL}/api/v4/projects/${CI_PROJECT_ID}"

플로우 실행 변수

원문 보기
요약

모든 변수가 플로우를 실행하는 작업에서 사용 가능한 것은 아닙니다. 다음 변수를 플로우를 실행하는 작업에서 사용할 수 있습니다. 다음 미리 정의된 CI/CD 변수를 사용할 수 있습니다: 다음 환경 변수는 Agent Platform에 특화되어 있습니다.

모든 변수가 플로우를 실행하는 작업에서 사용 가능한 것은 아닙니다.

  • 일부 미리 정의된 변수와 Agent Platform 특정 변수를 사용할 수 있습니다.
  • 미리 정의된 필터링된 변수, 사용자 정의 CI/CD 변수, 사용자 ID 변수는 사용할 수 없습니다.

사용 가능한 변수#

다음 변수를 플로우를 실행하는 작업에서 사용할 수 있습니다.

미리 정의된 변수#

다음 미리 정의된 CI/CD 변수를 사용할 수 있습니다:

변수 설명
CI_PROJECT_ID 프로젝트 ID.
CI_PROJECT_NAME 프로젝트 이름.
CI_PROJECT_PATH 네임스페이스가 포함된 프로젝트 경로.
CI_PROJECT_URL 프로젝트 HTTP URL.
CI_PROJECT_NAMESPACE 프로젝트 네임스페이스.
CI_PROJECT_VISIBILITY 프로젝트 가시성 (public, internal, 또는 private).
CI_DEFAULT_BRANCH 기본 브랜치 이름.
CI_JOB_ID 작업 ID.
CI_JOB_URL 작업 URL.
CI_JOB_TOKEN 작업 인증 토큰.
CI_JOB_IMAGE 작업에 사용된 Docker 이미지.
CI_JOB_STATUS 작업 상태.
CI_JOB_TIMEOUT 작업 타임아웃(초).
CI_JOB_STARTED_AT ISO 8601 형식의 작업 시작 타임스탬프.
CI_PIPELINE_ID 파이프라인 ID.
CI_PIPELINE_URL 파이프라인 URL.
CI_REGISTRY_USER 컨테이너 레지스트리 사용자 이름 (gitlab-ci-token).
CI_REGISTRY_PASSWORD 컨테이너 레지스트리 비밀번호 (작업 토큰).
CI_DEPENDENCY_PROXY_USER 종속성 프록시 사용자 이름.
CI_DEPENDENCY_PROXY_PASSWORD 종속성 프록시 비밀번호.
CI_REPOSITORY_URL 자격 증명이 포함된 Git 클론 URL.
CI_RUNNER_VERSION 러너 버전.
CI_RUNNER_EXECUTABLE_ARCH 러너 아키텍처 (예: linux/amd64).
CI_SERVER CI/CD 환경에서 항상 yes.
CI_WORKLOAD_REF 플로우 실행에 대한 워크로드 참조 (예: refs/workloads/c727f70ba7f). 이것들은 내부 Git 참조이며 파이프라인 작업이 완료되거나 실패할 때 자동으로 제거됩니다.

환경 변수#

다음 환경 변수는 Agent Platform에 특화되어 있습니다. 이 변수는 setup_script와 기본 에이전트 런타임 모두에서 사용할 수 있습니다.

이 표는 주요 변수를 설명합니다. 추가 내부 변수 (예: 디버그 플래그 및 원격 측정 식별자)도 실행 컨테이너에 있을 수 있지만 플로우 구성에서 사용하도록 의도된 것은 아닙니다.

변수 설명
DUO_WORKFLOW_GIT_HTTP_BASE_URL GitLab 인스턴스 기본 URL. CI_SERVER_URL 대신 이것을 사용합니다. https://gitlab.com
DUO_WORKFLOW_PROJECT_ID 프로젝트 ID. CI_PROJECT_ID와 동일한 값. 77056053
DUO_WORKFLOW_NAMESPACE_ID 네임스페이스 ID. 91555435
DUO_WORKFLOW_GOAL 플로우를 트리거한 이슈의 URL. https://gitlab.com/group/project/-/issues/10
DUO_WORKFLOW_DEFINITION 플로우 정의 식별자. developer/v1
DUO_WORKFLOW_SERVICE_REALM 배포 유형. saas 또는 self-managed
DUO_WORKFLOW_GIT_HTTP_USER 클론을 위한 Git HTTP 사용자 이름. oauth
DUO_WORKFLOW_GIT_HTTP_PASSWORD 클론을 위한 Git HTTP 비밀번호. (OAuth 토큰)
DUO_WORKFLOW_GIT_USER_NAME 플로우를 트리거한 사용자의 이름. Git 커미터로 사용됩니다. Jane Developer
DUO_WORKFLOW_GIT_USER_EMAIL 플로우를 트리거한 사용자의 이메일. Git 커미터 이메일로 사용됩니다. jdeveloper@example.com
DUO_WORKFLOW_GIT_AUTHOR_EMAIL 서비스 계정의 이메일. Git 작성자 이메일로 사용됩니다. service_account_group_@noreply.gitlab.com
DUO_WORKFLOW_GIT_AUTHOR_USER_NAME 서비스 계정의 이름. Git 작성자 이름으로 사용됩니다. Duo Developer
GITLAB_BASE_URL GitLab 인스턴스 기본 URL. DUO_WORKFLOW_GIT_HTTP_BASE_URL과 동일한 값. https://gitlab.com
GITLAB_PROJECT_PATH 네임스페이스가 포함된 프로젝트 전체 경로. CI_PROJECT_PATH와 동일한 값. my-group/my-project
GITLAB_TOKEN GitLab API 액세스를 위한 OAuth 토큰. DUO_WORKFLOW_GIT_HTTP_PASSWORD와 동일한 값. (OAuth 토큰)
AGENT_PLATFORM_GITLAB_VERSION 플로우를 실행하는 GitLab 버전. 18.9.0

사용할 수 없음#

다음 변수는 플로우를 실행하는 작업에서 사용할 수 없습니다.

필터링된 미리 정의된 변수#

다음 미리 정의된 CI/CD 변수는 사용할 수 없습니다:

변수 이유
CI_REGISTRY 워크로드 변수 게이트에 의해 필터링됩니다. 하드코딩된 레지스트리 호스트 이름을 대신 사용합니다.
CI_REGISTRY_IMAGE 워크로드 변수 게이트에 의해 필터링됩니다. 하드코딩된 이미지 경로를 대신 사용합니다.
CI_SERVER_URL, CI_SERVER_HOST, CI_API_V4_URL 필터링됩니다. 대신 GITLAB_BASE_URL 또는 DUO_WORKFLOW_GIT_HTTP_BASE_URL을 사용합니다.
CI_COMMIT_SHA, CI_COMMIT_BRANCH, CI_COMMIT_REF_NAME 작업에 커밋 컨텍스트가 없습니다. 소스 브랜치는 GitLab Duo 에이전트에 의해 관리됩니다.
GITLAB_USER_LOGIN, GITLAB_USER_EMAIL, GITLAB_USER_NAME 작업은 트리거한 사용자가 아닌 서비스 계정으로 실행됩니다.
CI_PIPELINE_SOURCE, CI_PIPELINE_IID 워크로드 변수 게이트에 의해 필터링됩니다.

사용자 ID#

플로우 실행 중에 사용되는 CI 작업 토큰은 트리거한 사용자와 서비스 계정 모두를 나타내는 복합 ID 토큰입니다.

플로우 실행 중에 생성된 Git 커밋은 플로우를 트리거한 사용자가 커밋했지만 서비스 계정이 작성한 것으로 표시됩니다.

서비스 계정이 플로우를 실행하고 사용자가 아니기 때문에 GITLAB_USER_LOGINGITLAB_USER_EMAIL 변수는 사용할 수 없습니다.

그러나 플로우를 트리거한 사용자의 ID는 DUO_WORKFLOW_GIT_USER_EMAILDUO_WORKFLOW_GIT_USER_NAME에서 사용할 수 있으며, 서비스 계정 ID는 DUO_WORKFLOW_GIT_AUTHOR_EMAILDUO_WORKFLOW_GIT_AUTHOR_USER_NAME에서 사용할 수 있습니다.

사용자 정의 CI/CD 변수#

프로젝트, 그룹 또는 인스턴스의 설정 > CI/CD > 변수에 정의된 사용자 정의 CI/CD 변수는 사용할 수 없습니다.

사용자 정의 CI/CD 변수에는 보호된 변수, 보호되지 않은 변수, 마스킹된 변수, 파일 변수가 포함됩니다.

모든 플로우 구성은 agent-config.yml에서 제공하거나 사용 가능한 환경 변수를 통해 제공해야 합니다.

GitLab 인스턴스 URL 액세스#

표준 CI_SERVER_URL 변수는 사용할 수 없습니다. 대신 GITLAB_BASE_URL 또는 DUO_WORKFLOW_GIT_HTTP_BASE_URL을 사용합니다.

예를 들어, setup_script에서 API 호출을 하려면:

setup_script:
  - "curl --silent --header 'JOB-TOKEN: ${CI_JOB_TOKEN}' ${GITLAB_BASE_URL}/api/v4/projects/${CI_PROJECT_ID}"