{"id":20027136,"url":"https://github.com/unic/sapcc-toolkit","last_synced_at":"2026-06-06T18:31:34.471Z","repository":{"id":64565857,"uuid":"552949189","full_name":"unic/sapcc-toolkit","owner":"unic","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-18T06:59:23.000Z","size":148,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-25T17:11:26.039Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/unic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-17T13:30:06.000Z","updated_at":"2022-10-17T16:00:48.000Z","dependencies_parsed_at":"2023-02-09T02:45:38.342Z","dependency_job_id":null,"html_url":"https://github.com/unic/sapcc-toolkit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unic%2Fsapcc-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unic%2Fsapcc-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unic%2Fsapcc-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unic%2Fsapcc-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unic","download_url":"https://codeload.github.com/unic/sapcc-toolkit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241460057,"owners_count":19966516,"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":[],"created_at":"2024-11-13T09:09:08.579Z","updated_at":"2025-03-02T04:41:22.314Z","avatar_url":"https://github.com/unic.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAP Commerce Cloud Toolkit\n\n![CI status](https://github.com/unic/sapcc-toolkit/actions/workflows/ci.yaml/badge.svg) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=unic_sapcc-toolkit\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=unic_sapcc-toolkit)\n\nThis CLI toolkit provides functionalities to create and monitor builds and deployments within the SAP Commerce Cloud.\n\n## Setup\n\nTo set up your SAP CC CLI Toolkit please provide your:\n\n- SAP Commerce Cloud Subscription Code*\n- SAP Commerce Cloud API token/key*\n- Define a maximum waiting time in minutes for builds (default: 30min)\n- Define a maximum waiting time in minutes for deployments (default: 30min)\n- Define polling/interval rate in seconds for builds (default: 5sec)\n- Define polling/interval rate in seconds for deployments (default: 5sec)\n- Enable notification service for MS Teams webhook (default: false)\n- Define MS Teams webhook URL (default: empty)\n\n*mandatory\n\nusing the file: `\u003cworkdir\u003e/config/application.properties`\n\n```properties\ntoolkit.subscriptionCode = \u003cinsert your SAP CC subscription code here\u003e\ntoolkit.apiKey = \u003cinsert your SAP CC API key here\u003e\n\ntoolkit.build.maxWaitTime = \u003cinsert your maximum waiting time in minutes for builds here\u003e\ntoolkit.build.sleepTime = \u003cinsert your polling/interval rate for build progress here\u003e\n\ntoolkit.deploy.maxWaitTime = \u003cinsert your maximum waiting time in minutes for deployments here\u003e\ntoolkit.deploy.sleepTime= \u003cinsert your polling/interval rate in seconds for build progress here\u003e\n\ntoolkit.apiConnectTimeout = \u003cinsert your maximum connect timeout for all API connections\u003e\ntoolkit.apiReadTimeout = \u003cinsert your maximum read timeout for all API connections\u003e\n\nnotification.teams.enabled = true/false\nnotification.teams.webhook.url = \u003cinsert your teams webhook url\u003e\n```\n\n## Building\n\nPlease use the default Spring boot gradle tasks to build this application:\n\n```shell\n./gradlew bootJar\n```\n\n## Usage\n\nYou can list all current flags and parameters by running the jar with the --help flag:\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --help\n\n[...]\n\nusage: sapcc-toolkit\n -a,--applicationcode \u003carg\u003e   application code\n -b,--build                   Execute build\n -c,--buildcode \u003carg\u003e         Code of build to deploy\n -d,--deploy                  Execute deployment\n -e,--environment \u003carg\u003e       environment for deployment\n -h,--help                    print usage help\n -n,--name \u003carg\u003e              build name\n -p,--pidfile \u003carg\u003e           process id file\n -r,--branch \u003carg\u003e            branch to be build\n -s,--strategy \u003carg\u003e          deployment strategy\n -u,--updatemode \u003carg\u003e        database update mode for deployment\n -y,--async                   Don't monitor progress\n -t,--skipBuildTimeouts       Skip build timeouts during build progress monitoring\n```\n\n## Examples\n\n### Create a new build of the develop branch (without deployment)\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --build\n```\n\n### Create a new build of the develop branch but don't wait for it to finish\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --build --async\n```\n\n### Create a new release build without deployment\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --build  --branch release/1.6.0  --name release-1.6.0\n```\n\n### Create a new develop (default) build and deploy this newly build on d1 without URS\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --build  --deploy\n```\n\n### Create a new develop (default) build and deploy this newly build on d1 without URS and skip build timeouts\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --build  --deploy  --skipBuildTimeouts\n```\n\n### Start a new rolling deployment for a given build on d1 without URS\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --deploy  --buildcode 20211122.1\n```\n\n### Start a new rolling deployment for a given build on s1 with URS\n\n```shell\njava -jar build/libs/sapcc-toolkit-*.jar --deploy  --buildcode 20211122.1 --updatemode UPDATE --environment s1\n```\n\n## Publication\n\n## Docker image\n\nA docker image is being build for each build on the main branch. Use it like this:\n\n```shell\ndocker run -it --rm -v $PWD/config:/config lennartjuetteunic/sapcc-toolkit --build \u003cOPTIONS\u003e\n```\n\n### Maven (Unic internal)\n\nFor publishing artifacts we use the [maven-publish](https://docs.gradle.org/current/userguide/publishing_maven.html) plugin. Since the Unic nexus repository is defined unter the name 'unicEcom' you need to set the variables `unicEcomUsername` and `unicEcomPassword`. This can be done in your `~/.gradle/gradle.properties` for example.\n\n```shell\n./gradlew publish\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funic%2Fsapcc-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funic%2Fsapcc-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funic%2Fsapcc-toolkit/lists"}