npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@iota/gh-tangle-release

v0.7.2

Published

Create a release and adds metadata to the IOTA Tangle

Downloads

6

Readme

GitHub Action to Add Release Metadata to The IOTA Tangle

This GitHub Action will take the contents of your GitHub tagged release and create an associated transaction on the IOTA Tangle. This way the data associated with the release becomes immutable.

The action will perform the following steps:

  • Load the release tagged by the input tag_name
  • Create a signature for the content of tarball_url
  • Create a signature for the content of zipball_url
  • Create a signature for each of the attached assets
  • Attach a payload to the IOTA Tangle with information about the release and the hashes

Inputs

  • tag_name: The name of the tag for this release
  • comment: An optional comment to include in the Tangle payload

Outputs

  • tx_hash: The hash of the transaction on the Tangle
  • tx_explore_url: A url which can be used to explore the transaction on the Tangle

Example Payload

{
   "owner": "an-owner",
   "repo": "test-repo",
   "tag_name": "v0.1.0",
   "name": "First full release",
   "comment": "My Awesome Release",
   "body": "This is the body of the description.",
   "tarball_url": "https://api.github.com/repos/an-owner/test-repo/tarball/v0.1.0",
   "tarball_sig": "Me3ouGni0h50TOHQklopu3sJdLFh/ZVlPJom3aDRFVQ=",
   "zipball_url": "https://api.github.com/repos/an-owner/test-repo/zipball/v0.1.0",
   "zipball_sig": "jyQ8U1T4oMSEbT3e9NTuFyoMskwAvti3nmiYKtuh8LU=",
   "assets": [
      {
         "name": "attach-1.zip",
         "size": 150752,
         "url": "https://github.com/an-owner/test-repo/releases/download/v0.1.0/attach-1.zip",
         "sig": "YQylonV2i+5KtwVN0FxTU7ssWflX+6fC29COSbFOmfQ="
      },
      {
         "name": "attach-2.zip",
         "size": 153054,
         "url": "https://github.com/an-owner/test-repo/releases/download/v0.1.0/attach-2.zip",
         "sig": "a+Rgpf5gs0lpCJ8wt+eymkTdo99RbcP0o1PgLCIT2NE="
      }
   ]
}

Usage

Create a GitHub workflow in you repo e.g. /.github/workflows/tangle-release.yml. Most of the environment variables are optional, except for the IOTA_SEED which must be 81 trytes in length. For more details on creating a seed see IOTA Docs - Getting Started - Creating A Seed

on:
  push:
    tags:
      - 'v*' # Push events to matching v*

name: Create Immutable Release

jobs:
  build:
    name: Create Immutable Release
    runs-on: ubuntu-latest
    steps:
      - name: Tangle Release
        id: tangle_release
        uses: iotaledger/[email protected]
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          IOTA_SEED: ${{ secrets.IOTA_SEED }}
          IOTA_NODE: ${{ secrets.IOTA_NODE }} # Optional, defaults to https://nodes.iota.cafe:443
          IOTA_ADDRESS_INDEX: ${{ secrets.IOTA_ADDRESS_INDEX }} # Optional, defaults to 0
          IOTA_DEPTH: ${{ secrets.IOTA_DEPTH }} # Optional, defaults to 3
          IOTA_MWM: ${{ secrets.IOTA_MWM }} # Optional, defaults to 14
          IOTA_TAG: ${{ secrets.IOTA_TAG }} # Optional, defaults to GITHUB9RELEASE
          IOTA_EXPLORE_URL: ${{ secrets.IOTA_EXPLORE_URL }} # Optional, defaults to https://utils.iota.org/transaction/:hash
        with:
          tag_name: ${{ github.ref }}
          comment: My Awesome Release

CLI

The core features are also available to use as a CLI independently of GitHub Actions.

If you install the npm package with:

npm install @iota/gh-tangle-release

You can then execute the following script.

gh-tangle-release

You will then be presented with the following options.

GitHub Tangle Release v0.7.2 🚀

Usage: gh-tangle-release [options]

An application for creating a transaction on the IOTA Tangle from a GitHub release.

Options:
  -v, --version               output the current version
  --github-token <string>     GitHub token for accessing your repository (required)
  --owner <string>            GitHub repository owner (required)
  --repository <string>       GitHub repository (required)
  --release-tag <string>      The release tag from the GitHub repository (required)
  --node <string>             Url of the node to use for attaching the transaction to the tangle (default:
                              "https://nodes.iota.cafe:443")
  --depth <number>            Depth to use for attaching the transaction to the tangle (default: "3")
  --mwm <number>              Minimum weight magnitude to use for attaching the transaction to the tangle (default: "14")
  --seed <string>             81 Tryte seed used to generate addresses (required)
  --address-index <number>    Index number used to generate addresses (default: "0")
  --transaction-tag <string>  Tag to apply to the Tangle transaction (default: "GITHUB9RELEASE")
  --comment <string>          An optional comment to include in the Tangle transaction payload
  --explorer-url <string>     Url of the explorer to use for exploration link (default: "https://utils.iota.org/transaction/:hash")
  --no-color                  Disable colored output
  --help                      Display help

You can also supply some of the options through environment variables:
   --github-token: GITHUB_TOKEN
   --owner: GITHUB_REPOSITORY[0]
   --repository: GITHUB_REPOSITORY[1]
        where GITHUB_REPOSITORY is formatted owner/repository
   --release-tag: GITHUB_REF
   --seed: GTR_SEED


Example: gh-tangle-release --github-token a4d936470cb3d66f5434f787c2500bde9764f --owner my-org --repository my-repo --release-tag v1.0.1 --seed AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA