From 03e44f93001db97953917e0a100c627e189e2be6 Mon Sep 17 00:00:00 2001 From: Kasper Timm Hansen Date: Sun, 4 Aug 2019 01:32:41 +0200 Subject: Revise credentials diffing flow to use a separate diff command Didn't like the complicated stuff that happened on credentials:edit. It would append to .gitattributes multiple times. Though I see why it was written that way. I'm cutting off for now, but since this new flow would require each developer to run --enable perhaps this should really be: 1. Developer enrolls Rails app by running `credentials:diff --enable` 2. credentials:edit checks .gitattributes for `diff=rails_credentials` and if the current file is covered by that. 3. If so, set up the "rails_credentials" driver automatically. --- railties/lib/rails/commands/credentials/USAGE | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'railties/lib/rails/commands/credentials/USAGE') diff --git a/railties/lib/rails/commands/credentials/USAGE b/railties/lib/rails/commands/credentials/USAGE index c8d3fb9eda..0396fcb403 100644 --- a/railties/lib/rails/commands/credentials/USAGE +++ b/railties/lib/rails/commands/credentials/USAGE @@ -30,6 +30,20 @@ You could prepend that to your server's start command like this: RAILS_MASTER_KEY="very-secret-and-secure" server.start +=== Set up Git to Diff Credentials + +Rails provides `rails credentials:diff --enable` to instruct Git to call `rails credentials:diff` +when `git diff` is run on a credentials file. + +Any credentials files are set to use the "rails_credentials" diff driver in .gitattributes. +Since Git requires the diff driver to be set up in a config file, the command uses +the project local .git/config. Since that config isn't stored in Git each team member +must enable separately. + +Or set up the "rails_credentials" diff driver globally with: + + git config --global diff.rails_credentials.textconv "bin/rails credentials:diff" + === Editing Credentials This will open a temporary file in `$EDITOR` with the decrypted contents to edit -- cgit v1.2.3