From f69c3b1ecc4a457ab12dbfc087e9dcae6c8d050c Mon Sep 17 00:00:00 2001 From: Steven Borrelli Date: Wed, 18 Feb 2026 14:06:00 +0000 Subject: [PATCH 1/5] update package push to ghcr.io Signed-off-by: Steven Borrelli --- .github/workflows/ci.yaml | 19 +++++++++---------- README.md | 3 +++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c26cc89..6fb4445 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,7 +30,7 @@ env: # By Default this points to Github Package Registry. XPKG_REPO: ghcr.io/${{ github.repository_owner }} - # The example template pushes to Upbound Marketplace + # To push to Upbound marketplace. #XPKG_REPO: xpkg.upbound.io/${{ github.repository_owner }} # Names for the Configuration and corresponding Function Packages @@ -239,16 +239,15 @@ jobs: uses: crossplane-contrib/setup-crossplane-action@cb8aac3f1246b19f101e7f85fd0a38623b4d5ad3 #v0.1.1 with: version: ${{env.XP_VERSION}} - - - name: Login to Upbound + + - name: Login to GitHub Container Registry uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef #v3.6.0 - if: env.XPKG_ACCESS_ID != '' with: - registry: xpkg.upbound.io - username: ${{ secrets.XPKG_ACCESS_ID }} - password: ${{ secrets.XPKG_TOKEN }} + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Push Multi-Platform Function Packages to Upbound + - name: Push Multi-Platform Function Packages to Repository if: env.XPKG_ACCESS_ID != '' run: | FN_XPKG_FILES=$(echo "${{env.XPKG_FN_NAME}}"-*-${{needs.version.outputs.version}}.xpkg | tr ' ' ',') @@ -256,7 +255,7 @@ jobs: echo "Error: No xpkg files found matching pattern" exit 1 fi - crossplane --verbose xpkg push --package-files ${FN_XPKG_FILES} ${{env.XPKG_REPO}}/${{env.XPKG_FN_NAME}}:${{needs.version.outputs.version}} + crossplane --verbose xpkg push --package-files ${FN_XPKG_FILES} ${XPKG_REPO@L}/${{env.XPKG_FN_NAME}}:${{needs.version.outputs.version}} - name: Push Configuration Package to Upbound if: env.XPKG_ACCESS_ID != '' @@ -266,5 +265,5 @@ jobs: echo "Error: Configuration package ${CONF_XPKG_FILE} not found" exit 1 fi - crossplane --verbose xpkg push --package-files ${CONF_XPKG_FILE} ${{env.XPKG_REPO}}/${{env.XPKG_NAME}}:${{needs.version.outputs.version}} + crossplane --verbose xpkg push --package-files ${CONF_XPKG_FILE} ${XPKG_REPO@L}/${{env.XPKG_NAME}}:${{needs.version.outputs.version}} diff --git a/README.md b/README.md index 7d5db44..3ac8e52 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ +**This repository has moved to the Crossplane org at and will be archived.** + # Crossplane Function Template - TypeScript + This repository is a template for building Crossplane composition functions in TypeScript using the [@crossplane-org/function-sdk-typescript](https://github.com/crossplane/function-sdk-typescript). - [Overview](#overview) From 09410706abb41220747400a9f1694bdfe1ef960b Mon Sep 17 00:00:00 2001 From: Steven Borrelli Date: Wed, 18 Feb 2026 14:14:47 +0000 Subject: [PATCH 2/5] remove notice Signed-off-by: Steven Borrelli --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 3ac8e52..7d5db44 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,5 @@ -**This repository has moved to the Crossplane org at and will be archived.** - # Crossplane Function Template - TypeScript - This repository is a template for building Crossplane composition functions in TypeScript using the [@crossplane-org/function-sdk-typescript](https://github.com/crossplane/function-sdk-typescript). - [Overview](#overview) From d3ad51bf324c28d539215c67a553620a8e581606 Mon Sep 17 00:00:00 2001 From: Steven Borrelli Date: Wed, 18 Feb 2026 19:05:09 +0000 Subject: [PATCH 3/5] udpate auth Signed-off-by: Steven Borrelli --- .github/workflows/ci.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6fb4445..2149c04 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -21,11 +21,6 @@ env: XP_CHANNEL: stable XP_VERSION: current - # This CI job will automatically push new builds to xpkg.upbound.io if the - # XPKG_ACCESS_ID and XPKG_TOKEN secrets are set in the GitHub repository (or - # organization) settings. Create a token at https://accounts.upbound.io. - XPKG_ACCESS_ID: ${{ secrets.XPKG_ACCESS_ID }} - # The OCI/Docker Repository to push our images to. # By Default this points to Github Package Registry. XPKG_REPO: ghcr.io/${{ github.repository_owner }} @@ -38,6 +33,9 @@ env: # The function package XPKG_FN_NAME: ${{ github.event.repository.name }}-function + # ghcr.io + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + jobs: # Compute the package version once and share it with all jobs that need it version: @@ -241,6 +239,7 @@ jobs: version: ${{env.XP_VERSION}} - name: Login to GitHub Container Registry + if: env.GITHUB_TOKEN != '' uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef #v3.6.0 with: registry: ghcr.io @@ -248,7 +247,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Push Multi-Platform Function Packages to Repository - if: env.XPKG_ACCESS_ID != '' + if: env.GITHUB_TOKEN != '' run: | FN_XPKG_FILES=$(echo "${{env.XPKG_FN_NAME}}"-*-${{needs.version.outputs.version}}.xpkg | tr ' ' ',') if [ -z "${FN_XPKG_FILES}" ] || [ "${FN_XPKG_FILES}" = "${{env.XPKG_FN_NAME}}-*-${{needs.version.outputs.version}}.xpkg" ]; then @@ -257,8 +256,8 @@ jobs: fi crossplane --verbose xpkg push --package-files ${FN_XPKG_FILES} ${XPKG_REPO@L}/${{env.XPKG_FN_NAME}}:${{needs.version.outputs.version}} - - name: Push Configuration Package to Upbound - if: env.XPKG_ACCESS_ID != '' + - name: Push Configuration Package to Repository + if: env.GITHUB_TOKEN != '' run: | CONF_XPKG_FILE="${{env.XPKG_NAME}}-${{needs.version.outputs.version}}.xpkg" if [ ! -f "${CONF_XPKG_FILE}" ]; then From b65e275763d43bf506b3b5cb03b9e24e7fb5fbbe Mon Sep 17 00:00:00 2001 From: Steven Borrelli Date: Thu, 19 Feb 2026 09:45:05 +0000 Subject: [PATCH 4/5] test action permissions Signed-off-by: Steven Borrelli --- .github/workflows/ci.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2149c04..2a6908e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -215,6 +215,9 @@ jobs: # pushes them as a multi-platform package. We only push the package it the # XPKG_ACCESS_ID and XPKG_TOKEN secrets were provided. push: + permissions: + contents: read + packages: write runs-on: *default-runner needs: - version From b71b8edd209b5ab44fb02874ff3174247f2438c2 Mon Sep 17 00:00:00 2001 From: Steven Borrelli Date: Thu, 19 Feb 2026 09:50:39 +0000 Subject: [PATCH 5/5] remove token env var Signed-off-by: Steven Borrelli --- .github/workflows/ci.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2a6908e..b1284e3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -33,9 +33,6 @@ env: # The function package XPKG_FN_NAME: ${{ github.event.repository.name }}-function - # ghcr.io - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - jobs: # Compute the package version once and share it with all jobs that need it version: @@ -242,7 +239,7 @@ jobs: version: ${{env.XP_VERSION}} - name: Login to GitHub Container Registry - if: env.GITHUB_TOKEN != '' + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef #v3.6.0 with: registry: ghcr.io @@ -250,7 +247,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Push Multi-Platform Function Packages to Repository - if: env.GITHUB_TOKEN != '' + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: | FN_XPKG_FILES=$(echo "${{env.XPKG_FN_NAME}}"-*-${{needs.version.outputs.version}}.xpkg | tr ' ' ',') if [ -z "${FN_XPKG_FILES}" ] || [ "${FN_XPKG_FILES}" = "${{env.XPKG_FN_NAME}}-*-${{needs.version.outputs.version}}.xpkg" ]; then @@ -260,7 +257,7 @@ jobs: crossplane --verbose xpkg push --package-files ${FN_XPKG_FILES} ${XPKG_REPO@L}/${{env.XPKG_FN_NAME}}:${{needs.version.outputs.version}} - name: Push Configuration Package to Repository - if: env.GITHUB_TOKEN != '' + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: | CONF_XPKG_FILE="${{env.XPKG_NAME}}-${{needs.version.outputs.version}}.xpkg" if [ ! -f "${CONF_XPKG_FILE}" ]; then