Skip to content

Draft: Add "Ci::Build#user_viewable_variables"

What does this MR do and why?

Related issue: #384575

Plan: GitLab Premium

Environment: ~SaaS self-managed

Subsequent MR: Add GraphQL changes to complete the remaining work

The current MR adds Ci::Build#variables_that_can_be_shown method, which returns the variables of Pipeline job. And we only expose predefine variables to avoid unnecessary risks. Other variables will be incrementally incremented in subsequent iterations.

The specific variables that are returned
CI_JOB_NAME
CI_JOB_NAME_SLUG
CI_JOB_STAGE
CI_NODE_TOTAL
CI_ENVIRONMENT_NAME
CI
GITLAB_CI
CI_SERVER_URL
CI_SERVER_HOST
CI_SERVER_PORT
CI_SERVER_PROTOCOL
CI_SERVER_SHELL_SSH_HOST
CI_SERVER_SHELL_SSH_PORT
CI_SERVER_NAME
CI_SERVER_VERSION
CI_SERVER_VERSION_MAJOR
CI_SERVER_VERSION_MINOR
CI_SERVER_VERSION_PATCH
CI_SERVER_REVISION
GITLAB_FEATURES
CI_PROJECT_ID
CI_PROJECT_NAME
CI_PROJECT_TITLE
CI_PROJECT_DESCRIPTION
CI_PROJECT_PATH
CI_PROJECT_PATH_SLUG
CI_PROJECT_NAMESPACE
CI_PROJECT_NAMESPACE_ID
CI_PROJECT_ROOT_NAMESPACE
CI_PROJECT_URL
CI_PROJECT_VISIBILITY
CI_PROJECT_REPOSITORY_LANGUAGES
CI_PROJECT_CLASSIFICATION_LABEL
CI_DEFAULT_BRANCH
CI_CONFIG_PATH
CI_PAGES_DOMAIN
CI_PAGES_URL
CI_API_V4_URL
CI_API_GRAPHQL_URL
CI_TEMPLATE_REGISTRY_HOST
CI_PIPELINE_IID
CI_PIPELINE_SOURCE
CI_PIPELINE_CREATED_AT
CI_COMMIT_SHA
CI_COMMIT_SHORT_SHA
CI_COMMIT_BEFORE_SHA
CI_COMMIT_REF_NAME
CI_COMMIT_REF_SLUG
CI_COMMIT_BRANCH
CI_COMMIT_MESSAGE
CI_COMMIT_TITLE
CI_COMMIT_DESCRIPTION
CI_COMMIT_REF_PROTECTED
CI_COMMIT_TIMESTAMP
CI_COMMIT_AUTHOR

Screenshots or screen recordings

No UI changes.

How to set up and validate locally

# bin/rails console

> job = Ci::Build.first
> job.pipeline.variables_builder.user_viewable_variables(job, environment: nil, dependencies: true) # Expect return variables

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.


cc @mtan-gitlab @icbd

Edited by Zhiyuan Lu

Merge request reports