Table of contents

Releases

A release is a version of your application that is used to associate commits, source maps and other parts of the project with events occurring in the application.

Releases are sent to the Hawk servers and used to display information in an event overview.

Here's what Hawk's releases currently support:

  1. Application source maps on JavaScript
  2. Git commits that are used to identify suspicious ones

To save JavaScript source maps we recommend to use our Webpack Plugin

const HawkWebpackPlugin = require('@hawk.so/webpack-plugin'); module.exports = { // ... other webpack options plugins: [ new HawkWebpackPlugin({ integrationToken: '' // Your project's Integration Token }) ], devtool: 'hidden-source-map', }

By default Webpack Plugin also trying to send a few last commits. Suspicious commits will be shown in the event overview. That is useful feature that can help in investigation of the errors' origin. Learn more about the plugin configuration in the repository.

For other languages you can separately send commits that will be associated with the release. 

In order for the releases to work, it is necessary that the release name of the events matches the name of the sent release.

You can send commits for the releases for example using shell script from hawk.releases repository.

Manually: 

$ ./commits.sh --release="Version 2.0.1" --token=eyJ...integrationToken...

In GitHub actions, for example. The release name uses the package name and version.

jobs: build: runs-on: ubuntu-20.04 steps: # Get package new version name - name: Get package info id: packageInfo uses: codex-team/action-nodejs-package-info@v1 - name: Send commits to Hawk run: | curl https://raw.githubusercontent.com/codex-team/hawk.releases/main/scripts/commits.sh -O chmod +x ./commits.sh ./commits.sh -r=${{ steps.package.outputs.name }}-${{ steps.package.outputs.version }} -t=${{ env.HAWK_TOKEN }} rm ./commits.sh