Add provider-aware helpers; mark legacy wrappers deprecated
This commit is contained in:
@@ -41,6 +41,67 @@ function projects_portfolio_settings() {
|
|||||||
return $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
|
* GitHub API call for owner data
|
||||||
*
|
*
|
||||||
@@ -50,6 +111,8 @@ function projects_portfolio_settings() {
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
function projects_portfolio_github_owner( $owner_name = NULL ) {
|
function projects_portfolio_github_owner( $owner_name = NULL ) {
|
||||||
|
_deprecated_function( __FUNCTION__, '1.1.0', 'projects_portfolio_get_owner( $post_id )' );
|
||||||
|
|
||||||
if ( ! $owner_name ) { return; }
|
if ( ! $owner_name ) { return; }
|
||||||
|
|
||||||
$owner = 'https://api.github.com/users/' . $owner_name;
|
$owner = 'https://api.github.com/users/' . $owner_name;
|
||||||
@@ -87,6 +150,8 @@ function projects_portfolio_github_owner( $owner_name = NULL ) {
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
function projects_portfolio_get_github_release_url( $github_url ) {
|
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_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';
|
$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.
|
* @return array|null Associative array of GitHub repo data on success, or null on failure.
|
||||||
*/
|
*/
|
||||||
function projects_portfolio_get_github_data( $github_url ) {
|
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 ) ) {
|
if ( empty( $github_url ) ) {
|
||||||
error_log( 'GitHub URL is empty.' );
|
error_log( 'GitHub URL is empty.' );
|
||||||
return null;
|
return null;
|
||||||
@@ -186,6 +253,8 @@ function projects_portfolio_get_github_data( $github_url ) {
|
|||||||
* @return string The version number or 'Unknown'.
|
* @return string The version number or 'Unknown'.
|
||||||
*/
|
*/
|
||||||
function projects_portfolio_get_version_from_github( $github_url ) {
|
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 ) ) {
|
if ( empty( $github_url ) ) {
|
||||||
return 'Unknown';
|
return 'Unknown';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user