Какие инструменты вы используете, чтобы избежать случайной отправки личной информации в репозиторий github в проекте rails? - PullRequest
2 голосов
/ 19 февраля 2011

Существуют ли какие-либо инструменты, которые вы используете для очистки вашего проекта перед отправкой в ​​общедоступное репозиторий github.Как вы поддерживаете свои личные настройки, одновременно отправляя исходный код в публичное хранилище?Какова лучшая практика?

Ответы [ 3 ]

4 голосов
/ 19 февраля 2011

.gitignore - это ваш друг.

2 голосов
/ 19 февраля 2011

Я не храню database.yml в git.Я пишу это в задаче настройки шапки.Что касается адресов электронной почты и прочего, я читаю их при инициализации приложения из файла в файловой системе.Опять же, не под управлением исходного кода и записывается в общий каталог во время установки cap.

Вот пример:

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)

Какую другую конфиденциальную информацию вы можете хранить?

1 голос
/ 03 ноября 2012

Иногда вы не хотите gitignore всего файла - может быть, вы бы предпочли просто удалить строку или две конфиденциальных данных. Я написал lucido специально для этой цели.

lucido (произносится как loo-CHEE-dough) - простой скрипт, предназначенный для ... легкого удаления и восстановления конфиденциальных данных. В репозитории git lucido предотвращает передачу ваших конфиденциальных данных и автоматически восстанавливает их после любых слияний.

...