diff --git a/.github/pipeline-version b/.github/pipeline-version
index 57807d6..a6c2798 100644
--- a/.github/pipeline-version
+++ b/.github/pipeline-version
@@ -1 +1 @@
-1.22.0
+1.23.0
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 9a99488..7dd5019 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -18,7 +18,7 @@ jobs:
                 restore-keys: ${{ runner.os }}-go-
             - uses: actions/setup-go@v3
               with:
-                go-version: "1.17"
+                go-version: "1.18"
             - name: Install richgo
               run: |
                 #!/usr/bin/env bash
diff --git a/.github/workflows/update-go.yml b/.github/workflows/update-go.yml
new file mode 100644
index 0000000..0a77352
--- /dev/null
+++ b/.github/workflows/update-go.yml
@@ -0,0 +1,61 @@
+name: Update Go
+"on":
+    schedule:
+        - cron: 0 2 * * 1
+    workflow_dispatch: {}
+jobs:
+    update:
+        name: Update Go
+        runs-on:
+            - ubuntu-latest
+        steps:
+            - uses: actions/setup-go@v3
+              with:
+                go-version: "1.18"
+            - uses: actions/checkout@v3
+            - name: Update Go Version
+              id: update-go
+              run: |
+                #!/usr/bin/env bash
+
+                set -euo pipefail
+
+                if [ -z "${GO_VERSION:-}" ]; then
+                    echo "No go version set"
+                    exit 1
+                fi
+
+                OLD_GO_VERSION=$(grep -P '^go \d\.\d+' go.mod | cut -d ' ' -f 2)
+
+                go mod edit -go="$GO_VERSION"
+                go mod tidy
+                go get -u all
+                go mod tidy
+
+                git add go.mod go.sum
+                git checkout -- .
+
+                echo "::set-output name=old-go-version::${OLD_GO_VERSION}"
+                echo "::set-output name=go-version::${GO_VERSION}"
+              env:
+                GO_VERSION: "1.18"
+            - uses: peter-evans/create-pull-request@v4
+              with:
+                author: ${{ secrets.JAVA_GITHUB_USERNAME }} <${{ secrets.JAVA_GITHUB_USERNAME }}@users.noreply.github.com>
+                body: |-
+                    Bumps Go from `${{ steps.update-go.outputs.old-go-version }}` to `${{ steps.update-go.outputs.go-version }}`.
+
+                    <details>
+                    <summary>Release Notes</summary>
+                    ${{ steps.pipeline.outputs.release-notes }}
+                    </details>
+                branch: update/go
+                commit-message: |-
+                    Bump Go from ${{ steps.update-go.outputs.old-go-version }} to ${{ steps.update-go.outputs.go-version }}
+
+                    Bumps Go from ${{ steps.update-go.outputs.old-go-version }} to ${{ steps.update-go.outputs.go-version }}.
+                delete-branch: true
+                labels: semver:minor, type:task
+                signoff: true
+                title: Bump Go from ${{ steps.update-go.outputs.old-go-version }} to ${{ steps.update-go.outputs.go-version }}
+                token: ${{ secrets.JAVA_GITHUB_TOKEN }}
diff --git a/.github/workflows/update-pipeline.yml b/.github/workflows/update-pipeline.yml
index 32c4932..df21036 100644
--- a/.github/workflows/update-pipeline.yml
+++ b/.github/workflows/update-pipeline.yml
@@ -16,14 +16,14 @@ jobs:
         steps:
             - uses: actions/setup-go@v3
               with:
-                go-version: "1.17"
+                go-version: "1.18"
             - name: Install octo
               run: |
                 #!/usr/bin/env bash
 
                 set -euo pipefail
 
-                GO111MODULE=on go get -u -ldflags="-s -w" github.com/paketo-buildpacks/pipeline-builder/cmd/octo
+                go install -ldflags="-s -w" github.com/paketo-buildpacks/pipeline-builder/cmd/octo@latest
             - uses: actions/checkout@v3
             - name: Update Pipeline
               id: pipeline