Skip to content

Releases: ForAllSecure/rules_mayhem

0.8.9

Choose a tag to compare

@xansec xansec released this 12 Mar 14:10
81ee9b3

Small change to allow show to support same ownership options as wait.

What's Changed

Full Changelog: 0.8.8...0.8.9

0.8.8

Choose a tag to compare

@xansec xansec released this 06 Mar 22:47
22d7ba6

Fixed another bug when RUNFILES_MANIFEST was not set/present on the machine.

What's Changed

Full Changelog: 0.8.7...0.8.8

0.8.7

Choose a tag to compare

@xansec xansec released this 05 Mar 19:38
2ba79ee

More robust path resolution on Windows

What's Changed

Full Changelog: 0.8.6...0.8.7

0.8.6

Choose a tag to compare

@xansec xansec released this 26 Feb 14:56

Full Changelog: 0.8.5...0.8.6

Just added back missing dependencies.

0.8.5

Choose a tag to compare

@xansec xansec released this 25 Feb 22:10
aae2cbc

What's Changed

This should remove the platform dependency between Linux and Windows execution environments. The main motivation here was to avoid symlinking on Windows which was A. Expensive and B. Could lead to missing executables when the output base differed from the Bazel working directory. Note that there is still a dependency on generating a batch script due to Windows limitations, but this simply calls a Python script which should correctly resolve the exe path regardless of platform.

Full Changelog: 0.8.4...0.8.5

0.8.4

Choose a tag to compare

@xansec xansec released this 05 Feb 23:07
c03c30d

What's Changed

Note: This is a BREAKING change!! Migration steps included.

  • Previously, the mayhem_run rule was invoked with bazel build, which A. was counterintuitive and B. prevented users from running multiple times as Bazel would not kick off a run if no files were modified (because it considered it a build output). Now, mayhem_run rules are invoked with bazel run. This is accomplished using runfiles, which is now necessary to enable in .bazelrc with common --enable_runfiles.
  • Previously, sarif and junit files were saved under the bazel-rules_mayhem root directory. Now, they are saved in the same directory as the target runfiles (i.e. my_target.sh.runfiles/_main)
  • Added support for image_dependency for the mayhem_run rule, so that the output of a call to oci_push can be depended on prior to running Mayhem.
  • Fixed a bug where owner information for the mayhem wait command could be duplicated, causing the command to fail.
  • Added rules_shell and rules_cc as dependencies as they are no longer part of Bazel core.

How to migrate to 0.8.4:

  1. You will need to update references to the mayhem_run() rule so that they call bazel run instead of bazel build (note: bazel build will technically still work, but it doesn't do anything other than generate the run script).
  2. If you are on Windows, you'll need to add common --enable_runfiles (or common:windows --enable_runfiles if you are using platform-specific configuration).
  3. If you were referencing junit or sarif files from the bazel-rules_mayhem root directory, you will now want to grab these from the target runfiles directory.

Full Changelog: 0.8.3...0.8.4

0.8.3

Choose a tag to compare

@xansec xansec released this 16 Jul 21:08
a68db7a

What's Changed

Full Changelog: 0.8.2...0.8.3

0.8.2

Choose a tag to compare

@xansec xansec released this 13 Jun 05:07
25e7714

What's Changed

Full Changelog: 0.8.1...0.8.2

This release includes a few more bugfixes related to symlinks in Windows. It also removes mayhem_login entirely, and opts for a fully implicit login process. This should reduce build time and overhead for unnecessary login commands.

0.8.1

Choose a tag to compare

@xansec xansec released this 12 Jun 00:05

What's Changed

Full Changelog: 0.8.0...0.8.1

This release reverts the changes made in 0.7.8 and 0.8.0, opting for alternative that does not rely on workspace level secret files. This implementation takes advantage of the fact that Mayhem normally stores login credentials in a default config directory, and respects XDG_CONFIG_HOME. By combining the two, we can give bazel information about where the credentials are without actually exposing them, and rely on the Mayhem CLI to use the credentials for running commands. I believe this solves the security issue.

Note that this is a breaking change. Instead of specifying --action_env=MAYHEM_TOKEN=$MAYHEM_TOKEN, users must now specify their config home with --action_env=XDG_CONFIG_HOME=$XDG_CONFIG_HOME. (Usually, this is ~/.config.)

0.8.0

Choose a tag to compare

@xansec xansec released this 11 Jun 18:42

Full Changelog: 0.7.7...0.8.0

This includes everything from 0.7.8, but bumping to subminor change since this is a breaking change for this rule.

This release includes a breaking change and security update. Previously, Mayhem tokens passed by --action_env could be read in the logs of the remote Bazel cache. Normally, this would only be an issue if an external party had access to the bazel cache. However, some customers share their cache across their organization, which would allow members of one team to view the logs in the cache from another team. Tokens are cheap and easy to regenerate, but Mayhem does not enforce an expiration for tokens, so these leaks can become a problem. The new solution uses a credential file in the user's Bazel workspace to provide credentials for login instead, keeping them out of the remote cache.