{"id":13810395,"url":"https://github.com/rayrutjes/wp-plugin-git-svn-sync","last_synced_at":"2025-10-31T08:43:51.880Z","repository":{"id":20877800,"uuid":"91167596","full_name":"rayrutjes/wp-plugin-git-svn-sync","owner":"rayrutjes","description":"☄️ Zero config synchronizing of Git repository with SVN for publishing WordPress plugins.","archived":false,"fork":false,"pushed_at":"2022-05-08T18:27:37.000Z","size":17,"stargazers_count":83,"open_issues_count":8,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-14T10:33:12.936Z","etag":null,"topics":["bash","git","script","svn","synchronization","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/rayrutjes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-13T10:48:44.000Z","updated_at":"2024-08-14T07:45:56.000Z","dependencies_parsed_at":"2022-08-08T16:30:17.178Z","dependency_job_id":null,"html_url":"https://github.com/rayrutjes/wp-plugin-git-svn-sync","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/rayrutjes/wp-plugin-git-svn-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayrutjes%2Fwp-plugin-git-svn-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayrutjes%2Fwp-plugin-git-svn-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayrutjes%2Fwp-plugin-git-svn-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayrutjes%2Fwp-plugin-git-svn-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rayrutjes","download_url":"https://codeload.github.com/rayrutjes/wp-plugin-git-svn-sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayrutjes%2Fwp-plugin-git-svn-sync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262938253,"owners_count":23387767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bash","git","script","svn","synchronization","wordpress","wordpress-plugin"],"created_at":"2024-08-04T02:00:52.032Z","updated_at":"2025-10-31T08:43:51.802Z","avatar_url":"https://github.com/rayrutjes.png","language":"Shell","funding_links":[],"categories":["WordPress Plugins","Shell"],"sub_categories":[],"readme":"## About this script\n\nThis opinionated script is about forgetting that you have to deal with SVN for publishing\nyour WordPress plugin to the [official repository](https://wordpress.org/).\n\nIt handles:\n\n- Syncing your assets (only updates them if needed)\n- Syncing your tags (only pushes tags that do not yet exist)\n- Syncing your trunk (only updates if changes are detected)\n\n## Basic usage\n\n```bash\n./sync.sh \\\n\t--plugin-name=\"search-by-algolia-instant-relevant-results\" \\\n\t--git-repo=\"https://github.com/algolia/algoliasearch-wordpress\" \\\n\t--svn-user=algolia\n```\n\nThis will sync your assets, push all tags that do not exist yet and update the trunk.\n\n## Custom Assets Directory\n\nBy default, the script expects your assets to be in a directory named\n`.wordpress.org` at the root of your Git repository.\n\nYou can customize this by providing a relative path to your assets directory:\n\n```bash\n./sync.sh \\\n\t--plugin-name=\"search-by-algolia-instant-relevant-results\" \\\n\t--git-repo=\"https://github.com/algolia/algoliasearch-wordpress\" \\\n\t--svn-user=algolia \\\n\t--assets-dir=\"screenshots\"\n```\n\nHere the script will push the assets from `your-git-root/screenshots` directory.\n\nNote that the script will also always try to remove the assets-dir from the trunk\nand tags releases.\n\n## Exclude Files\n\nTo exclude files from synchronization, you just need to drop a file named\n`.distignore` in the root of your Git repository.\n\nThis file should be formatted just like a .gitignore file.\n\nCheckout an [example of `.distignore` file here](https://github.com/wp-cli/sample-plugin/blob/master/.distignore).\n\nThe script will then expand every line and exclude matching files from synchronization.\n\n## Requirements\n\n1. Your plugin must have been accepted, and you should have the plugin slug name.\n1. Have a `.wordpress.org` directory containing the screenshots to be displayed\non the detail page on the plugin directory.\n1. Have a master branch that contains the most up to date version of your plugin.\nYour plugin files should be held at the root of the repository.\n1. Tag your releases with Git if you want to push tags.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayrutjes%2Fwp-plugin-git-svn-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frayrutjes%2Fwp-plugin-git-svn-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayrutjes%2Fwp-plugin-git-svn-sync/lists"}