diff --git a/action.yml b/action.yml index f6438f0..f2f7203 100644 --- a/action.yml +++ b/action.yml @@ -19,6 +19,10 @@ inputs: secrets: description: "List of secret IDs and corresponding environment variable names (format: 'SECRET_ID > ENV_VAR')" required: true + dot-env-path: + description: "Path to write the DOT_ENV secret to instead of exporting it via GITHUB_ENV" + required: false + default: "" runs: using: "composite" @@ -52,10 +56,17 @@ runs: SECRET_VALUE=$(bw get notes "$SECRET_ID" --session "$BW_SESSION" --raw 2>/dev/null) if [ -n "$SECRET_VALUE" ]; then - echo "$ENV_VAR<> $GITHUB_ENV - echo "$SECRET_VALUE" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - echo "Stored $SECRET_ID in $ENV_VAR" + if [ "$ENV_VAR" = "DOT_ENV" ] && [ -n "${{ inputs.dot-env-path }}" ]; then + mkdir -p "$(dirname "${{ inputs.dot-env-path }}")" + umask 077 + printf '%s\n' "$SECRET_VALUE" > "${{ inputs.dot-env-path }}" + echo "Stored $SECRET_ID in $ENV_VAR file" + else + echo "$ENV_VAR<> $GITHUB_ENV + echo "$SECRET_VALUE" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + echo "Stored $SECRET_ID in $ENV_VAR" + fi else echo "Failed to retrieve secret: $SECRET_ID" fi