{"id":37028127,"url":"https://github.com/saagie/saagie-maven-plugin","last_synced_at":"2026-01-14T03:21:22.033Z","repository":{"id":57736149,"uuid":"68194106","full_name":"saagie/saagie-maven-plugin","owner":"saagie","description":"Plugin maven to automatically upload jar into a specified platform and create or update job","archived":true,"fork":false,"pushed_at":"2020-04-28T10:30:35.000Z","size":73,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2025-08-04T09:47:58.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.saagie.com/","language":"Java","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/saagie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-14T09:44:42.000Z","updated_at":"2023-01-28T14:48:45.000Z","dependencies_parsed_at":"2022-08-23T22:40:34.527Z","dependency_job_id":null,"html_url":"https://github.com/saagie/saagie-maven-plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/saagie/saagie-maven-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie-maven-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie-maven-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie-maven-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie-maven-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saagie","download_url":"https://codeload.github.com/saagie/saagie-maven-plugin/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie-maven-plugin/sbom","scorecard":{"id":794132,"data":{"date":"2025-08-11","repo":{"name":"github.com/saagie/saagie-maven-plugin","commit":"c1b7bcca766023fd4ea55680843a3a98408fe663"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"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":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"Code-Review","score":1,"reason":"Found 1/7 approved changesets -- score normalized to 1","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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"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":"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'develop'"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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":10,"reason":"0 existing vulnerabilities detected","details":null,"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-23T08:26:26.601Z","repository_id":57736149,"created_at":"2025-08-23T08:26:26.601Z","updated_at":"2025-08-23T08:26:26.601Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"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":"2026-01-14T03:21:21.452Z","updated_at":"2026-01-14T03:21:22.017Z","avatar_url":"https://github.com/saagie.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Saagie Maven Plugin\n\n## :warning: This plugin is **deprecated**, no more maintained, and may contain some vulnerabilities. Provided as-is; use it at your own risk.\n \n[![Travis CI](https://travis-ci.org/spotify/docker-maven-plugin.svg?branch=master)](https://travis-ci.org/spotify/docker-maven-plugin/) \n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.saagie/saagie-maven-plugin/badge.svg)](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22saagie-maven-plugin%22)\n\n\n\nA Maven plugin to push jar files in Saagie Manager and create a new java job.\n\nMore information about Saagie : https://www.saagie.com/\n\n* [Usage](#usage)\n  * [Creation](#job-creation)\n  * [Update](#update)\n* [Authentication](#authentication)\n* [Configuration](#configuration)\n  * [List of all parameters available](#list-of-all-available-parameters)\n    * [Mandatory for all modes](#mandatory-for-all-modes)\n    * [Mandatory for update mode only](#mandatory-for-update-mode-only)\n    * [Mandatory if you use authenticating directly in pom](#mandatory-if-authenticating-directly-from-pom)\n    * [Optional parameters](#optional-parameters)\n    * [Example](#example)\n    \n\n## Usage\n\n### Setup\nIn order to use this plugin, you need to set it up in your project's Maven configuration file.\nFirst you need to add its configuration in the `\u003cplugins/\u003e` block of your `pom.xml`.\n\nHere is the minimum required:\n```\n\u003cbuild\u003e\n  \u003cplugins\u003e\n    ...\n    \u003cplugin\u003e\n        \u003cgroupId\u003eio.saagie\u003c/groupId\u003e\n        \u003cartifactId\u003esaagie-maven-plugin\u003c/artifactId\u003e\n        \u003cversion\u003e1.0.5\u003c/version\u003e\n        \u003cconfiguration\u003e\n            \u003clogin\u003emy-username\u003c/login\u003e\n            \u003cpassword\u003emy-password\u003c/password\u003e\n            \u003crealm\u003emy-realm\u003c/realm\u003e\n            \u003cplatformId\u003e1\u003c/platformId\u003e\n            \u003cjobName\u003eTestMaven\u003c/jobName\u003e\n            \u003cjobCategory\u003eextract\u003c/jobCategory\u003e\n        \u003c/configuration\u003e\n    \u003c/plugin\u003e\n    ...\n  \u003c/plugins\u003e\n\u003c/build\u003e\n```\n_Note that `login` and `password` can also be removed : see [Authentication](#authentication)._\n\n\nSee [Configuration](#configuration) to fine tune your configuration.\n\n\nOptionally, you can force a job creation after generating your project jar file, by adding the following `execution` strategy to the plugin configuration:\n```\n\u003cbuild\u003e\n  \u003cplugins\u003e\n    ...\n    \u003cplugin\u003e\n        \u003cgroupId\u003eio.saagie\u003c/groupId\u003e\n        \u003cartifactId\u003esaagie-maven-plugin\u003c/artifactId\u003e\n        \u003cversion\u003e1.0.5\u003c/version\u003e\n        \u003cconfiguration\u003e\n            \u003clogin\u003emy-username\u003c/login\u003e\n            \u003cpassword\u003emy-password\u003c/password\u003e\n            \u003crealm\u003emy-realm\u003c/realm\u003e\n            \u003cplatformId\u003e1\u003c/platformId\u003e\n            \u003cjobName\u003eTestMaven\u003c/jobName\u003e\n            \u003cjobCategory\u003eextract\u003c/jobCategory\u003e\n        \u003c/configuration\u003e\n        \u003cexecutions\u003e\n            \u003cexecution\u003e\n                \u003cid\u003ecreate\u003c/id\u003e\n                \u003cphase\u003epackage\u003c/phase\u003e\n                \u003cgoals\u003e\n                    \u003cgoal\u003ecreate\u003c/goal\u003e\n                \u003c/goals\u003e\n            \u003c/execution\u003e\n        \u003c/executions\u003e\n    \u003c/plugin\u003e\n    ...\n  \u003c/plugins\u003e\n\u003c/build\u003e\n```\n\n### Job creation\nAfter setting up the plugin, you can create a job by running the following command:\n```\nmvn clean package saagie:create\n```\n\n### Update\nYou can update an existing job by running the following command:\n```\nmvn clean package saagie:update\n```\n\nAfter you added (at least) the jobId to the plugin configuration:\n```\n\u003cbuild\u003e\n  \u003cplugins\u003e\n    ...\n    \u003cplugin\u003e\n        \u003cgroupId\u003eio.saagie\u003c/groupId\u003e\n        \u003cartifactId\u003esaagie-maven-plugin\u003c/artifactId\u003e\n        \u003cversion\u003e1.0.5\u003c/version\u003e\n        \u003cconfiguration\u003e\n            \u003clogin\u003emy-username\u003c/login\u003e\n            \u003cpassword\u003emy-password\u003c/password\u003e\n            \u003crealm\u003emy-realm\u003c/realm\u003e\n            \u003cplatformId\u003e1\u003c/platformId\u003e\n            \u003cjobId\u003e18\u003c/jobId\u003e\n            \u003cjobName\u003eTestMaven\u003c/jobName\u003e\n            \u003cjobCategory\u003eextract\u003c/jobCategory\u003e\n        \u003c/configuration\u003e\n    \u003c/plugin\u003e\n    ...\n  \u003c/plugins\u003e\n\u003c/build\u003e\n```\n\n_Note:_\n\n- _The jobId is given at creation time_\n- _`jobId` parameter is ignored present in \"create\" mode_\n\n## Authentication\n\n### Using settings.xml \n\nYou can put your credentials in your Maven's global `settings.xml` file as part of the `\u003cservers\u003e\u003c/servers\u003e` block.\n```\n\u003cservers\u003e\n  \u003cserver\u003e\n    \u003cid\u003esaagie-manager\u003c/id\u003e\n    \u003cusername\u003eusername\u003c/username\u003e\n    \u003cpassword\u003eyour-password\u003c/password\u003e\n  \u003c/server\u003e\n\u003c/servers\u003e\n```\n\n### Using settings.xml and encrypted passwords\n\nCredentials can be encrypted using [Maven's built in encryption function.](https://maven.apache.org/guides/mini/guide-encryption.html)\nOnly passwords enclosed in curly braces will be considered as encrypted.\n\n    \u003cservers\u003e\n      \u003cserver\u003e\n        \u003cid\u003esaagie-manager\u003c/id\u003e\n        \u003cusername\u003eusername\u003c/username\u003e\n        \u003cpassword\u003e{4sNnX2vJXuoH6StIbCWwORqaF4nhRMOPffdmB9YHhuw=}\u003c/password\u003e\n      \u003c/server\u003e\n    \u003c/servers\u003e\n\n## Configuration\n\n### List of all available parameters\n\n#### Mandatory for all modes\nThese parameters are mandatory (in create and update mode) :\n\n* **realm**\n  - represents the realm (often the company name) of Saagie's platform owner. This realm can be retrieved in the platform URL: _https://**companyName**-manager.prod.saagie.io_ - Here \"**companyName**\" is the realm.\n* **platformId**\n  - represents the id of the platform you want to add the job. This id is accessible via the URL when you are authenticated and in your manager : _https://.../#/manager/**1**_ - Here \"**1**\" is the plaformId.\n* **jobName**\n  - represents the name of the job you want to create or to update (should be exactly the same for update - a verification is made).\n* **jobCategory**\n  - represents the category of the job you want to create or to update (should be exactly the same for update - a verification is made).\n  - can be : \"**extract**\" or \"**processing**\" (another values can produce errors).\n\n#### Mandatory for update mode only \n\n* **jobId**\n  - represents the id the job you want to update. This id is accessible via the URL when you are on the details page of the job : _https://.../#/manager/1/job/**49**_ Here \"**49**\" is the jobId. \n\n#### Mandatory if authenticating directly from pom  \n\nWe recommend to use the authenticating mode using the settings.xml. It's more secure and you'll be sure to never commit your login/password in your pom.xml.\n\n* **login** \n  - represents the login you'll use to have access to your manager (UI and API use the same).\n\n* **password** \n  - represents the password you'll use to have access to your manager (UI and API use the same).\n  \n  \n#### Optional parameters\nSetting those parameters will override default values.\n\n* **urlAPI**\n  - represents the URL of your manager.\n  - default value : \"https://realm-manager.prod.saagie.io/api/v1\" where \"realm\" is automatically replaced by the value of the given \"realm\" parameter.\n  - If overriding this parameter, don't forget to add \"**/api/v1**\" at the end of the URL. In this case, the \"realm\" parameter will have no impact.\n\n* **jarName**\n  - represents the name of the jar you want to upload\n  - default value : \"${project.build.finalName}-jar-with-dependencies.jar\"\n  - By default, we use the _maven-assembly-plugin_ to generate jar with dependencies (some examples are available in our [Github](https://github.com/saagie)) and the jar generated use this template. If you use the _maven-shade-plugin_ or other maven plugin, you can override this parameter to target the correct jar (```\u003cjarName\u003e${project.build.finalName}.jar\u003c/jarName\u003e``` for the _maven-shade-plugin_ ).\n\n* **cpu / mem / disk**\n  - represents the amount of CPU / memory / disk space you want to reserve for your job (like you can set in the manager interface).\n  - default values : **cpu**:0.5 / **mem**:512 / **disk**:1024\n  - For **cpu**, the value represents the number of core (0.5 represent an half of core).\n  - For **mem** and **disk**, the value represents the number of mega-octet allocated.\n  \n* **languageVersion**\n  - represents the version of language you want to run your job.\n  - default value : 8\n  - Only 8 or 7 are available (See [anapsix/alpine-java](https://hub.docker.com/r/anapsix/alpine-java/) to see the precise version of java we use). \n\n* **arguments**\n  - represents the arguments in the the job command-line.\n  - default value : Empty-String\n\n* **jobType**\n  - represents the type of job you want to create\n  - default value : \"java-scala\"\n  - for the moment, only \"java-scala\" works\n\n* **releaseNote**\n  - represents the release note of the job version.\n  - default value : Empty-String\n\n* **description**\n  - represents the job description.\n  - default value : Empty-String\n\n#### Example\nA fully customized configuration may look like this:\n```\n\u003cbuild\u003e\n  \u003cplugins\u003e\n    ...\n    \u003cplugin\u003e\n        \u003cgroupId\u003eio.saagie\u003c/groupId\u003e\n            \u003cartifactId\u003esaagie-maven-plugin\u003c/artifactId\u003e\n            \u003cversion\u003e1.0.5\u003c/version\u003e\n            \u003cconfiguration\u003e\n                \u003clogin\u003emy-username\u003c/login\u003e\n                \u003cpassword\u003emy-password\u003c/password\u003e\n                \u003crealm\u003emy-realm\u003c/realm\u003e\n                \u003cplatformId\u003e1\u003c/platformId\u003e\n                \u003cjobName\u003eMy Java job\u003c/jobName\u003e\n                \u003cjobCategory\u003eprocessing\u003c/jobCategory\u003e\n                \u003curlApi\u003ehttps://realm-manager.prod.saagie.io/api/v1\u003c/urlApi\u003e\n                \u003ccpu\u003e0.4\u003c/cpu\u003e\n                \u003cmem\u003e256\u003c/mem\u003e\n                \u003cdisk\u003e1024\u003c/disk\u003e\n                \u003cjarName\u003e${project.build.finalName}.jar\u003c/jarName\u003e\n                \u003cjobId\u003e1234\u003c/jobId\u003e\n                \u003creleaseNote\u003eAdding new feature\u003c/releaseNote\u003e\n                \u003cdescription\u003eMy Java job goal\u003c/description\u003e\n                \u003carguments\u003earg1\u003c/arguments\u003e\n                \u003clanguageVersion\u003e8.131\u003c/languageVersion\u003e\n            \u003c/configuration\u003e\n            \u003cexecutions\u003e\n            \u003cexecution\u003e\n                \u003cid\u003ecreate\u003c/id\u003e\n                \u003cphase\u003epackage\u003c/phase\u003e\n                \u003cgoals\u003e\n                    \u003cgoal\u003ecreate\u003c/goal\u003e\n                \u003c/goals\u003e\n            \u003c/execution\u003e\n            \u003c/executions\u003e\n    \u003c/plugin\u003e\n    ...\n  \u003c/plugins\u003e\n\u003c/build\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaagie%2Fsaagie-maven-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaagie%2Fsaagie-maven-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaagie%2Fsaagie-maven-plugin/lists"}