Typescript + some scripts for analysis this is more of a bespoke tooling library than a general purpose nodejs library
I utilize this in an automated flow for concourse-ci, here is the sample pipeline.yml
# Solidity-CI Concourse Pipeline # v0.0.1 # commit: 71811db19fcc80a80fbdca5ff5842f5a --- groups: - name: solidity-contracts jobs: [unit, rinkeby, mainnet] - name: semver jobs: [deployed, versioning, commit] - name: prs jobs: [pr-mythx] resource_types: - name: pull-request type: registry-image source: repository: jtarchie/pr - name: github-status type: registry-image source: repository: resource/github-status resources: - name: eth-dapp-ci type: git source: uri: https://github.com/sambacha/eth-dapp-ci branch: master - name: version type: semver source: driver: git initial_version: 0.0.0 uri: git@github.com:sambacha/eth-dapp-ci branch: version file: version private_key: ((repo_private_key)) - name: release-notes type: git source: uri: https://github.com/sambacha/eth-dapp-ci branch: version - name: ethereum-dapp-rel type: github-release source: owner: sambacha repository: eth-dapp-ci access_token: ((releases_access_token)) - name: ethereum-dapp-pr type: pull-request source: repo: sambacha/eth-dapp-ci access_token: ((prs_access_token)) - name: gh-status type: github-status source: repo: sambacha/eth-dapp-ci access_token: ((prs_access_token)) jobs: - name: unit public: true plan: - get: eth-dapp-ci version: every trigger: true - put: gh-status params: {path: eth-dapp-ci, state: pending} - task: unit file: eth-dapp-ci/ci/test.yml params: COVERALLS_TOKEN: ((coveralls_token)) on_success: put: gh-status params: {path: eth-dapp-ci, state: success} on_failure: put: gh-status params: {path: eth-dapp-ci, state: failure} - name: rinkeby public: true serial_groups: [version] plan: - get: eth-dapp-ci passed: [unit] trigger: true - get: version params: {pre: rinkeby} - put: version params: {file: version/version} - name: mainnet public: true serial_groups: [version] plan: - get: eth-dapp-ci passed: [rinkeby] - get: final-version resource: version passed: [rinkeby] params: {bump: final} - get: release-notes - task: build file: eth-dapp-ci/ci/build.yml input_mapping: {version: final-version} - task: grab-release-notes file: eth-dapp-ci/ci/grab-release-notes.yml - put: version params: {file: final-version/version} - put: ethereum-dapp-rel params: tag: version/version tag_prefix: v committish: eth-dapp-ci/.git/HEAD name: release-info/name body: release-info/notes.md globs: [assets/*] - name: deployed public: true serial_groups: [version] plan: - get: version params: {bump: deployed, pre: rinkeby} - put: version params: {file: version/version} - name: versioning public: true serial_groups: [version] plan: - get: version params: {bump: versioning, pre: rinkeby} - put: version params: {file: version/version} - name: commit public: true serial_groups: [version] plan: - get: version passed: [mainnet] params: {bump: commit, pre: rinkeby} trigger: true - put: version params: {file: version/version} - name: pr-mythx public: true plan: - get: ethereum-dapp-pr version: every trigger: true - task: unit file: ethereum-dapp-pr/ci/test.yml input_mapping: {eth-dapp-ci: ethereum-dapp-pr}SPDX-License-Identifier: ISC