Import_Processor
Import Processor class.
Namespace: WebberZone\Knowledge_Base\Pro\GitHub
Since: 3.1.0
Source: includes/github/class-import-processor.php line 23
Methods
__construct()
Constructor.
Since: 3.1.0
Line: 50
public function __construct( API $api );
| Type | Name | Description |
|---|---|---|
API | $api | GitHub API instance. |
process_file()
Process a single markdown file from a GitHub repo.
Since: 3.1.0
Line: 81
public function process_file( string $repo_owner, string $repo_name, string $file_path, int $product_id, string $ref = ..., array $mapping = ..., ?array $post_map = ... ): array;
| Type | Name | Description |
|---|---|---|
string | $repo_owner | GitHub repository owner. |
string | $repo_name | GitHub repository name. |
string | $file_path | Path to the .md file within the repo. |
int | $product_id | Fallback product term ID. |
string | $ref | Optional branch, tag, or SHA to fetch from. |
array | $mapping | Full repository mapping array. |
array | $post_map | Optional precomputed file_path => [post_id, sha] map (avoids a per-file meta query). |
Returns: array — string, post_id: int, title: string, slug: string, error?: string, warning?: string}
handle_renamed_file()
Handle a renamed file — update path meta and re-process.
Since: 3.1.0
Line: 350
public function handle_renamed_file( string $old_path, string $new_path, string $repo_owner, string $repo_name, array $mapping = ..., ?array $post_map = ... ): array;
| Type | Name | Description |
|---|---|---|
string | $old_path | Previous file path within the repo. |
string | $new_path | New file path within the repo. |
string | $repo_owner | Repository owner. |
string | $repo_name | Repository name. |
array | $mapping | Full repository mapping array. |
array|null | $post_map | Optional precomputed file_path => [post_id, sha] map. |
Returns: array — string, post_id: int, title: string, slug: string, error?: string}
get_file_list()
Get the list of markdown files for a repository mapping.
Since: 3.1.0
Line: 394
public function get_file_list( string $repo_owner, string $repo_name, array $mapping, string $ref = ... ): array|\WP_Error;
| Type | Name | Description |
|---|---|---|
string | $repo_owner | Repository owner. |
string | $repo_name | Repository name. |
array | $mapping | Repository mapping array. |
string | $ref | Branch, tag, or SHA. |
Returns: array|\WP_Error — Array of [files, sha_map] on success, WP_Error on failure.
get_pre_skip_info()
Check if a file’s tree SHA matches the stored SHA for an existing post.
Returns existing post data if unchanged, null if the file should be processed.
Since: 3.1.0
Line: 411
public function get_pre_skip_info( string $repo_owner, string $repo_name, string $file_path, string $tree_sha ): ?array;
| Type | Name | Description |
|---|---|---|
string | $repo_owner | Repository owner. |
string | $repo_name | Repository name. |
string | $file_path | Path to the .md file. |
string | $tree_sha | SHA from the Git tree. |
Returns: ?array — Existing post info array or null if should process.
build_post_map()
Build a map of file_path → post data for all imported posts in a repo.
Uses a single JOIN query instead of N get_post_meta() calls. Public so batch callers (e.g. the webhook executor) can build the map once and pass it into process_file()/handle_*_file() to avoid a per-file meta query.
Since: 3.1.0
Line: 505
public function build_post_map( string $repo_owner, string $repo_name ): array;
| Type | Name | Description |
|---|---|---|
string | $repo_owner | Repository owner. |
string | $repo_name | Repository name. |
Returns: array — array{post_id: int, sha: string}>
handle_deleted_file()
Handle a deleted file — set its article to draft or permanently delete.
Since: 3.1.0
Line: 552
public function handle_deleted_file( string $repo_owner, string $repo_name, string $file_path, array $mapping = ..., ?array $post_map = ... ): array;
| Type | Name | Description |
|---|---|---|
string | $repo_owner | Repository owner. |
string | $repo_name | Repository name. |
string | $file_path | Path to the .md file that was removed. |
array | $mapping | Full repository mapping array. |
array|null | $post_map | Optional precomputed file_path => [post_id, sha] map. |
Returns: array — string, post_id: int, title: string, slug: string}
import_repository()
Import all Markdown files from a mapped repository folder.
Since: 3.1.0
Line: 599
public function import_repository( string $repo_owner, string $repo_name, array $mapping, string $ref = ... ): array;
| Type | Name | Description |
|---|---|---|
string | $repo_owner | Repository owner. |
string | $repo_name | Repository name. |
array | $mapping | Full repository mapping array (must include folder_path, product_id). |
string | $ref | Branch, tag, or SHA to import from. |
Returns: array — int, created: int, updated: int, errors: array, results: array}
assign_taxonomies() static
Assign product, section, and tag taxonomies to a post.
Since: 3.1.0
Line: 797
static public function assign_taxonomies( int $post_id, array $fm, int $product_id ): void;
| Type | Name | Description |
|---|---|---|
int | $post_id | The post ID. |
array | $fm | Parsed frontmatter. |
int | $product_id | Fallback product term ID. |
Returns: void
sideload_images()
Sideload images from GitHub raw URLs into the Media Library.
Since: 3.1.0
Line: 941
public function sideload_images( string $html, string $repo_owner, string $repo_name, string $ref, string $file_path ): string;
| Type | Name | Description |
|---|---|---|
string | $html | Post content HTML. |
string | $repo_owner | Repository owner. |
string | $repo_name | Repository name. |
string | $ref | Branch, tag, or SHA. |
string | $file_path | Importing file’s repo-relative path (for resolving relative src). |
Returns: string — HTML with image src attributes replaced with sideloaded URLs.