Add provider-aware helpers; mark legacy wrappers deprecated

This commit is contained in:
Keith Solomon
2026-08-09 23:06:24 -05:00
parent e3b27e8974
commit 40793cd4bb
+69
View File
@@ -41,6 +41,67 @@ function projects_portfolio_settings() {
return $settings;
}
/**
* Fetch normalized repository data for a project.
*
* @since 1.1.0
* @param int $post_id
* @return array|null
*/
function projects_portfolio_get_repo_data( int $post_id ): ?array {
return projects_portfolio_get_provider( $post_id )->get_repo_data();
}
/**
* Resolve the latest release ZIP download URL for a project.
*
* @since 1.1.0
* @param int $post_id
* @return string|null
*/
function projects_portfolio_get_release_url( int $post_id ): ?string {
return projects_portfolio_get_provider( $post_id )->get_release_url();
}
/**
* Fetch the latest tag name for a project.
*
* @since 1.1.0
* @param int $post_id
* @return string
*/
function projects_portfolio_get_version( int $post_id ): string {
return projects_portfolio_get_provider( $post_id )->get_latest_version();
}
/**
* Fetch the repo owner profile data for a project.
*
* @since 1.1.0
* @param int $post_id
* @return array|null
*/
function projects_portfolio_get_owner( int $post_id ): ?array {
$provider = projects_portfolio_get_provider( $post_id );
$repo = $provider->get_repo_data();
$login = $repo['owner']['login'] ?? '';
if ( '' === $login ) {
return null;
}
return $provider->get_owner_data( $login );
}
/**
* Public browse URL for the project's repo.
*
* @since 1.1.0
* @param int $post_id
* @return string
*/
function projects_portfolio_get_repo_browse_url( int $post_id ): string {
return projects_portfolio_get_provider( $post_id )->get_repo_browse_url();
}
/**
* GitHub API call for owner data
*
@@ -50,6 +111,8 @@ function projects_portfolio_settings() {
* @return mixed
*/
function projects_portfolio_github_owner( $owner_name = NULL ) {
_deprecated_function( __FUNCTION__, '1.1.0', 'projects_portfolio_get_owner( $post_id )' );
if ( ! $owner_name ) { return; }
$owner = 'https://api.github.com/users/' . $owner_name;
@@ -87,6 +150,8 @@ function projects_portfolio_github_owner( $owner_name = NULL ) {
* @return mixed
*/
function projects_portfolio_get_github_release_url( $github_url ) {
_deprecated_function( __FUNCTION__, '1.1.0', 'projects_portfolio_get_release_url( $post_id )' );
$api_token = get_option( 'projects_portfolio_github_api_token', '' );
$api_url = str_replace( 'https://github.com/', 'https://api.github.com/repos/', rtrim( $github_url, '/' ) ) . '/releases/latest';
@@ -126,6 +191,8 @@ function projects_portfolio_get_github_release_url( $github_url ) {
* @return array|null Associative array of GitHub repo data on success, or null on failure.
*/
function projects_portfolio_get_github_data( $github_url ) {
_deprecated_function( __FUNCTION__, '1.1.0', 'projects_portfolio_get_repo_data( $post_id )' );
if ( empty( $github_url ) ) {
error_log( 'GitHub URL is empty.' );
return null;
@@ -186,6 +253,8 @@ function projects_portfolio_get_github_data( $github_url ) {
* @return string The version number or 'Unknown'.
*/
function projects_portfolio_get_version_from_github( $github_url ) {
_deprecated_function( __FUNCTION__, '1.1.0', 'projects_portfolio_get_version( $post_id )' );
if ( empty( $github_url ) ) {
return 'Unknown';
}