Шифрование/маскирование конфиденциальных данных в git push (зашифрованное/замаскированное отображение в удаленном репо)

У меня есть код Cypress, который содержит конфиденциальный заголовок, который я хочу замаскировать/расшифровать.

cy.request({
    method: 'GET',
    url: 'https://sample-url',
    headers: {
        'key': 'value'
    }
})

Есть ли способ всякий раз, когда мы нажимаем на удаленный, мои желаемые значения шифруются (например, заголовки в приведенном выше примере).


58
1

Ответ:

Решено

Я ничего не могу придумать, чтобы автоматически шифровать и расшифровывать значения с помощью git push/fetch. Это, вероятно, не то направление, в котором вы хотите двигаться в любом случае.

Более простой способ работы с конфиденциальными значениями — сохранить их в переменных среды и не передавать их в систему управления версиями.

С Cypress есть несколько способов получить переменные окружения в тесты, но один простой способ — это файл cypress.env.json. Этот файл будет указан внутри вашего .gitignore.

Файл env будет выглядеть следующим образом:

// cypress.env.json
{
  "secretKey": "value"
}

И ваш код будет называть это так

// Code
cy.request({
    method: 'GET',
    url: 'https://sample-url',
    headers: {
        'key': Cypress.env('secretKey');
    }
})

Единственное, в чем вам нужно убедиться, если вы запускаете тесты в конвейере, вы должны установить переменные среды перед запуском тестов.

Вот еще одна ссылка, которая, я думаю, может помочь

https://glebbahmutov.com/blog/keep-passwords-secret-in-e2e-tests/