{"id":24992350,"url":"https://github.com/baskeboler/clj_hsm","last_synced_at":"2026-02-11T16:35:17.077Z","repository":{"id":274928889,"uuid":"922889843","full_name":"baskeboler/clj_hsm","owner":"baskeboler","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-04T07:28:05.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-01T13:21:33.862Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baskeboler.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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-01-27T09:18:29.000Z","updated_at":"2025-02-04T07:28:08.000Z","dependencies_parsed_at":"2025-04-12T02:13:39.237Z","dependency_job_id":"581bd55e-debd-45fc-8719-e6d42b6734b3","html_url":"https://github.com/baskeboler/clj_hsm","commit_stats":null,"previous_names":["baskeboler/clj_hsm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/baskeboler/clj_hsm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskeboler%2Fclj_hsm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskeboler%2Fclj_hsm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskeboler%2Fclj_hsm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskeboler%2Fclj_hsm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baskeboler","download_url":"https://codeload.github.com/baskeboler/clj_hsm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskeboler%2Fclj_hsm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262518106,"owners_count":23323301,"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":"2025-02-04T13:55:09.515Z","updated_at":"2026-02-11T16:35:12.026Z","avatar_url":"https://github.com/baskeboler.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# baskeboler/clj_hsm\n\n```none\n██████╗ ██████╗  █████╗  ██████╗████████╗██╗ ██████╗ █████╗ ██╗     ██╗     ██╗\n██╔══██╗██╔══██╗██╔══██╗██╔════╝╚══██╔══╝██║██╔════╝██╔══██╗██║     ██║     ██║\n██████╔╝██████╔╝███████║██║        ██║   ██║██║     ███████║██║     ██║     ██║\n██╔═══╝ ██╔══██╗██╔══██║██║        ██║   ██║██║     ██╔══██║██║     ██║     ██║\n██║     ██║  ██║██║  ██║╚██████╗   ██║   ██║╚██████╗██║  ██║███████╗███████╗██║\n╚═╝     ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝   ╚═╝   ╚═╝ ╚═════╝╚═╝  ╚═╝╚══════╝╚══════╝╚═╝\n```\n\n## Project Status\n\nTODO: add status badges for \u003chttps://github.com/Baske/{{scm/repo\u003e}} workflows and issues\n\nTODO: Provide a meaningful description of the project\n\nProject created with [deps-new](https://github.com/seancorfield/deps-new) and the [practicalli/application template](https://github.com/practicalli/project-templates)\n\n## Run the service\n\nRun the service (clojure.main)\n\n```shell\nclojure -M:run/app\n```\n\nRun the greet function (clojure.exec), optionally passing a `:name` key and value as arguments\n\n```shell\nclojure -X:run/greet :team-name '\"team name\"'\n```\n\n## Development\n\nPracticalli workflow overview:\n\n- start a REPL process in a Terminal\n- open the project in a Clojure Editor and connected to the REPL\n- write code and evaluate expressions in the editor using the source code files\n\n[Practicalli Clojure CLI Config](https://practical.li/clojure/clojure-cli/practicalli-config/) should be used with this project to support all aliases used.\n\nThis project uses `make` tasks to run the Clojure tests, kaocha test runner and package the service into an uberjar.  The `Makefile` uses `clojure` commands and arguments which can be used directly if not using `make`.\n\n`make` command in a terminal will list all the tasks available\n\n```shell\nmake\n```\n\n\n### Run Clojure REPL\n\nStart the REPL with the [Practicalli REPL Reloaded](https://practical.li/clojure/clojure-cli/repl-reloaded/) aliases to include the custom `user` namespace (`dev/user.clj`) which provides additional tools for development (Portal data inspector, hotload libraries, namespace reload)\n\n```shell\nmake repl\n```\n\nThe local nREPL server port will be printed, along with a help menu showing the REPL Reloaded tools available.\n\nEvaluate the baskeboler.clj-hsm namespace and a mulog publisher will start, sending pretty printed events to the console. Evaluate `(mulog-publisher)` to stop the mulog publisher.\n\nCall the `-main` function with or without an argument, or call the `greet` function directly passing an optional key and value pair.\n\n`(namespace/refresh)` will reload any changed namespaces in the Clojure project.\n\n\n### Clojure Editor\n\nIf a REPL has been run from a terminal, use the editor **connect*- feature.\n\nOtherwise, use the `:dev/reloaded` alias from Practicalli Clojure CLI Config to starting a REPL process from within a Clojure editor.\n\n\n### Unit tests\n\nRun unit tests of the service using the kaocha test runner\n\n```shell\nmake test\n```\n\n\u003e If additional libraries are required to support tests, add them to the `:test/env` alias definition in `deps.edn`\n\n`make test-watch` will run tests on file save, stopping the current test run on the first failing test.  Tests will continue to be watched until `Ctrl-c` is pressed.\n\n## Format Code\n\nCheck the code format before pushing commits to a shared repository, using cljstyle to check the Clojure format, MegaLinter to check format of all other files and kaocha test runner to test the Clojure code.\n\nBefore running the `pre-commit-check`\n\n- [install cljstyle](https://github.com/greglook/cljstyle/releases){target=_blank}\n- MegaLinter runs in a Docker container, so ensure Docker is running\n\n```shell\nmake pre-commit-check\n```\n\nRun cljstyle only\n\n- `make format-check` runs cljstyle and and prints a report if there are errors\n- `make format-fix` updates all files if there are errors (check the changes made via `git diff`)\n\nRun MegaLinter only\n\n- `make lint` runs all configured linters in `.github/config/megalinter.yaml`\n- `make lint-fix` as above and applies fixes\n\nRun Kaocha test runner only\n\n- `make test` runs all unit tests in the project, stopping at first failing test\n- `make test-watch` detect file changes and run all unit tests in the project, stopping at first failing test\n\n\n## Deployment\n\nBuild an uberjar to deploy the service as a jar file\n\n```shell\nmake build-uberjar\n```\n\n- `make build-config` displays the tools.build configuration\n- `make build-clean` deletes the build assets (`target` directory)\n\n```shell\nmake docker-build\n```\n\n- `make docker-down` shuts down all services started with `docker-build`\n- `make docker-build-clean`\n\nOr build and run the service via the multi-stage `Dockerfile` configuration as part of a CI workflow.\n\n\n## License\n\nCopyright © 2025 Baske\n\n[Creative Commons Attribution Share-Alike 4.0 International](http://creativecommons.org/licenses/by-sa/4.0/\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaskeboler%2Fclj_hsm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaskeboler%2Fclj_hsm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaskeboler%2Fclj_hsm/lists"}