Skip to content

Add newline character to the end of file variable content

What does this MR do and why?

Text file should ends with a newline. how the POSIX standard defines a line:

A sequence of zero or more non- characters plus a terminating character

Therefore, lines not ending in a newline character aren't considered actual lines. That's why some programs have problems processing the last line of a file if it isn't newline terminated.

Relates to :#408413.

User can write content directly to a file,mostly user will forget "\n" since it's invisible in editor page, And Gitlab directly write it to file content which may

some ssh-key will have invalid format due to this issue

cc @daveliu

How to set up and validate locally

  1. create a file that contains a line line1

    use cat -A(or cat -e in macOS) to check the file's content it will return

>cat -e test1
line1$
  1. create a project.
  2. jump to 'settings > ci_cd > Variables' and create a file variable, something like you can copy content from the file created in step1 image

4 create a gitlab-ci.yml to check the file content in pipeline

stages:
build

build:
  stage: build
  script: cat -A "$ROW"

it returns

image which was different than step 1

MR acceptance checklist

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

Edited by Yongbo li

Merge request reports

Loading