{"id":31769983,"url":"https://github.com/jfrog/artifactory-user-plugins","last_synced_at":"2025-10-10T02:56:10.872Z","repository":{"id":923728,"uuid":"2574768","full_name":"jfrog/artifactory-user-plugins","owner":"jfrog","description":"Sample Artifactory User Plugins","archived":false,"fork":false,"pushed_at":"2025-03-27T13:44:00.000Z","size":24324,"stargazers_count":376,"open_issues_count":26,"forks_count":470,"subscribers_count":75,"default_branch":"master","last_synced_at":"2025-05-28T12:48:27.777Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://wiki.jfrog.org/confluence/display/RTF/User+Plugins","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jfrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"governance/preventUnapproved/PreventUnapprovedTest.groovy","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-10-14T07:20:20.000Z","updated_at":"2025-04-22T20:11:43.000Z","dependencies_parsed_at":"2025-03-17T07:38:04.397Z","dependency_job_id":null,"html_url":"https://github.com/jfrog/artifactory-user-plugins","commit_stats":{"total_commits":1157,"total_committers":104,"mean_commits":11.125,"dds":0.7407087294727744,"last_synced_commit":"97833bcb0925b1d535f9ddb47fdd920305c4349f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jfrog/artifactory-user-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Fartifactory-user-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Fartifactory-user-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Fartifactory-user-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Fartifactory-user-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfrog","download_url":"https://codeload.github.com/jfrog/artifactory-user-plugins/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Fartifactory-user-plugins/sbom","scorecard":{"id":517668,"data":{"date":"2025-08-11","repo":{"name":"github.com/jfrog/artifactory-user-plugins","commit":"cd802fafd218503b345b752b9a92ea192dac9c02"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Code-Review","score":7,"reason":"Found 12/16 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/cla.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":0,"reason":"binaries present in source code","details":["Warn: binary detected: build/promotion/test/multi1-3.7-SNAPSHOT.jar:1","Warn: binary detected: build/promotion/test/multi2-3.7-SNAPSHOT.jar:1","Warn: binary detected: deprecated-plugins/build/buildArtifactsAGVList/util/pomWithDeps-maven-plugin/target/classes/com/jfrog/maven/plugins/pomwithdeps/Dependency.class:1","Warn: binary detected: deprecated-plugins/build/buildArtifactsAGVList/util/pomWithDeps-maven-plugin/target/classes/com/jfrog/maven/plugins/pomwithdeps/PomWithDepsMojo.class:1","Warn: binary detected: deprecated-plugins/build/buildArtifactsAGVList/util/pomWithDeps-maven-plugin/target/classes/com/jfrog/maven/plugins/pomwithdeps/utils/HttpUtil$PreemptiveAuth.class:1","Warn: binary detected: deprecated-plugins/build/buildArtifactsAGVList/util/pomWithDeps-maven-plugin/target/classes/com/jfrog/maven/plugins/pomwithdeps/utils/HttpUtil.class:1","Warn: binary detected: deprecated-plugins/build/buildArtifactsAGVList/util/pomWithDeps-maven-plugin/target/classes/com/jfrog/maven/plugins/pomwithdeps/utils/URI.class:1","Warn: binary detected: deprecated-plugins/build/buildArtifactsAGVList/util/pomWithDeps-maven-plugin/target/pom-with-deps-maven-plugin-1.0-SNAPSHOT.jar:1","Warn: binary detected: deprecated-plugins/build/promoteWithDeps/test/multi1-3.7-SNAPSHOT.jar:1","Warn: binary detected: deprecated-plugins/build/promoteWithDeps/test/multi2-3.7-SNAPSHOT.jar:1","Warn: binary detected: deprecated-plugins/build/promotion/test/multi1-3.7-SNAPSHOT.jar:1","Warn: binary detected: deprecated-plugins/build/promotion/test/multi2-3.7-SNAPSHOT.jar:1","Warn: binary detected: deprecated-plugins/descriptors/ivy2pom/test/ant-1.8.3.jar:1","Warn: binary detected: deprecated-plugins/descriptors/ivy2pom/test/ant-launcher-1.8.3.jar:1","Warn: binary detected: deprecated-plugins/descriptors/pom2ivy/test/ant-1.8.3.jar:1","Warn: binary detected: deprecated-plugins/descriptors/pom2ivy/test/ant-launcher-1.8.3.jar:1","Warn: binary detected: deprecated-plugins/download/downloadDirectoryContent/test/lib-aopalliance-1.0.jar:1","Warn: binary detected: deprecated-plugins/governance/binaryCompatibilityCheck/test/guava-10.0.jar:1","Warn: binary detected: deprecated-plugins/governance/binaryCompatibilityCheck/test/guava-10.1.jar:1","Warn: binary detected: deprecated-plugins/governance/binaryCompatibilityCheck/test/guava-16.0.1.jar:1","Warn: binary detected: deprecated-plugins/governance/binaryCompatibilityCheck/test/guava-16.0.jar:1","Warn: binary detected: deprecated-plugins/governance/preventXrayRejected/test/lib-aopalliance-1.0.jar:1","Warn: binary detected: deprecated-plugins/governance/whitesource/test/guava-15.0.jar:1","Warn: binary detected: deprecated-plugins/layouts/layoutEnforcement/test/guava-18.0.jar:1","Warn: binary detected: deprecated-plugins/metadata/getPypiMetadata/test/pip-9.0.1-py2.py3-none-any.whl:1","Warn: binary detected: deprecated-plugins/nexusPush/test/guava-18.0.jar:1","Warn: binary detected: deprecated-plugins/replication/filterReplicationByProperty/test/lib-aopalliance-1.0.jar:1","Warn: binary detected: deprecated-plugins/replication/skipReplication/test/lib-aopalliance-1.0.jar:1","Warn: binary detected: deprecated-plugins/replication/yumReplicationFilter/test/wget-1.19.1-3.fc27.aarch64.rpm:1","Warn: binary detected: deprecated-plugins/searches/getGavcBySha1/test/guava-18.0.jar:1","Warn: binary detected: deprecated-plugins/security/oldPasswordRealm/test/lib-aopalliance-1.0.jar:1","Warn: binary detected: deprecated-plugins/sonarWebhook/test/build-3.7-SNAPSHOT.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/jfrog/.github/SECURITY.md:1","Info: Found linked content: github.com/jfrog/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/jfrog/.github/SECURITY.md:1","Info: Found text in security policy: github.com/jfrog/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/cla.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/jfrog/artifactory-user-plugins/cla.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cla.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/jfrog/artifactory-user-plugins/cla.yml/master?enable=pin","Warn: containerImage not pinned by hash: deprecated-plugins/governance/approveDeny/scripts/docker/Dockerfile:1: pin your Docker image by updating python:3 to python:3@sha256:50cbf8e58ca53a806b99250b1ba2d16c19433e8c42e7eb4ac4ea924b095e280b","Warn: pipCommand not pinned by hash: deprecated-plugins/governance/approveDeny/scripts/docker/Dockerfile:2","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"19 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-gwrp-pvrq-jmwv","Warn: Project is vulnerable to: GHSA-p7vm-phxx-g722","Warn: Project is vulnerable to: GHSA-v7cm-w955-pj6g","Warn: Project is vulnerable to: GHSA-8vhq-qq4p-grq3","Warn: Project is vulnerable to: GHSA-g6ph-x5wf-g337","Warn: Project is vulnerable to: GHSA-jcwr-x25h-x5fh","Warn: Project is vulnerable to: GHSA-36p3-wjmg-h94x","Warn: Project is vulnerable to: GHSA-hh26-6xwr-ggv7","Warn: Project is vulnerable to: GHSA-4487-x383-qpph","Warn: Project is vulnerable to: GHSA-8crv-49fr-2h6j","Warn: Project is vulnerable to: GHSA-g8hw-794c-4j9g","Warn: Project is vulnerable to: GHSA-pgf9-h69p-pcgf","Warn: Project is vulnerable to: GHSA-rcpf-vj53-7h2m","Warn: Project is vulnerable to: GHSA-wjjr-h4wh-w6vv","Warn: Project is vulnerable to: GHSA-wv88-pf73-x22p","Warn: Project is vulnerable to: GHSA-78wr-2p64-hpwj","Warn: Project is vulnerable to: GHSA-7r82-7xv7-xcpj","Warn: Project is vulnerable to: GHSA-c27h-mcmw-48hv","Warn: Project is vulnerable to: GHSA-r6j9-8759-g62w"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T02:13:51.905Z","repository_id":923728,"created_at":"2025-08-20T02:13:51.905Z","updated_at":"2025-08-20T02:13:51.905Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002511,"owners_count":26083403,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-10-10T02:56:07.333Z","updated_at":"2025-10-10T02:56:10.864Z","avatar_url":"https://github.com/jfrog.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Artifactory User Plugins\n\n\u003e **Note**: JFrog Workers is the recommended cloud-native solution for extending the JFrog Platform (including Artifactory). While user plugins are still supported, we recommend using JFrog Workers where possible for better scalability, security, and performance. [Learn more about JFrog Workers](https://jfrog.com/help/r/ybbUNZGwwAmzW2qGyL9Zdw/I4E5sOhWWpIHHfdV37__Iw).\n\n\n## Upgrade Notice: Groovy 4 Compatibility\n\n**Artifactory Version: 7.101 (released November 25, 2024 for cloud)**\n\nArtifactory has been upgraded to Groovy 4 starting from version 7.101. This includes several important updates, most notably the promotion plugin (JFrog Supported), updated for compatibility with Groovy 4. However, this upgrade may break compatibility with your custom plugins developed for earlier Groovy versions (Groovy 3 or older). To learn the differences between Groovy 3 and 4, refer to [Release notes for Groovy 4.0\n](https://groovy-lang.org/releasenotes/groovy-4.0.html)\n\n\u003cdetails\u003e\n\n\u003csummary\u003eTo learn more, expand this drop-down\u003c/summary\u003e\n\n**JFrog Supported Plugins**\n\n- **Promotion Plugin**\n  \n    The promotion plugin has been updated to work with Groovy 4. If you're using this plugin in your environment, redeploy it after upgrading to 7.101 or above.\n\n- **Other Plugins**\n  \n  Other Plugins (Groovy 3 or older versions) work without redeploying after 7.101 or above upgrade.\n\n\n\u003e **Backward Compatibililty**:\n\u003e We do not support backward compatibility.\n\n### Key Points to Consider\n\n#### Groovy 4 Compatibility\n\nStarting from Artifactory 7.101, Groovy 4 is the default version.\n\n- **artifactory-user-plugins Branch Compatibility**\n\n    - **master**: Artifactory 7.101 and above\n\n        \u003e **Note**:\n        \u003cbr\u003eGroovy 3 is no longer supported in the master branch of **artifactory-user-plugins**. Ensure that your plugins are compatible with Groovy 4.\n\n    - **artifactory-groovy-3**: Artifactory 7.100 and below\n  \n- **JDK 17 Compatibility**\n  \n    Artifactory versions 7.43 and above have introduced JDK 17 support. This may cause older user plugins to break. Any JFrog-supported deprecated plugins are shown in [Deprecated Directory](http://github.com/jfrog/artifactory-user-plugins/tree/master/deprecated-plugins).\n\n    \u003e **Note**\u003cbr\u003e\n    \u003eWe recommend not using Deprecated Plugins as we don't test them anymore. If you are still using Deprecated Plugins, test them thoroughly to achieve the desired results.\n  \n#### Custom Plugins\nIf you have custom plugins developed before Groovy 4, you must update them to ensure compatibility with Groovy 4, as Artifactory version 7.101 (and above) will come bundled with Groovy 4. Plugins written for earlier versions of Groovy (Groovy 3 or older) may no longer work and will require changes and redeployed to work correctly from  Artifactory version 7.101 (and above).\n\n\u003e **Note:** Test your plugins thoroughly after upgrading Artifactory to 7.101 (and above).\n\n\n#### Migrating to JFrog Workers\nConsider migrating your plugins to JFrog Workers for a cloud-native and future-proof solution.\n\u003c/details\u003e\n\n## Documentation References\n- [Artifactory Documentation](https://jfrog.com/help/p/devops-home): Official documentation for Artifactory features, setup, and configuration.\n- [User Plugin Documentation](https://jfrog.com/help/r/jfrog-integrations-documentation/user-plugins): Guide to writing and using custom Artifactory plugins.\n- [JFrog Workers Documentation](https://jfrog.com/help/r/ybbUNZGwwAmzW2qGyL9Zdw/I4E5sOhWWpIHHfdV37__Iw): Learn more about JFrog Workers for extending Artifactory in a cloud-native way.\n\n## Product feature alternative for plugins\nArtifactory now has the inbuilt feature for some of the plugins.\n\n| User Plugins | Product Feature |\n|-------------|--------------------|\n| [artifactCleanup](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/artifactCleanup/README.md) | Cleanup Policy (supported only for **Enterprise Plus** licenses), [learn more](https://jfrog.com/help/r/jfrog-platform-administration-documentation/cleanup-policies) | \n| [cleanDockerImages](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/cleanDockerImages/README.md) | Cleanup Policy (supported only for **Enterprise Plus** licenses), [learn more](https://jfrog.com/help/r/jfrog-platform-administration-documentation/cleanup-policies) | \n| [getPropertySetsList](https://github.com/jfrog/artifactory-user-plugins/blob/master/config/propertySetsConfig/README.md) | [UI Feature](https://jfrog.com/help/r/jfrog-artifactory-documentation/property-sets)|\n| [getProxiesList](https://github.com/jfrog/artifactory-user-plugins/blob/master/config/proxiesConfig/README.md) | [UI Feature](https://jfrog.com/help/r/jfrog-platform-administration-documentation/manage-proxy-servers)|\n| [getLayoutsList](https://github.com/jfrog/artifactory-user-plugins/blob/master/config/repoLayoutsConfig/README.md) | [UI Feature](https://jfrog.com/help/r/jfrog-artifactory-documentation/configure-repository-layouts) |\n| [webhook](https://github.com/jfrog/artifactory-user-plugins/blob/master/webhook/README.md) | [Product Feature](https://jfrog.com/help/r/jfrog-platform-administration-documentation/webhooks) |\n| [getP2Urls](https://github.com/jfrog/artifactory-user-plugins/blob/master/config/getAndSetP2Url/README.md) | [UI Feature](https://jfrog.com/help/r/jfrog-artifactory-documentation/additional-settings-for-docker-virtual-repositories) | \n| [deleteByPropertyValue](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/deleteByPropertyValue/README.md) | Cleanup Policy Roadmap |\n| [deleteDeprecated](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/deleteDeprecated/README.md) | Cleanup Policy Roadmap |\n| [oldBuildCleanup](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/oldBuildCleanup/README.md) | Cleanup Policy Roadmap |\n\n## Worker alternative for Plugins\nJFrog Workers are supported only for **Enterprise X** and **Plus** licenses. Workers offer an alternative to Artifactory user plugins, enabling you to extend the JFrog Platform using cloud-native, scalable, and secure solutions.\n\nThe following are the Worker alternatives for Artifactory plugins\n\n| User Plugins | Worker Alternative |\n|-------------|--------------------|\n| [artifactCleanup](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/artifactCleanup/README.md) | [ArtifactCleanup Worker](https://github.com/jfrog/workers-sample/tree/main/samples/artifactory/GENERIC_EVENT/artifact-cleanup) |\n| [cleanDockerImages](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/cleanDockerImages/README.md) | [cleanDockerImages Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/GENERIC_EVENT/clean-docker-images/README.md) |\n| [deleteEmptyDirs](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/deleteEmptyDirs/README.md) | [deleteEmptyDirsWorker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/GENERIC_EVENT/delete-empty-dirs/README.md) |\n| [repoQuota](https://github.com/jfrog/artifactory-user-plugins/blob/master/storage/repoQuota/README.md) | [repoQuota Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/BEFORE_UPLOAD/repo-quota/README.md) |\n| [restrictOverwrite](https://github.com/jfrog/artifactory-user-plugins/blob/master/storage/restrictOverwrite/README.md) | [restrictOverwrite Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/BEFORE_UPLOAD/restrict-overwrite/README.md) |\n| [repoStats](https://github.com/jfrog/artifactory-user-plugins/blob/master/stats/repoStats/README.md) | [repoStats Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/GENERIC_EVENT/repoStats/README.md) |\n| [preventUnapproved](https://github.com/jfrog/artifactory-user-plugins/blob/master/governance/preventUnapproved/README.md) | [preventUnapproved worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/BEFORE_DOWNLOAD/restrict-download-by-property-value/README.md) |\n| [deleteByPropertyValue](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/deleteByPropertyValue/README.md) | [deleteByPropertyValue Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/GENERIC_EVENT/delete-by-property-value/README.md) |\n| [remoteBackup](https://github.com/jfrog/artifactory-user-plugins/blob/master/storage/remoteBackup/README.md) | [remoteBackup Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/GENERIC_EVENT/remote-backup/README.md) |\n| [backUpFolder](https://github.com/jfrog/artifactory-user-plugins/blob/master/backup/backupFolders/README.md) | X (worker limitation to support external modules) |\n| [deleteDeprecated](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/deleteDeprecated/README.md) | [deleteDeprecated Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/GENERIC_EVENT/delete-deprecated/README.md) |\n| [mavenSnapshotCleanupWhenRelease](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/mavenSnapshotCleanupWhenRelease/README.md) | [mavenSnapshotCleanupWhenRelease Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/eventCombinationWorkers/mavenSnapshotCleanupWhenRelease/README.md) |\n| [oldBuildCleanup](https://github.com/jfrog/artifactory-user-plugins/blob/master/cleanup/oldBuildCleanup/README.md) | [oldBuildCleanup Worker](https://github.com/jfrog/workers-sample/blob/main/samples/artifactory/GENERIC_EVENT/oldBuildCleanup/README.md) |\n| [checksums](https://github.com/jfrog/artifactory-user-plugins/blob/master/checksums/README.md) | X (worker limitation to support external modules) |\n\n\u003e **Note**: For some user plugins, there is no direct worker sample available. You may need to adapt or refactor existing functionality using workers, depending on your specific use case.\n\n\n## Contributing to Artifactory User Plugins\nAlthough JFrog Workers is the preferred approach, we still accept contributions for Artifactory user plugins, particularly for those who cannot migrate to JFrog Workers at the moment. Contributions should follow the guidelines specified in the [CONTRIBUTING.md](CONTRIBUTING.md) file. \n\nTo maintain a consistent and high-quality codebase, we encourage contributions to:\n- **Fixing bugs or security issues**\n- **Refactoring existing functionality for better compatibility with newer Artifactory versions**\n\n## Migrating from User Plugins to JFrog Workers\n\nIf you are planning to migrate from Artifactory user plugins to JFrog Workers, follow the steps below:\n\n1. **Evaluate**: Check the list of existing user plugins and identify the functionalities that need to be migrated.\n2. **Explore Worker Samples**: Review existing [worker samples](https://github.com/jfrog/workers-sample) to understand how workers can replace your current plugin logic.\n3. **Refactor and Deploy**: Migrate the logic to a JFrog Worker and test it in your development or staging environment.\n4. **Monitor and Optimize**: Once the worker is running in production, monitor its performance and optimize as needed.\n\nMigrating to JFrog Workers allows you to leverage the benefits of cloud-native architecture, including scalability, improved security, and better maintenance.\n\n## Additional Resources\n\n- **Artifactory REST API**: [API documentation](https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API)\n- **JFrog Community Support**: For troubleshooting, feature requests, or to engage with other developers using Artifactory and JFrog Workers, visit [JFrog Community](https://jfrog.com/community/).\n\n\n## License \u0026 Copyright\n\nCopyright © 2024, JFrog Ltd.\n\nThis project is licensed under the terms of the **Apache 2.0 License**, to learn more, refer to [LICENSE](https://github.com/jfrog/artifactory-user-plugins/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfrog%2Fartifactory-user-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfrog%2Fartifactory-user-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfrog%2Fartifactory-user-plugins/lists"}