Add REST API endpoints for repo folder listing and page pushing
- Implemented `GET /repo-folders` to list available sub-folders in the configured repository. - Added `POST /push` to push a single page to the repository. - Introduced `POST /push-all` to push all synced pages back to the repository. - Enhanced `oribi_sync_rest_sync` to push local changes after pulling, except during dry runs. - Created `oribi_sync_push_page` and `oribi_sync_push_all` functions to handle page pushing logic. - Updated post meta on successful pushes to track last push time and SHA. - Added logging for push actions and errors. Enhance sync engine to support theme file synchronization - Added functionality to auto-apply changed theme files from the repository's theme directory. - Created `oribi_sync_apply_theme_files` to handle theme file updates during sync. - Ensured the existence of a minimal theme structure in the `ots-theme` directory. Refactor uninstall process to clean up additional post meta - Updated `uninstall.php` to remove new post meta related to push operations. - Ensured comprehensive cleanup of options and metadata upon plugin uninstallation. Introduce push client for handling page pushes to Gitea - Created `push-client.php` to encapsulate logic for pushing pages back to the Git repository. - Implemented conflict resolution by creating branches and opening pull requests when necessary. - Added helper functions for authenticated API requests to Gitea.
This commit is contained in:
@@ -16,6 +16,7 @@ delete_option( 'oribi_sync_last_run' );
|
||||
delete_option( 'oribi_sync_log' );
|
||||
delete_option( 'oribi_sync_webhook_secret' );
|
||||
delete_option( 'oribi_sync_theme_applied' );
|
||||
delete_option( 'oribi_sync_push_log' );
|
||||
|
||||
// Remove sync metadata from posts
|
||||
$posts = get_posts( [
|
||||
@@ -28,8 +29,11 @@ $posts = get_posts( [
|
||||
|
||||
foreach ( $posts as $post_id ) {
|
||||
delete_post_meta( $post_id, '_oribi_sync_checksum' );
|
||||
delete_post_meta( $post_id, '_oribi_sync_git_sha' );
|
||||
delete_post_meta( $post_id, '_oribi_sync_source' );
|
||||
delete_post_meta( $post_id, '_oribi_sync_last_run' );
|
||||
delete_post_meta( $post_id, '_oribi_sync_last_push' );
|
||||
delete_post_meta( $post_id, '_oribi_sync_pr_url' );
|
||||
}
|
||||
|
||||
// Clear any scheduled cron
|
||||
|
||||
Reference in New Issue
Block a user