Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kubelogin for openSUSE:Factory checked in at 2026-06-25 10:53:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubelogin (Old) and /work/SRC/openSUSE:Factory/.kubelogin.new.2088 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubelogin" Thu Jun 25 10:53:01 2026 rev:29 rq:1361547 version:0.2.19 Changes: -------- --- /work/SRC/openSUSE:Factory/kubelogin/kubelogin.changes 2026-05-30 23:01:37.136857896 +0200 +++ /work/SRC/openSUSE:Factory/.kubelogin.new.2088/kubelogin.changes 2026-06-25 10:57:55.546865397 +0200 @@ -1,0 +2,52 @@ +Wed Jun 24 05:23:30 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.2.19: + * What's Changed + - Add optional Azure CLI subscription selection via + --subscription (-s) by @Copilot in #767 + - Return errors when cache cleanup fails by @pathei-kosmos in + #760 + * Maintenance + - Bump golang.org/x/crypto to v0.52.0 and Go to 1.26.4 by + @Copilot in #781 + - Bump MSAL Go v1.4.2→v1.7.2 and azidentity v1.8.0→v1.14.0 to + use form_post response mode by default for + AcquireTokenInteractive by @vineeth-thumma in #778 + - Bump softprops/action-gh-release from 3.0.0 to 3.0.1 by + @dependabot[bot] in #779 + - Bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] + in #777 + - Bump mindsers/changelog-reader-action from 2.2.2 to 2.4.0 by + @dependabot[bot] in #775 + - Bump docker/login-action from 3.0.0 to 4.2.0 by + @dependabot[bot] in #774 + - Bump golangci/golangci-lint-action from 8.0.0 to 9.2.1 by + @dependabot[bot] in #773 + - Bump docker/build-push-action from 5.1.0 to 7.2.0 by + @dependabot[bot] in #772 + - Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] + in #771 + - Bump softprops/action-gh-release from 1 to 3 by + @dependabot[bot] in #770 + - Bump mukunku/tag-exists-action from 1.6.0 to 1.7.0 by + @dependabot[bot] in #769 + - Bump codecov/codecov-action from 6.0.1 to 7.0.0 by + @dependabot[bot] in #768 + - Bump actions/checkout from 3.6.0 to 6.0.3 by @dependabot[bot] + in #766 + - Bump actions/setup-go from 4.1.0 to 6.4.0 by @dependabot[bot] + in #765 + - Bump peaceiris/actions-gh-pages from 3.9.3 to 4.1.0 by + @dependabot[bot] in #764 + - Bump actions/download-artifact from 4 to 8 by + @dependabot[bot] in #763 + - Bump peter-evans/create-pull-request from 5 to 8 by + @dependabot[bot] in #759 + - Bump codecov/codecov-action from 5.1.2 to 6.0.1 by + @dependabot[bot] in #758 + - Bump docker/setup-buildx-action from 3.0.0 to 4.1.0 by + @dependabot[bot] in #757 + - Bump actions/dependency-review-action from 2.5.1 to 5.0.0 by + @dependabot[bot] in #756 + +------------------------------------------------------------------- Old: ---- kubelogin-0.2.18.obscpio New: ---- kubelogin-0.2.19.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubelogin.spec ++++++ --- /var/tmp/diff_new_pack.rN0leC/_old 2026-06-25 10:57:56.222888727 +0200 +++ /var/tmp/diff_new_pack.rN0leC/_new 2026-06-25 10:57:56.226888866 +0200 @@ -17,7 +17,7 @@ Name: kubelogin -Version: 0.2.18 +Version: 0.2.19 Release: 0 Summary: Kubernetes client credential plugin implementing Azure authentication License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.rN0leC/_old 2026-06-25 10:57:56.262890107 +0200 +++ /var/tmp/diff_new_pack.rN0leC/_new 2026-06-25 10:57:56.266890246 +0200 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="manual"> <param name="url">https://github.com/Azure/kubelogin.git</param> <param name="scm">git</param> - <param name="revision">v0.2.18</param> + <param name="revision">v0.2.19</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.rN0leC/_old 2026-06-25 10:57:56.290891074 +0200 +++ /var/tmp/diff_new_pack.rN0leC/_new 2026-06-25 10:57:56.294891212 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/Azure/kubelogin.git</param> - <param name="changesrevision">2e7b8ca929b8141f58c6cfb8153870bf71111531</param></service></servicedata> + <param name="changesrevision">a9b10fbf8422f0c5b687eb58f26d7995f2fe206d</param></service></servicedata> (No newline at EOF) ++++++ kubelogin-0.2.18.obscpio -> kubelogin-0.2.19.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.bingo/golangci-lint.mod new/kubelogin-0.2.19/.bingo/golangci-lint.mod --- old/kubelogin-0.2.18/.bingo/golangci-lint.mod 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.bingo/golangci-lint.mod 2026-06-23 19:26:47.000000000 +0200 @@ -1,5 +1,5 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT -go 1.26.3 +go 1.26.4 require github.com/golangci/golangci-lint/v2 v2.12.2 // cmd/golangci-lint diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.github/workflows/build.yml new/kubelogin-0.2.19/.github/workflows/build.yml --- old/kubelogin-0.2.18/.github/workflows/build.yml 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.github/workflows/build.yml 2026-06-23 19:26:47.000000000 +0200 @@ -27,10 +27,10 @@ GO111MODULE: on steps: - name: Check out code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Set up Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: "go.mod" cache: false @@ -39,7 +39,7 @@ run: make test - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5.1.2 + uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 build-linux-and-windows: name: Build Linux and Windows @@ -47,10 +47,10 @@ needs: test steps: - name: Check out code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Set up Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: "go.mod" cache: false @@ -97,10 +97,10 @@ needs: test steps: - name: Check out code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Set up Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: "go.mod" cache: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.github/workflows/dependency-review.yml new/kubelogin-0.2.19/.github/workflows/dependency-review.yml --- old/kubelogin-0.2.18/.github/workflows/dependency-review.yml 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.github/workflows/dependency-review.yml 2026-06-23 19:26:47.000000000 +0200 @@ -17,6 +17,6 @@ runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: 'Dependency Review' - uses: actions/dependency-review-action@0efb1d1d84fc9633afcdaad14c485cbbc90ef46c # v2.5.1 + uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.github/workflows/docker-publish.yml new/kubelogin-0.2.19/.github/workflows/docker-publish.yml --- old/kubelogin-0.2.18/.github/workflows/docker-publish.yml 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.github/workflows/docker-publish.yml 2026-06-23 19:26:47.000000000 +0200 @@ -26,19 +26,19 @@ run: echo "IMAGE_NAME=$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV - name: Check out code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Set up Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: "go.mod" cache: false - name: Set up Docker Buildx - uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 + uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0 - name: Log in to GitHub Container Registry - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 + uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -70,7 +70,7 @@ file bin/linux_arm64/kubelogin - name: Build and push Docker image - uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0 + uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 with: context: . platforms: linux/amd64,linux/arm64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.github/workflows/golangci-lint.yml new/kubelogin-0.2.19/.github/workflows/golangci-lint.yml --- old/kubelogin-0.2.18/.github/workflows/golangci-lint.yml 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.github/workflows/golangci-lint.yml 2026-06-23 19:26:47.000000000 +0200 @@ -26,12 +26,12 @@ deployments: read packages: none steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: "go.mod" cache: false - name: golangci-lint - uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8.0.0 + uses: golangci/golangci-lint-action@82606bf257cbaff209d206a39f5134f0cfbfd2ee # v9.2.1 with: version: v2.12.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.github/workflows/release.yml new/kubelogin-0.2.19/.github/workflows/release.yml --- old/kubelogin-0.2.18/.github/workflows/release.yml 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.github/workflows/release.yml 2026-06-23 19:26:47.000000000 +0200 @@ -19,19 +19,19 @@ tag_version: "v${{ steps.changelog_reader.outputs.version }}" steps: - name: Check out code into the Go module directory - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 # Read changelog and read versions etc. - name: Check version is mentioned in Changelog.md id: changelog_reader - uses: mindsers/changelog-reader-action@b97ce03a10d9bdbb07beb491c76a5a01d78cd3ef # v2.2.2 + uses: mindsers/changelog-reader-action@1faaf50aa09d5793d9a100819973df801febfb31 # v2.4.0 with: validation_depth: 10 path: "CHANGELOG.md" # Check if the newest tag already exists - name: Check if tag exist - uses: mukunku/tag-exists-action@bdad1eaa119ce71b150b952c97351c75025c06a9 # v1.6.0 + uses: mukunku/tag-exists-action@5c39604fe8aef7e65acb6fbcf96ec580f7680313 # v1.7.0 id: check-tag-exists with: tag: "v${{ steps.changelog_reader.outputs.version }} release" @@ -42,7 +42,7 @@ - name: Create Kubelogin Draft Release id: create_release if: ${{ steps.check-tag-exists.outputs.exists == 'false'}} - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 + uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -58,13 +58,13 @@ if: ${{ needs.create-release.outputs.release_id != '' }} steps: - name: Check out code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Get tags run: git fetch --tags - name: Set up Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: "go.mod" cache: false @@ -119,13 +119,13 @@ tar -czf windows-kubelogin.tar.gz bin/windows_* - name: Upload Linux artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: linux-binaries path: linux-kubelogin.tar.gz - name: Upload Windows artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: windows-binaries path: windows-kubelogin.tar.gz @@ -137,13 +137,13 @@ if: ${{ needs.create-release.outputs.release_id != '' }} steps: - name: Check out code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Get tags run: git fetch --tags - name: Set up Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: "go.mod" cache: false @@ -169,7 +169,7 @@ tar -czf macos-kubelogin.tar.gz bin/darwin_* - name: Upload macOS artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: macos-binaries path: macos-kubelogin.tar.gz @@ -183,7 +183,7 @@ if: ${{ needs.create-release.outputs.release_id != '' }} steps: - name: Download all artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: bin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.github/workflows/update-changelog.yml new/kubelogin-0.2.19/.github/workflows/update-changelog.yml --- old/kubelogin-0.2.18/.github/workflows/update-changelog.yml 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.github/workflows/update-changelog.yml 2026-06-23 19:26:47.000000000 +0200 @@ -25,13 +25,13 @@ steps: - name: Checkout repository # v4.1.1 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: fetch-depth: 0 # Fetch all history - name: Set up Go # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c with: go-version-file: "go.mod" cache: true @@ -60,7 +60,7 @@ rm changelog-entry.md - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v8 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: >- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/.github/workflows/website.yaml new/kubelogin-0.2.19/.github/workflows/website.yaml --- old/kubelogin-0.2.18/.github/workflows/website.yaml 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/.github/workflows/website.yaml 2026-06-23 19:26:47.000000000 +0200 @@ -16,7 +16,7 @@ runs-on: ubuntu-latest steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: submodules: true fetch-depth: 0 @@ -31,7 +31,7 @@ run: make -C docs/book build - name: Deploy - uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3.9.3 + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 if: ${{ github.ref == 'refs/heads/main' }} with: github_token: ${{ secrets.GITHUB_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/CHANGELOG.md new/kubelogin-0.2.19/CHANGELOG.md --- old/kubelogin-0.2.18/CHANGELOG.md 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/CHANGELOG.md 2026-06-23 19:26:47.000000000 +0200 @@ -1,5 +1,41 @@ # Change Log +## [0.2.19] + +### What's Changed + +* Add optional Azure CLI subscription selection via `--subscription` (`-s`) by @Copilot in https://github.com/Azure/kubelogin/pull/767 +* Return errors when cache cleanup fails by @pathei-kosmos in https://github.com/Azure/kubelogin/pull/760 + +### Maintenance + +* Bump golang.org/x/crypto to v0.52.0 and Go to 1.26.4 by @Copilot in https://github.com/Azure/kubelogin/pull/781 +* Bump MSAL Go v1.4.2→v1.7.2 and azidentity v1.8.0→v1.14.0 to use form_post response mode by default for AcquireTokenInteractive by @vineeth-thumma in https://github.com/Azure/kubelogin/pull/778 +* Bump softprops/action-gh-release from 3.0.0 to 3.0.1 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/779 +* Bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/777 +* Bump mindsers/changelog-reader-action from 2.2.2 to 2.4.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/775 +* Bump docker/login-action from 3.0.0 to 4.2.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/774 +* Bump golangci/golangci-lint-action from 8.0.0 to 9.2.1 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/773 +* Bump docker/build-push-action from 5.1.0 to 7.2.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/772 +* Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/771 +* Bump softprops/action-gh-release from 1 to 3 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/770 +* Bump mukunku/tag-exists-action from 1.6.0 to 1.7.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/769 +* Bump codecov/codecov-action from 6.0.1 to 7.0.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/768 +* Bump actions/checkout from 3.6.0 to 6.0.3 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/766 +* Bump actions/setup-go from 4.1.0 to 6.4.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/765 +* Bump peaceiris/actions-gh-pages from 3.9.3 to 4.1.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/764 +* Bump actions/download-artifact from 4 to 8 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/763 +* Bump peter-evans/create-pull-request from 5 to 8 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/759 +* Bump codecov/codecov-action from 5.1.2 to 6.0.1 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/758 +* Bump docker/setup-buildx-action from 3.0.0 to 4.1.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/757 +* Bump actions/dependency-review-action from 2.5.1 to 5.0.0 by @dependabot[bot] in https://github.com/Azure/kubelogin/pull/756 + +### New Contributors + +* @pathei-kosmos made their first contribution in https://github.com/Azure/kubelogin/pull/760 + +**Full Changelog**: https://github.com/Azure/kubelogin/compare/v0.2.18...v0.2.19 + ## [0.2.18] ### What's Changed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/docs/book/src/concepts/login-modes/azurecli.md new/kubelogin-0.2.19/docs/book/src/concepts/login-modes/azurecli.md --- old/kubelogin-0.2.18/docs/book/src/concepts/login-modes/azurecli.md 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/docs/book/src/concepts/login-modes/azurecli.md 2026-06-23 19:26:47.000000000 +0200 @@ -21,6 +21,8 @@ kubectl get nodes ``` +To use a specific Azure subscription instead of Azure CLI's active subscription, specify `--subscription` (or `-s`) with `convert-kubeconfig` or `get-token`. + When Azure CLI's config directory is outside the `${HOME}` directory, `--azure-config-dir` should be specified in `convert-kubeconfig` subcommand. It will generate the kubeconfig with environment variable configured. The same thing can also be achieved by setting environment variable `AZURE_CONFIG_DIR` to this directory while running `kubectl` command. ## References diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/go.mod new/kubelogin-0.2.19/go.mod --- old/kubelogin-0.2.18/go.mod 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/go.mod 2026-06-23 19:26:47.000000000 +0200 @@ -1,25 +1,25 @@ module github.com/Azure/kubelogin // NOTE: kubelogin follows the same support policy as Go, which supports the last two major versions. -go 1.26.3 +go 1.26.4 require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.22.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.4.0 github.com/Azure/go-autorest/autorest v0.11.29 github.com/Azure/go-autorest/autorest/adal v0.9.23 github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 + github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2 github.com/golang-jwt/jwt/v4 v4.5.2 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.11.1 go.uber.org/mock v0.5.0 - golang.org/x/crypto v0.45.0 - golang.org/x/sys v0.38.0 + golang.org/x/crypto v0.52.0 + golang.org/x/sys v0.45.0 gopkg.in/dnaeon/go-vcr.v4 v4.0.2 k8s.io/apimachinery v0.29.3 k8s.io/cli-runtime v0.29.3 @@ -28,7 +28,7 @@ ) require ( - github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect @@ -43,7 +43,7 @@ github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.3 // indirect + github.com/golang-jwt/jwt/v5 v5.3.1 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/gnostic-models v0.6.8 // indirect @@ -69,11 +69,11 @@ github.com/pmezard/go-difflib v1.0.0 // indirect github.com/xlab/treeprint v1.2.0 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect - golang.org/x/net v0.47.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.18.0 // indirect - golang.org/x/term v0.37.0 // indirect - golang.org/x/text v0.31.0 // indirect + golang.org/x/sync v0.20.0 // indirect + golang.org/x/term v0.43.0 // indirect + golang.org/x/text v0.37.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/go.sum new/kubelogin-0.2.19/go.sum --- old/kubelogin-0.2.18/go.sum 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/go.sum 2026-06-23 19:26:47.000000000 +0200 @@ -1,12 +1,12 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 h1:nyQWyZvwGTvunIMxi1Y9uXkcyr+I7TeNrr/foo4Kpk8= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 h1:B/dfvscEQtew9dVuoxqxrUKKv8Ih2f55PydknDamU+g= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0/go.mod h1:fiPSssYvltE08HJchL04dOy+RD4hgrjph0cwGGMntdI= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 h1:+m0M/LFxN43KvULkDNfdXOgrjtg6UYJPFBJyuEcRCAw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0/go.mod h1:PwOyop78lveYMRs6oCxjiVyBdyCgIYH6XHIVZO9/SFQ= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.22.0 h1:aokoqcHvaGjiM3VpjKDfMMnF/8epJ+Q1HLJ7CudztqE= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.22.0/go.mod h1:/WYEx9pcM9Y+Dd/APJaNlSvVSvzl54rrMdZT5+Oi2LM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0 h1:CU4+EJeJi3TKYWEcYuSdWsjzw0nVsK/H0MSQOiPcymU= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0/go.mod h1:q0+UTSRvShwUCrR/s5HtyInYphN7Wvxb7snFM3u+SLA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.4.0 h1:xFaZZ+IubdftrDHnGGwZ6QvQ3KHTtWl2MCK+GMt2vxs= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.4.0/go.mod h1:mCBhUhlMjLLJKr5aqw2TNS/VqJOie8MzWq3DAMJeKso= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 h1:fhqpLE3UEXi9lPaBRpQ6XuRW0nU7hgg4zlmZZa+a9q4= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0/go.mod h1:7dCRMLwisfRH3dBupKeNCioWYUZ4SS09Z14H+7i8ZoY= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= @@ -27,12 +27,10 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2 h1:RHK7bS+HQMslb1sZpAokUt+zTVmue0hKSs2C791hhzU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -44,8 +42,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -70,8 +66,8 @@ github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.2.3 h1:kkGXqQOBSDDWRhWNXTFpqGSCMyh/PLnqUvMGJPDJDs0= -github.com/golang-jwt/jwt/v5 v5.2.3/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= +github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -157,8 +153,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= -github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -179,8 +173,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -196,8 +190,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= -golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= +golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -217,8 +211,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= @@ -228,8 +222,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -243,21 +237,21 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= -golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= +golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= +golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= -golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -269,8 +263,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= -golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= +golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/cmd/removecachedir.go new/kubelogin-0.2.19/pkg/cmd/removecachedir.go --- old/kubelogin-0.2.18/pkg/cmd/removecachedir.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/cmd/removecachedir.go 2026-06-23 19:26:47.000000000 +0200 @@ -1,11 +1,11 @@ package cmd import ( + "fmt" "os" "github.com/Azure/kubelogin/pkg/internal/token" "github.com/spf13/cobra" - klog "k8s.io/klog/v2" ) // newRemoveAuthRecordCacheCmd provides a cobra command for removing token cache sub command @@ -18,7 +18,7 @@ SilenceUsage: true, RunE: func(c *cobra.Command, args []string) error { if err := os.RemoveAll(authRecordCacheDir); err != nil { - klog.V(5).Infof("unable to delete authentication record cache in '%s': %s", authRecordCacheDir, err) + return fmt.Errorf("unable to delete authentication record cache in %q: %w", authRecordCacheDir, err) } return nil }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/cmd/removecachedir_test.go new/kubelogin-0.2.19/pkg/cmd/removecachedir_test.go --- old/kubelogin-0.2.18/pkg/cmd/removecachedir_test.go 1970-01-01 01:00:00.000000000 +0100 +++ new/kubelogin-0.2.19/pkg/cmd/removecachedir_test.go 2026-06-23 19:26:47.000000000 +0200 @@ -0,0 +1,74 @@ +package cmd + +import ( + "errors" + "io" + "os" + "path/filepath" + "testing" + + "github.com/spf13/cobra" +) + +func TestRemoveCacheDirReturnsErrorOnFailure(t *testing.T) { + badPath := pathWithFileAsParent(t) + cmd := newRemoveAuthRecordCacheCmd() + err := executeCommand(cmd, "--cache-dir", badPath) + + if err == nil { + t.Fatal("expected remove-cache-dir to return an error when cache deletion fails") + } + var pathErr *os.PathError + if !errors.As(err, &pathErr) { + t.Fatalf("expected wrapped cache deletion path error, got: %v", err) + } +} + +func TestRemoveTokensReturnsErrorOnFailure(t *testing.T) { + badPath := pathWithFileAsParent(t) + cmd := newRemoveAuthRecordCacheCmdDeprecated() + err := executeCommand(cmd, "--token-cache-dir", badPath) + + if err == nil { + t.Fatal("expected remove-tokens to return an error when cache deletion fails") + } + var pathErr *os.PathError + if !errors.As(err, &pathErr) { + t.Fatalf("expected wrapped cache deletion path error, got: %v", err) + } +} + +func TestRemoveCacheDirSucceedsForNonexistentPath(t *testing.T) { + cacheDir := filepath.Join(t.TempDir(), "missing-cache") + cmd := newRemoveAuthRecordCacheCmd() + if err := executeCommand(cmd, "--cache-dir", cacheDir); err != nil { + t.Fatalf("expected remove-cache-dir to succeed for a nonexistent path, got: %v", err) + } +} + +func TestRemoveTokensSucceedsForNonexistentPath(t *testing.T) { + cacheDir := filepath.Join(t.TempDir(), "missing-cache") + cmd := newRemoveAuthRecordCacheCmdDeprecated() + if err := executeCommand(cmd, "--token-cache-dir", cacheDir); err != nil { + t.Fatalf("expected remove-tokens to succeed for a nonexistent path, got: %v", err) + } +} + +func executeCommand(cmd *cobra.Command, args ...string) error { + // Discard command output, including deprecation warnings + cmd.SetOut(io.Discard) + cmd.SetErr(io.Discard) + cmd.SetArgs(args) + return cmd.Execute() +} + +func pathWithFileAsParent(t *testing.T) string { + t.Helper() + + // Use a file parent to make os.RemoveAll fail deterministically + parentFile := filepath.Join(t.TempDir(), "cache-parent") + if err := os.WriteFile(parentFile, []byte("not a directory"), 0600); err != nil { + t.Fatalf("failed to create parent file: %v", err) + } + return filepath.Join(parentFile, "child") +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/cmd/removetokencache.go new/kubelogin-0.2.19/pkg/cmd/removetokencache.go --- old/kubelogin-0.2.18/pkg/cmd/removetokencache.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/cmd/removetokencache.go 2026-06-23 19:26:47.000000000 +0200 @@ -1,11 +1,11 @@ package cmd import ( + "fmt" "os" "github.com/Azure/kubelogin/pkg/internal/token" "github.com/spf13/cobra" - klog "k8s.io/klog/v2" ) // newRemoveAuthRecordCacheCmd provides a cobra command for removing token cache sub command @@ -18,7 +18,7 @@ SilenceUsage: true, RunE: func(c *cobra.Command, args []string) error { if err := os.RemoveAll(authRecordCacheDir); err != nil { - klog.V(5).Infof("unable to delete authentication record cache in '%s': %s", authRecordCacheDir, err) + return fmt.Errorf("unable to delete authentication record cache in %q: %w", authRecordCacheDir, err) } return nil }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/internal/converter/convert.go new/kubelogin-0.2.19/pkg/internal/converter/convert.go --- old/kubelogin-0.2.18/pkg/internal/converter/convert.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/internal/converter/convert.go 2026-06-23 19:26:47.000000000 +0200 @@ -22,6 +22,7 @@ argClientID = "--client-id" argServerID = "--server-id" argTenantID = "--tenant-id" + argSubscriptionID = "--subscription" argEnvironment = "--environment" argClientSecret = "--client-secret" argClientCert = "--client-certificate" @@ -47,6 +48,7 @@ flagContext = "context" flagServerID = "server-id" flagTenantID = "tenant-id" + flagSubscriptionID = "subscription" flagEnvironment = "environment" flagClientSecret = "client-secret" flagClientCert = "client-certificate" @@ -309,6 +311,9 @@ if o.isSet(flagTenantID) { exec.Args = append(exec.Args, argTenantID, o.TokenOptions.TenantID) } + if o.isSet(flagSubscriptionID) { + exec.Args = append(exec.Args, argSubscriptionID, o.TokenOptions.SubscriptionID) + } case token.DeviceCodeLogin: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/internal/converter/convert_test.go new/kubelogin-0.2.19/pkg/internal/converter/convert_test.go --- old/kubelogin-0.2.18/pkg/internal/converter/convert_test.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/internal/converter/convert_test.go 2026-06-23 19:26:47.000000000 +0200 @@ -21,6 +21,7 @@ clientID = "clientID" spClientID = "spClientID" tenantID = "tenantID" + subscriptionID = "subscriptionID" clientSecret = "foosecret" clientCert = "/tmp/clientcert" clientCertPassword = "clientcertsecret" @@ -574,6 +575,28 @@ }, command: execName, }, + { + name: "with exec format kubeconfig, convert from azurecli to azurecli with --subscription", + execArgItems: []string{ + getTokenCommand, + argEnvironment, envName, + argServerID, serverID, + argClientID, clientID, + argTenantID, tenantID, + argLoginMethod, token.AzureCLILogin, + }, + overrideFlags: map[string]string{ + flagLoginMethod: token.AzureCLILogin, + flagSubscriptionID: subscriptionID, + }, + expectedArgs: []string{ + getTokenCommand, + argServerID, serverID, + argLoginMethod, token.AzureCLILogin, + argSubscriptionID, subscriptionID, + }, + command: execName, + }, { name: "with exec format kubeconfig, convert from azurecli to azurecli, with envName as overrides", execArgItems: []string{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/internal/pop/msal_public.go new/kubelogin-0.2.19/pkg/internal/pop/msal_public.go --- old/kubelogin-0.2.18/pkg/internal/pop/msal_public.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/internal/pop/msal_public.go 2026-06-23 19:26:47.000000000 +0200 @@ -174,7 +174,7 @@ } // Username/password login (first time, user switch, or after cache cleared due to silent acquisition failure) - result, err := client.AcquireTokenByUsernamePassword( + result, err := client.AcquireTokenByUsernamePassword( //nolint:staticcheck // ROPC is deprecated but kubelogin must support it for backwards compatibility ctx, scopes, username, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/internal/token/azureclicredential.go new/kubelogin-0.2.19/pkg/internal/token/azureclicredential.go --- old/kubelogin-0.2.18/pkg/internal/token/azureclicredential.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/internal/token/azureclicredential.go 2026-06-23 19:26:47.000000000 +0200 @@ -17,7 +17,8 @@ func newAzureCLICredential(opts *Options) (CredentialProvider, error) { cred, err := azidentity.NewAzureCLICredential(&azidentity.AzureCLICredentialOptions{ - TenantID: opts.TenantID, + TenantID: opts.TenantID, + Subscription: opts.SubscriptionID, }) if err != nil { return nil, fmt.Errorf("failed to create azure cli credential: %w", err) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/internal/token/options.go new/kubelogin-0.2.19/pkg/internal/token/options.go --- old/kubelogin-0.2.18/pkg/internal/token/options.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/internal/token/options.go 2026-06-23 19:26:47.000000000 +0200 @@ -35,6 +35,7 @@ Password string ServerID string TenantID string + SubscriptionID string Environment string IsLegacy bool Timeout time.Duration @@ -126,6 +127,7 @@ _ = fs.MarkDeprecated("token-cache-dir", "use --cache-dir instead") fs.StringVar(&o.AuthRecordCacheDir, "cache-dir", o.AuthRecordCacheDir, "directory to cache authentication record") fs.StringVarP(&o.TenantID, "tenant-id", "t", o.TenantID, fmt.Sprintf("AAD tenant ID. It may be specified in %s environment variable. For Azure Pipelines login, it may be specified in %s environment variable", env.AzureTenantID, env.AzureSubscriptionTenantID)) + fs.StringVarP(&o.SubscriptionID, "subscription", "s", o.SubscriptionID, "Azure subscription ID or name. Used in azurecli login method") fs.StringVarP(&o.Environment, "environment", "e", o.Environment, "Azure environment name") fs.BoolVar(&o.IsLegacy, "legacy", o.IsLegacy, "set to true to get token with 'spn:' prefix in audience claim") fs.BoolVar(&o.UseAzureRMTerraformEnv, "use-azurerm-env-vars", o.UseAzureRMTerraformEnv, @@ -318,6 +320,7 @@ fmt.Sprintf("Login Method: %s", o.LoginMethod), fmt.Sprintf("Environment: %s", o.Environment), fmt.Sprintf("TenantID: %s", o.TenantID), + fmt.Sprintf("SubscriptionID: %s", o.SubscriptionID), fmt.Sprintf("ServerID: %s", o.ServerID), fmt.Sprintf("ClientID: %s", o.ClientID), fmt.Sprintf("IsLegacy: %t", o.IsLegacy), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/internal/token/options_test.go new/kubelogin-0.2.19/pkg/internal/token/options_test.go --- old/kubelogin-0.2.18/pkg/internal/token/options_test.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/internal/token/options_test.go 2026-06-23 19:26:47.000000000 +0200 @@ -22,6 +22,7 @@ if err := o.Validate(); err != nil { t.Fatalf("option validation failed: %s", err) } + dir, _ := filepath.Split(o.authRecordCacheFile) if dir != DefaultAuthRecordCacheDir { t.Fatalf("token cache directory is expected to be %s, got %s", DefaultAuthRecordCacheDir, dir) @@ -225,6 +226,34 @@ } +func TestOptionsSubscriptionFlag(t *testing.T) { + t.Run("long form subscription flag", func(t *testing.T) { + o := defaultOptions() + fs := &pflag.FlagSet{} + o.AddFlags(fs) + + if err := fs.Parse([]string{"--subscription", "test-subscription"}); err != nil { + t.Fatalf("failed to parse --subscription flag: %v", err) + } + if o.SubscriptionID != "test-subscription" { + t.Fatalf("expected SubscriptionID to be %q, got %q", "test-subscription", o.SubscriptionID) + } + }) + + t.Run("short form subscription flag", func(t *testing.T) { + o := defaultOptions() + fs := &pflag.FlagSet{} + o.AddFlags(fs) + + if err := fs.Parse([]string{"-s", "test-subscription"}); err != nil { + t.Fatalf("failed to parse -s flag: %v", err) + } + if o.SubscriptionID != "test-subscription" { + t.Fatalf("expected SubscriptionID to be %q, got %q", "test-subscription", o.SubscriptionID) + } + }) +} + func defaultOptions() Options { o := NewOptions(true) o.Timeout = 30 * time.Second diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubelogin-0.2.18/pkg/internal/token/usernamepasswordcredential.go new/kubelogin-0.2.19/pkg/internal/token/usernamepasswordcredential.go --- old/kubelogin-0.2.18/pkg/internal/token/usernamepasswordcredential.go 2026-05-30 02:06:41.000000000 +0200 +++ new/kubelogin-0.2.19/pkg/internal/token/usernamepasswordcredential.go 2026-06-23 19:26:47.000000000 +0200 @@ -11,7 +11,7 @@ ) type UsernamePasswordCredential struct { - cred *azidentity.UsernamePasswordCredential + cred *azidentity.UsernamePasswordCredential //nolint:staticcheck // ROPC is deprecated but kubelogin must support it for backwards compatibility } var _ CredentialProvider = (*UsernamePasswordCredential)(nil) @@ -40,7 +40,7 @@ } } - azOpts := &azidentity.UsernamePasswordCredentialOptions{ + azOpts := &azidentity.UsernamePasswordCredentialOptions{ //nolint:staticcheck // ROPC is deprecated but kubelogin must support it for backwards compatibility ClientOptions: azcore.ClientOptions{Cloud: opts.GetCloudConfiguration()}, AuthenticationRecord: record, Cache: c, ++++++ kubelogin.obsinfo ++++++ --- /var/tmp/diff_new_pack.rN0leC/_old 2026-06-25 10:57:56.594901566 +0200 +++ /var/tmp/diff_new_pack.rN0leC/_new 2026-06-25 10:57:56.602901842 +0200 @@ -1,5 +1,5 @@ name: kubelogin -version: 0.2.18 -mtime: 1780099601 -commit: 2e7b8ca929b8141f58c6cfb8153870bf71111531 +version: 0.2.19 +mtime: 1782235607 +commit: a9b10fbf8422f0c5b687eb58f26d7995f2fe206d ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/kubelogin/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubelogin.new.2088/vendor.tar.gz differ: char 12, line 1
