Changeset 3490948
- Timestamp:
- 03/25/2026 01:06:13 PM (4 days ago)
- Location:
- pushpull
- Files:
-
- 143 added
- 10 edited
-
tags/0.0.4 (added)
-
tags/0.0.4/README.md (added)
-
tags/0.0.4/assets (added)
-
tags/0.0.4/assets/css (added)
-
tags/0.0.4/assets/css/admin.css (added)
-
tags/0.0.4/composer.json (added)
-
tags/0.0.4/pushpull.php (added)
-
tags/0.0.4/readme.txt (added)
-
tags/0.0.4/src (added)
-
tags/0.0.4/src/Admin (added)
-
tags/0.0.4/src/Admin/ManagedContentPage.php (added)
-
tags/0.0.4/src/Admin/OperationsPage.php (added)
-
tags/0.0.4/src/Admin/SettingsPage.php (added)
-
tags/0.0.4/src/Content (added)
-
tags/0.0.4/src/Content/Exception (added)
-
tags/0.0.4/src/Content/Exception/ManagedContentExportException.php (added)
-
tags/0.0.4/src/Content/GenerateBlocks (added)
-
tags/0.0.4/src/Content/GenerateBlocks/GenerateBlocksCanonicalHasher.php (added)
-
tags/0.0.4/src/Content/GenerateBlocks/GenerateBlocksGlobalStylesAdapter.php (added)
-
tags/0.0.4/src/Content/GenerateBlocks/GenerateBlocksGlobalStylesSnapshot.php (added)
-
tags/0.0.4/src/Content/GenerateBlocks/GenerateBlocksLogicalKeyGenerator.php (added)
-
tags/0.0.4/src/Content/GenerateBlocks/GenerateBlocksRepositoryLayout.php (added)
-
tags/0.0.4/src/Content/ManagedCollectionManifest.php (added)
-
tags/0.0.4/src/Content/ManagedContentAdapterInterface.php (added)
-
tags/0.0.4/src/Content/ManagedContentItem.php (added)
-
tags/0.0.4/src/Domain (added)
-
tags/0.0.4/src/Domain/Apply (added)
-
tags/0.0.4/src/Domain/Apply/ApplyManagedSetResult.php (added)
-
tags/0.0.4/src/Domain/Apply/ManagedSetApplyService.php (added)
-
tags/0.0.4/src/Domain/Diff (added)
-
tags/0.0.4/src/Domain/Diff/CanonicalDiffEntry.php (added)
-
tags/0.0.4/src/Domain/Diff/CanonicalDiffResult.php (added)
-
tags/0.0.4/src/Domain/Diff/CanonicalManagedFile.php (added)
-
tags/0.0.4/src/Domain/Diff/CanonicalManagedState.php (added)
-
tags/0.0.4/src/Domain/Diff/ManagedSetDiffResult.php (added)
-
tags/0.0.4/src/Domain/Diff/ManagedSetDiffService.php (added)
-
tags/0.0.4/src/Domain/Diff/RepositoryRelationship.php (added)
-
tags/0.0.4/src/Domain/Diff/RepositoryStateReader.php (added)
-
tags/0.0.4/src/Domain/Merge (added)
-
tags/0.0.4/src/Domain/Merge/FinalizeMergeResult.php (added)
-
tags/0.0.4/src/Domain/Merge/JsonThreeWayMerger.php (added)
-
tags/0.0.4/src/Domain/Merge/ManagedSetConflictResolutionService.php (added)
-
tags/0.0.4/src/Domain/Merge/ManagedSetMergeService.php (added)
-
tags/0.0.4/src/Domain/Merge/MergeConflict.php (added)
-
tags/0.0.4/src/Domain/Merge/MergeConflictState.php (added)
-
tags/0.0.4/src/Domain/Merge/MergeManagedSetResult.php (added)
-
tags/0.0.4/src/Domain/Merge/ResolveConflictResult.php (added)
-
tags/0.0.4/src/Domain/Push (added)
-
tags/0.0.4/src/Domain/Push/ManagedSetPushService.php (added)
-
tags/0.0.4/src/Domain/Push/PushManagedSetResult.php (added)
-
tags/0.0.4/src/Domain/Push/RemoteBranchResetService.php (added)
-
tags/0.0.4/src/Domain/Push/ResetRemoteBranchResult.php (added)
-
tags/0.0.4/src/Domain/Repository (added)
-
tags/0.0.4/src/Domain/Repository/Blob.php (added)
-
tags/0.0.4/src/Domain/Repository/Commit.php (added)
-
tags/0.0.4/src/Domain/Repository/CommitRequest.php (added)
-
tags/0.0.4/src/Domain/Repository/DatabaseLocalRepository.php (added)
-
tags/0.0.4/src/Domain/Repository/LocalRepositoryInterface.php (added)
-
tags/0.0.4/src/Domain/Repository/Ref.php (added)
-
tags/0.0.4/src/Domain/Repository/Tree.php (added)
-
tags/0.0.4/src/Domain/Repository/TreeEntry.php (added)
-
tags/0.0.4/src/Domain/Sync (added)
-
tags/0.0.4/src/Domain/Sync/CommitManagedSetRequest.php (added)
-
tags/0.0.4/src/Domain/Sync/CommitManagedSetResult.php (added)
-
tags/0.0.4/src/Domain/Sync/FetchManagedSetResult.php (added)
-
tags/0.0.4/src/Domain/Sync/GenerateBlocksRepositoryCommitter.php (added)
-
tags/0.0.4/src/Domain/Sync/InitializeRemoteRepositoryResult.php (added)
-
tags/0.0.4/src/Domain/Sync/LocalSyncService.php (added)
-
tags/0.0.4/src/Domain/Sync/RemoteBranchFetcher.php (added)
-
tags/0.0.4/src/Domain/Sync/RemoteRepositoryInitializer.php (added)
-
tags/0.0.4/src/Domain/Sync/SyncServiceInterface.php (added)
-
tags/0.0.4/src/Persistence (added)
-
tags/0.0.4/src/Persistence/ContentMap (added)
-
tags/0.0.4/src/Persistence/ContentMap/ContentMapEntry.php (added)
-
tags/0.0.4/src/Persistence/ContentMap/ContentMapRepository.php (added)
-
tags/0.0.4/src/Persistence/LocalRepositoryResetService.php (added)
-
tags/0.0.4/src/Persistence/Migrations (added)
-
tags/0.0.4/src/Persistence/Migrations/SchemaMigrator.php (added)
-
tags/0.0.4/src/Persistence/Operations (added)
-
tags/0.0.4/src/Persistence/Operations/OperationLogRepository.php (added)
-
tags/0.0.4/src/Persistence/Operations/OperationRecord.php (added)
-
tags/0.0.4/src/Persistence/TableNames.php (added)
-
tags/0.0.4/src/Persistence/WorkingState (added)
-
tags/0.0.4/src/Persistence/WorkingState/WorkingStateRecord.php (added)
-
tags/0.0.4/src/Persistence/WorkingState/WorkingStateRepository.php (added)
-
tags/0.0.4/src/Plugin (added)
-
tags/0.0.4/src/Plugin/Autoloader.php (added)
-
tags/0.0.4/src/Plugin/Plugin.php (added)
-
tags/0.0.4/src/Provider (added)
-
tags/0.0.4/src/Provider/CreateRemoteCommitRequest.php (added)
-
tags/0.0.4/src/Provider/Exception (added)
-
tags/0.0.4/src/Provider/Exception/ProviderException.php (added)
-
tags/0.0.4/src/Provider/Exception/ProviderOperationNotImplementedException.php (added)
-
tags/0.0.4/src/Provider/Exception/UnsupportedProviderException.php (added)
-
tags/0.0.4/src/Provider/GitHub (added)
-
tags/0.0.4/src/Provider/GitHub/GitHubProvider.php (added)
-
tags/0.0.4/src/Provider/GitProviderFactory.php (added)
-
tags/0.0.4/src/Provider/GitProviderFactoryInterface.php (added)
-
tags/0.0.4/src/Provider/GitProviderInterface.php (added)
-
tags/0.0.4/src/Provider/GitRemoteConfig.php (added)
-
tags/0.0.4/src/Provider/Http (added)
-
tags/0.0.4/src/Provider/Http/HttpRequest.php (added)
-
tags/0.0.4/src/Provider/Http/HttpResponse.php (added)
-
tags/0.0.4/src/Provider/Http/HttpTransportInterface.php (added)
-
tags/0.0.4/src/Provider/Http/WordPressHttpTransport.php (added)
-
tags/0.0.4/src/Provider/ProviderCapabilities.php (added)
-
tags/0.0.4/src/Provider/ProviderConnectionResult.php (added)
-
tags/0.0.4/src/Provider/ProviderValidationResult.php (added)
-
tags/0.0.4/src/Provider/RemoteBlob.php (added)
-
tags/0.0.4/src/Provider/RemoteCommit.php (added)
-
tags/0.0.4/src/Provider/RemoteRef.php (added)
-
tags/0.0.4/src/Provider/RemoteTree.php (added)
-
tags/0.0.4/src/Provider/UpdateRefResult.php (added)
-
tags/0.0.4/src/Provider/UpdateRemoteRefRequest.php (added)
-
tags/0.0.4/src/Settings (added)
-
tags/0.0.4/src/Settings/PushPullSettings.php (added)
-
tags/0.0.4/src/Settings/SettingsRegistrar.php (added)
-
tags/0.0.4/src/Settings/SettingsRepository.php (added)
-
tags/0.0.4/src/Support (added)
-
tags/0.0.4/src/Support/Capabilities.php (added)
-
tags/0.0.4/src/Support/Json (added)
-
tags/0.0.4/src/Support/Json/CanonicalJson.php (added)
-
tags/0.0.4/src/Support/Operations (added)
-
tags/0.0.4/src/Support/Operations/ConcurrentOperationException.php (added)
-
tags/0.0.4/src/Support/Operations/OperationExecutor.php (added)
-
tags/0.0.4/src/Support/Operations/OperationLock.php (added)
-
tags/0.0.4/src/Support/Operations/OperationLockService.php (added)
-
tags/0.0.4/vendor (added)
-
tags/0.0.4/vendor/autoload.php (added)
-
tags/0.0.4/vendor/composer (added)
-
tags/0.0.4/vendor/composer/ClassLoader.php (added)
-
tags/0.0.4/vendor/composer/InstalledVersions.php (added)
-
tags/0.0.4/vendor/composer/LICENSE (added)
-
tags/0.0.4/vendor/composer/autoload_classmap.php (added)
-
tags/0.0.4/vendor/composer/autoload_namespaces.php (added)
-
tags/0.0.4/vendor/composer/autoload_psr4.php (added)
-
tags/0.0.4/vendor/composer/autoload_real.php (added)
-
tags/0.0.4/vendor/composer/autoload_static.php (added)
-
tags/0.0.4/vendor/composer/installed.json (added)
-
tags/0.0.4/vendor/composer/installed.php (added)
-
tags/0.0.4/vendor/composer/platform_check.php (added)
-
trunk/README.md (modified) (2 diffs)
-
trunk/composer.json (modified) (1 diff)
-
trunk/pushpull.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/Admin/SettingsPage.php (modified) (8 diffs)
-
trunk/src/Domain/Sync/InitializeRemoteRepositoryResult.php (added)
-
trunk/src/Domain/Sync/RemoteRepositoryInitializer.php (added)
-
trunk/src/Plugin/Plugin.php (modified) (4 diffs)
-
trunk/src/Provider/GitHub/GitHubProvider.php (modified) (3 diffs)
-
trunk/src/Provider/GitProviderInterface.php (modified) (1 diff)
-
trunk/src/Provider/ProviderConnectionResult.php (modified) (1 diff)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pushpull/trunk/README.md
r3490393 r3490948 6 6 Tested up to: 6.9 7 7 Requires PHP: 8.1 8 Stable tag: 0.0. 38 Stable tag: 0.0.4 9 9 License: GPLv2 10 10 License URI: [http://www.gnu.org/licenses/gpl-2.0.html](http://www.gnu.org/licenses/gpl-2.0.html) 11 11 12 12 Git-backed content workflows for selected WordPress content domains. 13 14 > This is a beta plugin. It is still under active development, has limited functionality, and currently supports only a narrow subset of the intended PushPull feature set. 13 15 14 16 ## Description … … 97 99 7. Save the settings 98 100 101 ### Empty repositories 102 103 If the configured GitHub repository exists but has no commits yet, `Test connection` will report that the repository is reachable but empty. 104 105 In that case, click `Initialize remote repository`. PushPull will: 106 107 1. create the first commit on the configured branch 108 2. fetch that initial commit into the local remote-tracking ref 109 3. make the repository ready for normal commit, fetch, merge, apply, and push workflows 110 111 You no longer need to create the first commit manually on GitHub before using PushPull. 112 99 113 ## Workflow 100 114 -
pushpull/trunk/composer.json
r3490393 r3490948 29 29 "phpstan": "phpstan analyse --configuration=phpstan.neon.dist --no-progress --debug --memory-limit=1G", 30 30 "bump-version": "sh bin/bump-version.sh", 31 "sync-public-github": "sh bin/sync-public-github.sh", 31 32 "pcp": "sh bin/run-pcp.sh", 32 33 "package": "sh bin/package-plugin.sh", -
pushpull/trunk/pushpull.php
r3490393 r3490948 5 5 * Plugin URI: https://github.com/creativemoods/pushpull 6 6 * Description: Git-backed content workflows for selected WordPress content domains. 7 * Version: 0.0. 37 * Version: 0.0.4 8 8 * Requires at least: 6.0 9 9 * Requires PHP: 8.1 … … 23 23 define('PUSHPULL_PLUGIN_DIR', plugin_dir_path(__FILE__)); 24 24 define('PUSHPULL_PLUGIN_URL', plugin_dir_url(__FILE__)); 25 define('PUSHPULL_VERSION', '0.0. 3');25 define('PUSHPULL_VERSION', '0.0.4'); 26 26 27 27 if (is_readable(PUSHPULL_PLUGIN_DIR . 'vendor/autoload.php')) { -
pushpull/trunk/readme.txt
r3490393 r3490948 5 5 Tested up to: 6.9 6 6 Requires PHP: 8.1 7 Stable tag: 0.0. 37 Stable tag: 0.0.4 8 8 License: GPLv2 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html 10 10 11 11 Git-backed content workflows for selected WordPress content domains. 12 13 = Beta notice = 14 15 This is a beta plugin. It is still under active development, has limited functionality, and currently supports only a narrow subset of the intended PushPull feature set. 12 16 13 17 == Description == … … 81 85 7. Save the settings 82 86 87 = Empty repositories = 88 89 If the configured GitHub repository exists but has no commits yet, `Test connection` will report that the repository is reachable but empty. 90 91 In that case, click `Initialize remote repository`. PushPull will: 92 93 1. create the first commit on the configured branch 94 2. fetch that initial commit into the local remote-tracking ref 95 3. make the repository ready for normal commit, fetch, merge, apply, and push workflows 96 97 You do not need to create the first commit manually on GitHub before using PushPull. 98 83 99 == External services == 84 100 -
pushpull/trunk/src/Admin/SettingsPage.php
r3490393 r3490948 7 7 use PushPull\Persistence\LocalRepositoryResetService; 8 8 use PushPull\Persistence\Migrations\SchemaMigrator; 9 use PushPull\Domain\Sync\RemoteRepositoryInitializer; 9 10 use PushPull\Provider\Exception\ProviderException; 10 11 use PushPull\Provider\Exception\UnsupportedProviderException; … … 22 23 private const TEST_CONNECTION_ACTION = 'pushpull_test_connection'; 23 24 private const RESET_LOCAL_REPOSITORY_ACTION = 'pushpull_reset_local_repository'; 25 private const INITIALIZE_REMOTE_REPOSITORY_ACTION = 'pushpull_initialize_remote_repository'; 24 26 25 27 public function __construct( … … 27 29 private readonly GitProviderFactoryInterface $providerFactory, 28 30 private readonly LocalRepositoryResetService $localRepositoryResetService, 31 private readonly RemoteRepositoryInitializer $remoteRepositoryInitializer, 29 32 private readonly OperationExecutor $operationExecutor 30 33 ) { … … 105 108 echo '<div class="pushpull-button-grid">'; 106 109 $this->renderTestConnectionButton(); 110 if ($this->shouldOfferRemoteInitialization()) { 111 $this->renderInitializeRemoteButton(); 112 } 107 113 echo '</div>'; 108 114 echo '</div>'; … … 188 194 } 189 195 190 $message = sprintf( 191 'Connection successful for %s. Default branch: %s. Resolved branch: %s.', 192 $result->repositoryPath, 193 $result->defaultBranch ?? 'n/a', 194 $result->resolvedBranch ?? 'n/a' 195 ); 196 197 $this->redirectWithNotice('success', $message); 196 $message = $result->emptyRepository 197 ? sprintf( 198 'Connection successful for %s, but the repository is empty. Initialize branch %s to create the first commit and enable fetch and push.', 199 $result->repositoryPath, 200 $result->resolvedBranch ?? $settings->branch 201 ) 202 : sprintf( 203 'Connection successful for %s. Default branch: %s. Resolved branch: %s.', 204 $result->repositoryPath, 205 $result->defaultBranch ?? 'n/a', 206 $result->resolvedBranch ?? 'n/a' 207 ); 208 209 $this->redirectWithNotice($result->emptyRepository ? 'warning' : 'success', $message, $result->emptyRepository); 198 210 } 199 211 … … 220 232 } 221 233 234 public function handleInitializeRemoteRepository(): void 235 { 236 if (! current_user_can(Capabilities::MANAGE_PLUGIN)) { 237 wp_die(esc_html__('You do not have permission to manage PushPull.', 'pushpull')); 238 } 239 240 check_admin_referer(self::INITIALIZE_REMOTE_REPOSITORY_ACTION); 241 242 $settings = $this->settingsRepository->get(); 243 244 try { 245 $result = $this->operationExecutor->run( 246 'generateblocks_global_styles', 247 'initialize_remote_repository', 248 ['branch' => $settings->branch], 249 fn () => $this->remoteRepositoryInitializer->initialize('generateblocks_global_styles', $settings) 250 ); 251 } catch (\RuntimeException | ProviderException $exception) { 252 $message = $exception instanceof ProviderException ? $exception->debugSummary() : $exception->getMessage(); 253 $this->redirectWithNotice('error', $message); 254 } 255 256 $this->redirectWithNotice( 257 'success', 258 sprintf( 259 'Initialized remote branch %s with first commit %s and fetched it into %s.', 260 $result->branch, 261 $result->remoteCommitHash, 262 $result->remoteRefName 263 ) 264 ); 265 } 266 222 267 private function renderTestConnectionButton(): void 223 268 { … … 229 274 } 230 275 276 private function renderInitializeRemoteButton(): void 277 { 278 echo '<form method="post" action="' . esc_url(admin_url('admin-post.php')) . '" onsubmit="return window.confirm(\'Initialize the configured remote repository? PushPull will create the first commit on the configured branch so fetch and push can start working.\');">'; 279 echo '<input type="hidden" name="action" value="pushpull_initialize_remote_repository" />'; 280 wp_nonce_field(self::INITIALIZE_REMOTE_REPOSITORY_ACTION); 281 submit_button(__('Initialize remote repository', 'pushpull'), 'primary', 'submit', false); 282 echo '</form>'; 283 } 284 231 285 /** 232 286 * @return array{type: string, message: string}|null … … 244 298 245 299 return [ 246 'type' => $status === 'success' ? 'success': 'error',300 'type' => in_array($status, ['success', 'warning'], true) ? $status : 'error', 247 301 'message' => $message, 248 302 ]; 249 303 } 250 304 251 private function redirectWithNotice(string $status, string $message): never 252 { 253 $url = add_query_arg( 254 [ 255 'page' => self::MENU_SLUG, 256 'pushpull_settings_status' => $status, 257 'pushpull_settings_message' => $message, 258 ], 259 admin_url('admin.php') 260 ); 305 private function redirectWithNotice(string $status, string $message, bool $offerRemoteInitialization = false): never 306 { 307 $queryArgs = [ 308 'page' => self::MENU_SLUG, 309 'pushpull_settings_status' => $status, 310 'pushpull_settings_message' => $message, 311 ]; 312 313 if ($offerRemoteInitialization) { 314 $queryArgs['pushpull_offer_remote_initialization'] = '1'; 315 } 316 317 $url = add_query_arg($queryArgs, admin_url('admin.php')); 261 318 262 319 wp_safe_redirect($url); 263 320 exit; 264 321 } 322 323 private function shouldOfferRemoteInitialization(): bool 324 { 325 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only notice parameters from the redirect target. 326 return isset($_GET['pushpull_offer_remote_initialization']) && sanitize_key((string) $_GET['pushpull_offer_remote_initialization']) === '1'; 327 } 265 328 } -
pushpull/trunk/src/Plugin/Plugin.php
r3490393 r3490948 26 26 use PushPull\Domain\Repository\DatabaseLocalRepository; 27 27 use PushPull\Domain\Sync\GenerateBlocksRepositoryCommitter; 28 use PushPull\Domain\Sync\RemoteRepositoryInitializer; 28 29 use PushPull\Domain\Sync\LocalSyncService; 29 30 use PushPull\Persistence\Migrations\SchemaMigrator; … … 52 53 $localRepository = new DatabaseLocalRepository($wpdb); 53 54 $localRepositoryResetService = new LocalRepositoryResetService($wpdb); 55 $remoteRepositoryInitializer = new RemoteRepositoryInitializer($providerFactory, $localRepository); 54 56 $operationLogRepository = new OperationLogRepository($wpdb); 55 57 $operationExecutor = new OperationExecutor($operationLogRepository, new OperationLockService()); … … 93 95 ); 94 96 $settingsRegistrar = new SettingsRegistrar($settingsRepository); 95 $settingsPage = new SettingsPage($settingsRepository, $providerFactory, $localRepositoryResetService, $ operationExecutor);97 $settingsPage = new SettingsPage($settingsRepository, $providerFactory, $localRepositoryResetService, $remoteRepositoryInitializer, $operationExecutor); 96 98 $operationsPage = new OperationsPage($operationLogRepository); 97 99 $managedContentPage = new ManagedContentPage( … … 111 113 add_action('admin_post_pushpull_test_connection', [$settingsPage, 'handleTestConnection']); 112 114 add_action('admin_post_pushpull_reset_local_repository', [$settingsPage, 'handleResetLocalRepository']); 115 add_action('admin_post_pushpull_initialize_remote_repository', [$settingsPage, 'handleInitializeRemoteRepository']); 113 116 add_action('admin_post_pushpull_commit_generateblocks', [$managedContentPage, 'handleCommit']); 114 117 add_action('admin_post_pushpull_fetch_generateblocks', [$managedContentPage, 'handleFetch']); -
pushpull/trunk/src/Provider/GitHub/GitHubProvider.php
r3490393 r3490948 90 90 } 91 91 92 $this->getRef($config, 'refs/heads/' . $resolvedBranch); 92 try { 93 $this->getRef($config, 'refs/heads/' . $resolvedBranch); 94 } catch (ProviderException $exception) { 95 if ($exception->category !== ProviderException::EMPTY_REPOSITORY) { 96 throw $exception; 97 } 98 99 return new ProviderConnectionResult( 100 true, 101 $this->repositoryPath($config), 102 $defaultBranch, 103 $resolvedBranch, 104 true, 105 ['GitHub repository is reachable but empty and needs an initial commit before fetch or push can run.'] 106 ); 107 } 93 108 94 109 return new ProviderConnectionResult( … … 97 112 $defaultBranch, 98 113 $resolvedBranch, 114 false, 99 115 ['GitHub repository metadata and target branch are accessible.'] 100 116 ); … … 272 288 (string) ($payload['object']['sha'] ?? $request->newCommitHash) 273 289 ); 290 } 291 292 public function initializeEmptyRepository(GitRemoteConfig $config, string $commitMessage): RemoteRef 293 { 294 $path = '.pushpull-initialized'; 295 $payload = $this->requestJson( 296 'PUT', 297 $config, 298 '/repos/' . $this->repositoryPath($config) . '/contents/' . rawurlencode($path), 299 'initialize_empty_repository', 300 [], 301 [ 302 'message' => $commitMessage, 303 'content' => base64_encode("Initialized by PushPull.\n"), 304 'branch' => $config->branch, 305 ] 306 ); 307 308 $commitHash = (string) ($payload['commit']['sha'] ?? ''); 309 310 if ($commitHash === '') { 311 throw new ProviderException( 312 ProviderException::UNSUPPORTED_RESPONSE, 313 'GitHub did not return a commit hash for repository initialization.' 314 ); 315 } 316 317 return new RemoteRef('refs/heads/' . $config->branch, $commitHash); 274 318 } 275 319 -
pushpull/trunk/src/Provider/GitProviderInterface.php
r3490393 r3490948 34 34 35 35 public function updateRef(GitRemoteConfig $config, UpdateRemoteRefRequest $request): UpdateRefResult; 36 37 public function initializeEmptyRepository(GitRemoteConfig $config, string $commitMessage): RemoteRef; 36 38 } -
pushpull/trunk/src/Provider/ProviderConnectionResult.php
r3490393 r3490948 15 15 public readonly ?string $defaultBranch, 16 16 public readonly ?string $resolvedBranch, 17 public readonly bool $emptyRepository = false, 17 18 public readonly array $messages = [] 18 19 ) { -
pushpull/trunk/vendor/composer/installed.php
r3490393 r3490948 2 2 'root' => array( 3 3 'name' => 'creativemoods/pushpull', 4 'pretty_version' => 'v0.0. 3',5 'version' => '0.0. 3.0',6 'reference' => ' a63605c9cd69dc3a520969ac80a611125fea414f',4 'pretty_version' => 'v0.0.4', 5 'version' => '0.0.4.0', 6 'reference' => 'cc2d17267d81de536a0c47cf5c7a661bfce6a958', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'creativemoods/pushpull' => array( 14 'pretty_version' => 'v0.0. 3',15 'version' => '0.0. 3.0',16 'reference' => ' a63605c9cd69dc3a520969ac80a611125fea414f',14 'pretty_version' => 'v0.0.4', 15 'version' => '0.0.4.0', 16 'reference' => 'cc2d17267d81de536a0c47cf5c7a661bfce6a958', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.