diff --git a/config/git.php b/config/git.php new file mode 100644 index 0000000000..939354dda0 --- /dev/null +++ b/config/git.php @@ -0,0 +1,133 @@ + env('STATAMIC_GIT_ENABLED', false), + + /* + |-------------------------------------------------------------------------- + | Automatically Run + |-------------------------------------------------------------------------- + | + | By default, commits are automatically queued when `Saved` or `Deleted` + | events are fired. If you prefer users to manually trigger commits + | using the `Git` utility interface, you may set this to `false`. + | + */ + + 'automatic' => env('STATAMIC_GIT_AUTOMATIC', true), + + /* + |-------------------------------------------------------------------------- + | Dispatch Delay + |-------------------------------------------------------------------------- + | + | When `Saved` and `Deleted` events queue up commits, you may wish to + | set a delay time in minutes for each queued job. This can allow + | for more consolidated commits when you have multiple users + | making simultaneous content changes to your repository. + | + | Note: Not supported by default `sync` queue driver. + | + */ + + 'dispatch_delay' => env('STATAMIC_GIT_DISPATCH_DELAY', 0), + + /* + |-------------------------------------------------------------------------- + | Git User + |-------------------------------------------------------------------------- + | + | The git user that will be used when committing changes. By default, it + | will attempt to commit with the authenticated user's name and email + | when possible, falling back to the below user when not available. + | + */ + + 'use_authenticated' => true, + + 'user' => [ + 'name' => env('STATAMIC_GIT_USER_NAME', 'Spock'), + 'email' => env('STATAMIC_GIT_USER_EMAIL', 'spock@example.com'), + ], + + /* + |-------------------------------------------------------------------------- + | Tracked Paths + |-------------------------------------------------------------------------- + | + | Define the tracked paths to be considered when staging changes. Default + | stache and file locations are already set up for you, but feel free + | to modify these paths to suit your storage config. Referencing + | absolute paths to external repos is also completely valid. + | + */ + + 'paths' => [ + base_path('content'), + base_path('users'), + resource_path('blueprints'), + resource_path('fieldsets'), + resource_path('forms'), + resource_path('users'), + ], + + /* + |-------------------------------------------------------------------------- + | Commands + |-------------------------------------------------------------------------- + | + | Define a list commands to be run when Statamic is ready to `git add` + | and `git commit` your changes. These commands will be run once + | per repo, attempting to consolidate commits where possible. + | + */ + + 'commands' => [ + 'git add {{ paths }}', + 'git -c "user.name={{ name }}" -c "user.email={{ email }}" commit -m "{{ message }}"', + ], + + /* + |-------------------------------------------------------------------------- + | Push + |-------------------------------------------------------------------------- + | + | Determine whether `git push` should be run after the commands above + | have finished. This is disabled by default, but can be enabled + | globally, or per environment using the provided variable. + | + */ + + 'push' => env('STATAMIC_GIT_PUSH', false), + + /* + |-------------------------------------------------------------------------- + | Ignored Events + |-------------------------------------------------------------------------- + | + | Statamic will listen on all `Saved` and `Deleted` events, as well + | as any events registered by installed addons. If you wish to + | ignore any specific events, you may reference them here. + | + */ + + 'ignored_events' => [ + // \Statamic\Events\Data\UserSaved::class, + // \Statamic\Events\Data\UserDeleted::class, + ], + +]; diff --git a/package-lock.json b/package-lock.json index 856e750e7a..e6eacfad07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1725,6 +1725,21 @@ "color-convert": "^1.9.0" } }, + "ansi-to-html": { + "version": "0.6.14", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz", + "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==", + "requires": { + "entities": "^1.1.2" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + } + } + }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", diff --git a/package.json b/package.json index b9cc31d322..e63d9df84e 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@popperjs/core": "^2.1.0", "@shopify/draggable": "^1.0.0-beta.8", "@simonwep/pickr": "^1.5.1", + "ansi-to-html": "^0.6.14", "autosize": "~3.0.12", "axios": "^0.19.2", "body-scroll-lock": "^2.6.4", diff --git a/resources/js/components/ComposerOutput.vue b/resources/js/components/ComposerOutput.vue index 6bd4b21953..3bb1838be1 100644 --- a/resources/js/components/ComposerOutput.vue +++ b/resources/js/components/ComposerOutput.vue @@ -1,14 +1,20 @@