{"id":28404410,"url":"https://github.com/gabydevdev/dd-wp-github-updates","last_synced_at":"2026-05-08T04:44:12.653Z","repository":{"id":296105274,"uuid":"992309357","full_name":"gabydevdev/dd-wp-github-updates","owner":"gabydevdev","description":"Update and install WordPress themes or plugins from your own private GitHub repositories.","archived":false,"fork":false,"pushed_at":"2025-05-29T00:41:27.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-08T18:03:53.945Z","etag":null,"topics":["github","github-api","repositories","wordpress","wordpress-development","wordpress-plugin"],"latest_commit_sha":null,"homepage":"https://github.com/gabydevdev/dd-wp-github-updates/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabydevdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-29T00:29:00.000Z","updated_at":"2025-05-29T00:39:09.000Z","dependencies_parsed_at":"2025-05-29T01:35:30.256Z","dependency_job_id":"c733470f-9b78-4fbb-af2c-31a46f45298a","html_url":"https://github.com/gabydevdev/dd-wp-github-updates","commit_stats":null,"previous_names":["gabydevdev/dd-wp-github-updates"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gabydevdev/dd-wp-github-updates","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabydevdev%2Fdd-wp-github-updates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabydevdev%2Fdd-wp-github-updates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabydevdev%2Fdd-wp-github-updates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabydevdev%2Fdd-wp-github-updates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabydevdev","download_url":"https://codeload.github.com/gabydevdev/dd-wp-github-updates/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabydevdev%2Fdd-wp-github-updates/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32767589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T02:36:36.067Z","status":"ssl_error","status_checked_at":"2026-05-08T02:36:07.210Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","github-api","repositories","wordpress","wordpress-development","wordpress-plugin"],"created_at":"2025-06-01T20:07:28.801Z","updated_at":"2026-05-08T04:44:12.648Z","avatar_url":"https://github.com/gabydevdev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DD WP GitHub Updates\n\nA WordPress plugin that enables automatic updates and installations of themes and plugins directly from GitHub repositories, including private repositories.\n\n## Features\n\n- 🔄 **Automatic Updates**: Keep your GitHub-hosted themes and plugins up-to-date automatically\n- 🔒 **Private Repository Support**: Works with private GitHub repositories using personal access tokens\n- 📦 **Direct Installation**: Install themes and plugins directly from GitHub without manual downloads\n- 🛡️ **Secure Authentication**: Uses GitHub personal access tokens for secure API access\n- 🎯 **Easy Configuration**: Simple admin interface for managing repositories\n- 📊 **Connection Testing**: Built-in tools to verify GitHub API connectivity\n- 🔍 **Repository Search**: Search and preview GitHub repositories before installation\n\n## Requirements\n\n- WordPress 5.2 or higher\n- PHP 7.2 or higher\n- GitHub personal access token (for private repositories)\n- `wp_remote_get()` function enabled (WordPress HTTP API)\n\n## Installation\n\n### Method 1: Manual Installation\n\n1. Download the plugin files\n2. Upload the `dd-wp-github-updates` folder to your `/wp-content/plugins/` directory\n3. Activate the plugin through the 'Plugins' menu in WordPress\n4. Navigate to **GitHub Updates** in your admin menu to configure\n\n### Method 2: Git Clone\n\n```bash\ncd /path/to/wordpress/wp-content/plugins/\ngit clone https://github.com/gabydevdev/dd-wp-github-updates.git\n```\n\n## Configuration\n\n### 1. GitHub Personal Access Token\n\nTo use this plugin, you'll need a GitHub personal access token:\n\n1. Go to [GitHub Settings \u003e Developer settings \u003e Personal access tokens](https://github.com/settings/tokens)\n2. Click \"Generate new token (classic)\"\n3. Give it a descriptive name (e.g., \"WordPress GitHub Updates\")\n4. Select the following scopes:\n   - **`repo`** - Full control of private repositories (required)\n   - **`read:packages`** - Read packages (optional, only if using GitHub packages)\n5. Click \"Generate token\"\n6. Copy the token immediately (you won't be able to see it again)\n\n### 2. Plugin Configuration\n\n1. In WordPress admin, go to **GitHub Updates**\n2. Paste your GitHub token in the \"Personal Access Token\" field\n3. Click \"Test Connection\" to verify the token works\n4. Save the settings\n\n## Usage\n\n### Adding Repositories for Updates\n\n1. Go to **GitHub Updates** in your admin menu\n2. Scroll down to \"Add Repository\"\n3. Fill in the repository details:\n   - **Type**: Theme or Plugin\n   - **Owner**: GitHub username or organization\n   - **Repository Name**: The repository name\n   - **Theme Slug**: (for themes) The directory name of your theme\n   - **Plugin File**: (for plugins) The main plugin file path (e.g., `my-plugin/my-plugin.php`)\n\n### Installing from GitHub\n\n1. Go to **GitHub Updates \u003e Install from GitHub**\n2. Enter the repository owner and name\n3. Click \"Search Repository\" to preview the repository\n4. Choose installation type (Theme or Plugin)\n5. Configure installation options:\n   - Custom slug/directory name\n   - Activate after installation\n   - Add to updater list for future updates\n6. Click \"Install Now\"\n\n## Release Management\n\n### Creating Releases\n\nThe plugin works best with GitHub releases:\n\n1. Create a new release in your GitHub repository\n2. Use semantic versioning (e.g., `v1.0.0`, `v1.2.3`)\n3. The plugin will automatically detect new releases\n4. WordPress will show update notifications when new versions are available\n\n### Version Detection\n\nThe plugin checks for updates by:\n1. Comparing the version in your theme's `style.css` or plugin's main PHP file\n2. Against the latest GitHub release tag\n3. Triggering WordPress update notifications when newer versions are found\n\n## API Reference\n\n### Hooks and Filters\n\n#### Actions\n\n- `dd_github_updates_before_install` - Fired before installation begins\n- `dd_github_updates_after_install` - Fired after successful installation\n\n#### Filters\n\n- `dd_github_updates_download_timeout` - Modify download timeout (default: 60 seconds)\n- `dd_github_updates_api_timeout` - Modify API request timeout (default: 10 seconds)\n\n### Programmatic Usage\n\n```php\n// Get the API instance\n$api = new DD_GitHub_API();\n\n// Test connection\n$response = $api-\u003etest_connection();\n\n// Get latest release\n$release = $api-\u003eget_latest_release('owner', 'repo-name');\n\n// Install a package programmatically\n$installer = new DD_GitHub_Installer();\n$result = $installer-\u003einstall_github_package(\n    'plugin', // type\n    'owner',  // GitHub username\n    'repo-name', // repository name\n    '', // download URL (optional)\n    'custom-slug', // custom slug (optional)\n    true // activate after install\n);\n```\n\n## Troubleshooting\n\n### Common Issues\n\n#### \"Connection failed\" Error\n- Verify your GitHub token is correct\n- Ensure the token has `repo` scope for private repositories\n- Check if your server can make outbound HTTPS requests\n\n#### \"Repository not found\" Error\n- Verify the repository owner and name are correct\n- Ensure your token has access to the repository (for private repos)\n- Check if the repository exists and is accessible\n\n#### \"Invalid ZIP archive\" Error\n- Ensure your repository has releases or can be downloaded as ZIP\n- Check if the repository contains valid theme/plugin files\n- Verify the repository structure matches WordPress requirements\n\n#### Installation Fails\n- Check WordPress file permissions\n- Ensure the destination directory is writable\n- Verify the repository contains valid WordPress theme/plugin structure\n\n### Debug Logging\n\nEnable WordPress debug logging to see detailed error messages:\n\n```php\n// Add to wp-config.php\ndefine('WP_DEBUG', true);\ndefine('WP_DEBUG_LOG', true);\ndefine('WP_DEBUG_DISPLAY', false);\n```\n\nCheck `/wp-content/debug.log` for detailed error messages.\n\n### Server Requirements\n\nEnsure your server supports:\n- `wp_remote_get()` function\n- Outbound HTTPS connections to `api.github.com`\n- ZIP file extraction (`unzip_file()` function)\n- Adequate memory limit for large repositories\n\n## Security Considerations\n\n- **Token Security**: Store GitHub tokens securely and never commit them to version control\n- **Repository Access**: Only add repositories you trust to the updater\n- **File Permissions**: Ensure proper WordPress file permissions are maintained\n- **SSL Verification**: The plugin enforces SSL certificate verification for all GitHub API requests\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/gabydevdev/dd-wp-github-updates.git\ncd dd-wp-github-updates\n\n# Set up development environment\n# Follow WordPress plugin development best practices\n```\n\n## Changelog\n\n### Version 1.0.0\n- Initial release\n- GitHub API integration\n- Automatic updates for themes and plugins\n- Private repository support\n- Direct installation from GitHub\n- Admin interface for repository management\n\n## License\n\nThis plugin is licensed under the GPL v2 or later.\n\n```\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n```\n\n## Support\n\n- **Documentation**: Check this README and inline code comments\n- **Issues**: Report bugs on the GitHub repository\n\n---\n\n## Quick Start Guide\n\n1. **Install** the plugin and activate it\n2. **Get a GitHub token** with `repo` scope\n3. **Configure** the token in WordPress admin\n4. **Add repositories** you want to manage\n5. **Install new themes/plugins** directly from GitHub\n6. **Enjoy automatic updates** from your GitHub repositories!\n\nFor detailed instructions, see the sections above.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabydevdev%2Fdd-wp-github-updates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabydevdev%2Fdd-wp-github-updates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabydevdev%2Fdd-wp-github-updates/lists"}