2

在推送到公共 github 存储库之前,您是否使用任何工具来清理您的项目。在将源代码推送到公共存储库的同时,您如何维护私有设置?最佳做法是什么?

4

3 回答 3

4

.gitignore 文件是你的朋友。

于 2011-02-19T01:08:31.893 回答
2

我不在 git 中保留 database.yml。我把它写在一个上限设置任务中。对于电子邮件地址和其他内容,我在应用程序初始化时从文件系统中的文件中读取它们。同样,不在源代码管理下并在上限设置期间写入共享目录。

这是一个示例:

namespace :deploy do
  task :start do ; end
  task :stop do ; end

  task :setup do
    run <<-CMD
      mkdir -p -m 775 #{release_path} #{shared_path}/system #{shared_path}/media &&
      mkdir -p -m 777 #{shared_path}/log &&
      mkdir -p -m 777 #{shared_path}/pids &&
      mkdir -p #{deploy_to}/#{shared_dir}/config
    CMD

  end

  require 'erb'

  after deploy:setup do
    db_config = ERB.new <<-EOF
production:
  adapter: mysql2
  database: my_fine_database
  host: 127.0.0.1
  username: database_user
  password: database_password
EOF

    email_config = ERB.new <<-EOF
--- 
:user_name: me@mydomain.com
:password: verysecret
:port: 25
:address: mydomain.com
:domain: mydomain.com
:authentication: :login
EOF

    put db_config.result, "#{shared_path}/config/database.yml"
    put email_config.result, "#{shared_path}/config/creds.yml"
  end

在我的 中environment.rb,我放了:

credentials = File.join(Rails.root, 'config/creds.yml')

ActionMailer::Base.smtp_settings = YAML.load(File.open(credentials)) if File.exists?(credentials)

您还可能存储哪些其他敏感信息?

于 2011-02-19T00:51:25.663 回答
1

有时您不想 gitignore 整个文件 - 也许您更愿意只清除一两行敏感数据。我专门为此目的编写了lucido 。

lucido(发音为 loo-CHEE-dough)是一个简单的脚本,旨在... 轻松剥离和恢复敏感数据。在 git 存储库中,lucido 会阻止您提交敏感数据,并在任何合并后自动为您恢复它。

于 2012-11-03T19:12:08.497 回答