传入电子邮件 Rake 任务

  • 引入于 15.9 版本。

以下是与传入电子邮件相关的 Rake 任务。

Secrets

极狐GitLab 可以使用从加密文件中读取的传入电子邮件的 secrets,而不是将它们以明文形式存储在文件系统中。以下 Rake 任务用于更新加密文件的内容。

显示 secret

显示当前传入电子邮件 secret 的内容。

  • Omnibus
sudo gitlab-rake gitlab:incoming_email:secret:show
  • Helm chart (Kubernetes)

使用 Kubernetes secret 存储传入电子邮件密码。有关详细信息,请阅读 Helm IMAP secret

  • Docker
sudo docker exec -t <container name> gitlab:incoming_email:secret:show
  • 源安装
bundle exec rake gitlab:incoming_email:secret:show RAILS_ENV=production

输出示例

password: 'examplepassword'
user: 'incoming-email@mail.example.com'

编辑 secret

在您的编辑器中打开 secret 内容,并在您退出时将结果内容写入加密的 secret 文件。

  • Omnibus
sudo gitlab-rake gitlab:incoming_email:secret:edit EDITOR=vim
  • Helm chart (Kubernetes)

使用 Kubernetes secret 存储传入电子邮件密码。有关详细信息,请阅读 Helm IMAP secret

  • Docker
sudo docker exec -t <container name> gitlab:incoming_email:secret:edit EDITOR=editor
  • 源安装
bundle exec rake gitlab:incoming_email:secret:edit RAILS_ENV=production EDITOR=vim

写入 raw secret

提供新的 secret 内容,在 STDIN 上写入。

  • Omnibus
echo -e "password: 'examplepassword'" | sudo gitlab-rake gitlab:incoming_email:secret:write
  • Helm chart (Kubernetes)

使用 Kubernetes secret 存储传入电子邮件密码。有关详细信息,请阅读 Helm IMAP secret

  • Docker
sudo docker exec -t <container name> /bin/bash
echo -e "password: 'examplepassword'" | gitlab-rake gitlab:incoming_email:secret:write
  • 源安装
echo -e "password: 'examplepassword'" | bundle exec rake gitlab:incoming_email:secret:write RAILS_ENV=production

Secrets 示例

编辑器示例

写任务可用于编辑命令不适用于您的编辑器的情况:

# Write the existing secret to a plaintext file
sudo gitlab-rake gitlab:incoming_email:secret:show > incoming_email.yaml
# Edit the incoming_email file in your editor
...
# Re-encrypt the file
cat incoming_email.yaml | sudo gitlab-rake gitlab:incoming_email:secret:write
# Remove the plaintext file
rm incoming_email.yaml

KMS 集成示例

它还可以用作使用 KMS 加密的内容的接收应用程序:

gcloud kms decrypt --key my-key --keyring my-test-kms --plaintext-file=- --ciphertext-file=my-file --location=us-west1 | sudo gitlab-rake gitlab:incoming_email:secret:write

Google Cloud secret 集成示例

它还可以用作接收来自 Google Cloud 的 secret 的应用程序:

gcloud secrets versions access latest --secret="my-test-secret" > $1 | sudo gitlab-rake gitlab:incoming_email:secret:write