diff --git a/action.yml b/action.yml
index cbb40ff..c0bb549 100644
--- a/action.yml
+++ b/action.yml
@@ -13,6 +13,7 @@ inputs:
 
       If this is not given, the action will try and install the version specified in the `rust-toolchain` file.
     required: false
+    #default: ${{ rev }}
   target:
     description: Target triple to install for this toolchain
     required: false
diff --git a/scripts/update-revs.sh b/scripts/update-revs.sh
new file mode 100755
index 0000000..c2e3a4c
--- /dev/null
+++ b/scripts/update-revs.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
+
+if ! git diff-index --quiet HEAD; then
+    echo "Not running update-revs.sh because git working directory is dirty" >&2
+    exit 1
+fi
+
+if ! grep -q "#default: \${{ rev }}" action.yml; then
+    echo "Not running update-revs.sh because action.yml looks wrong" >&2
+    exit 1
+fi
+
+base=$(git rev-parse HEAD)
+git checkout --quiet "$base"
+
+for rev in 1.{0..43}.0 stable beta nightly; do
+    echo "Updating $rev branch"
+    git branch --quiet --delete --force $rev &>/dev/null || true
+    sed -i "s/#default: \${{ rev }}/default: $rev/" action.yml
+    git add action.yml
+    git commit --quiet --message "toolchain: $rev"
+    git checkout --quiet -b $rev
+    git checkout --quiet "$base"
+done