Gathering detailed insights and metrics for @atomist/sample-sdm
Gathering detailed insights and metrics for @atomist/sample-sdm
npm install @atomist/sample-sdm
Typescript
Module System
Min. Node Version
Node Version
NPM Version
TypeScript (99.68%)
Dockerfile (0.32%)
Love this project? Help keep it running — sponsor us today! 🚀
Total Downloads
103,002
Last Day
2
Last Week
4
Last Month
403
Last Year
3,776
Apache-2.0 License
546 Commits
2 Forks
3 Watchers
10 Branches
9 Contributors
Updated on Mar 22, 2023
Latest Version
0.5.1-extract-packs.20180608121712
Package Id
@atomist/sample-sdm@0.5.1-extract-packs.20180608121712
Unpacked Size
437.55 kB
Size
87.77 kB
File Count
247
NPM Version
6.1.0
Node Version
9.11.1
Cumulative downloads
Total Downloads
Last Day
0%
2
Compared to previous day
Last Week
33.3%
4
Compared to previous week
Last Month
30%
403
Compared to previous month
Last Year
-73.3%
3,776
Compared to previous year
11
Instance of an Atomist Software Delivery Machine that can be used as a sample or run for real on your Java and TypeScript projects.
A software delivery machine is a development process in a box.
It automates all steps in the flow from commit to production (potentially via staging environments), and many other actions, using the consistent model provided by the Atomist API for software.
Many teams have a blueprint in their mind for how they'd like to deliver software and ease their day to day work, but find it hard to realize. A Software Delivery Machine makes it possible.
The concept is explained in detail in Rod Johnson's blog Why you need a Software Delivery Machine. This video shows it in action.
Please see the Atomist SDM library for explanation on what an SDM can do. The present document describes how to get yours running.
This delivery machine feeds on the Atomist API. You'll need to be a member of an Atomist workspace to run it. Create your own by enrolling at atomist.com.
Things work best if you install an org webhook, so that Atomist receives events for all your GitHub repos.
If the Atomist bot is in your Slack team, type @atomist create sdm
to have Atomist create a personalized version of
this repository for you.
You can fork and clone this repository.
This is an Atomist automation client. See run an automation client for instructions on how to set up your environment and run it under Node.js.
See integrations for additional prerequisites according to the projects you're building.
The client logs to the console so you can see it go. Once it runs, here are some things to do:
In Slack, @atomist create spring
. This will create a Spring Boot repository. The SDM will build it!
To enable deployment beyond the local one, @atomist enable deploy
.
If you have any Java or Node projects in your GitHub org, try linking one to a Slack channel (@atomist link repo
), and then push to it.
You'll see Atomist react to the push, and the SDM might have some Goals it can complete.
Every organization has a different environment and different needs. Your software delivery machine is yours: change the code and do what helps you.
In atomist.config.ts
, you can choose the machine
to start with. cloudFoundryMachine
and k8sMachine
take care of the whole delivery process from project creation through deployment, while other machines focus only on one aspect, such as project creation, static analysis or autofixing problems in repositories.
Atomist is about developing your development experience by using your coding skills. Change the code, restart, and see your new automations and changed behavior across all your projects, within seconds.
The rest of this README describes some changes you might make.
Atomist is a flexible system, enabling you to build your own automations or use those provided by Atomist or third parties.
This repository is a reference implementation of Atomist, which focuses on the goals of a typical delivery flow. You can fork it and modify it as the starting point for your own Atomist implementation, or use it purely as a reference.
This repository shows how Atomist can automate important tasks and improve your delivery flow. Specifically:
It demonstrates Atomist as the API for software, exposing
Atomist is not tied to GitHub, but this repository focuses on using Atomist with GitHub.com or GitHub Enterprise.
The following key functionality of this project will be available when you run this automation client in your team:
@atomist create spring
. The seed project used by default will be spring-team/spring-rest-seed
.
CustomSpringBootGeneratorParameters.ts
to specify your own seed. Just about any Spring Boot project will work as the transformation of a seed project is quite forgiving, and parses the seed to find the location and name of the @SpringBootApplication
class, rather than relying on hard coding.springBootGenerator.ts
.@atomist try to upgrade spring boot
. This will create a branch upgrading to Spring Boot 1.5.9
and wait for the build to complete. If the build succeeds, a PR will be created; if it fails, an issue will be created linking to the failed build log and offending branch. To choose a specific Spring Boot version, or see what happens when a bogus version triggers a failure, try @atomist try to upgrade spring boot desiredBootVersion=<version>
. If you run such a command in a channel linked to an Atomist repository, it will affect only that repository. If you run it in a channel that is not linked, it will affect all repositories by default. You can add a targets.repos=<regex>
parameter to specify a regular expression to target a subset of repo names. For example: @atomist try to upgrade spring boot targets.repos=test.*
.This repo shows the use of Atomist to perform many steps itself. However, each of the goals used by Atomist here is pluggable.
It's also easy to integrate third party tools like Checkstyle.
One of the tools you are most likely to integrate is CI. For example, you can integrate Jenkins, Travis or Circle CI with Atomist so that these tools are responsible for build. This has potential advantages in terms of scheduling and repeatability of environments.
Integrating a CI tool with Atomist is simple. Simply invoke Atomist hooks to send events around build and artifact creation.
If integrating CI tools, we recommend the following:
bash
. If you find your CI usage has you programming in bash
or YML, consider whether invoking such operations from Atomist event handlers might be a better model.tbc
Any tool that runs on code, such as Checkstyle, can easily be integrated.
Use shell. node is good for this
You must set environment variables to choose a machine, if you override the default.
export MACHINE_PATH="./software-delivery-machine/machines"
export MACHINE_NAME="cloudFoundrySoftwareDeliveryMachine"
To run a local HTTP server to invoke via curl
or for smoke testing, please set the following environment variable:
export LOCAL_ATOMIST_ADMIN_PASSWORD="<value>"
To build Java projects on the automation client node, you'll need:
mvn
on the pathTo build Node projects on the automation client node, you'll need:
npm
- v 5.8.0 or abovenode
The following configuration should be in your ~/.atomist/client.config.json
in order to
successfully connect your SDM:
1{ 2 "token": "<your github token>", 3 "teamIds": [ 4 "<your team id>" 5 ], 6 "sdm": { 7 "rolar": { 8 "url": "https://rolar.cfapps.io" 9 }, 10 "graphviz": { 11 "url": "<optional url to graphviz service>" 12 }, 13 "cloudfoundry": { 14 "api": "https://api.run.pivotal.io", 15 "user": "<your Pivotal Cloud Foundry user name>", 16 "password": "<your Pivotal Cloud Foundry password>", 17 "org": "<your Pivotal Cloud Foundry organization name>", 18 "spaces": { 19 "production": "<your Pivotal Cloud Foundry production space name within your org>", 20 "staging": "<your Pivotal Cloud Foundry staging space name within your org>" 21 } 22 }, 23 "checkstyle": { 24 "enabled": false, 25 "reviewOnlyChangedFiles": true, 26 "path": "/Users/cdupuis/Development/atomist/sample-sdm/test/checkstyle-8.8-all.jar" 27 } 28 } 29}
Checkstyle is a style-checker for Java. For the optional Checkstyle integration to work, set up two Checkstyle configuration as shown above.
Get checkstyle-8.8-all.jar
from Checkstyle's download page.
This SDM allows deployment to Pivotal Cloud Foundry. For deployment to work you need to set your user, password and org of your Cloud Foundry account. Additionally please configure two spaces to be used for staging and production deployments.
The kubernetesSoftwareDevelopmentMachine included here deploys to an Atomist sandbox kubernetes environment, using
k8-automation which we run inside our cluster. You can deploy the Spring Boot
projects created with @atomist create spring
here, in order to try out the Kubernetes integration with the SDM.
No vulnerabilities found.
Reason
license file detected
Details
Reason
binaries present in source code
Details
Reason
dependency not pinned by hash detected -- score normalized to 2
Details
Reason
project is archived
Details
Reason
Found 2/24 approved changesets -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
146 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-02-17
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More