This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 5d5592b2e29 Fix unauthenticated GitHub API calls in `breeze ci
upgrade` (#63974)
5d5592b2e29 is described below
commit 5d5592b2e29c603ecf9a5cf9961b718982034462
Author: Jarek Potiuk <[email protected]>
AuthorDate: Fri Mar 20 11:05:09 2026 +0100
Fix unauthenticated GitHub API calls in `breeze ci upgrade` (#63974)
Two GitHub API calls in upgrade_important_versions.py (for fetching
latest releases of mprocs and openapi-generator) were not using the
GitHub token, hitting the 60 req/hr unauthenticated rate limit.
Also adds --github-token option to `breeze ci upgrade` so the token
can be passed explicitly instead of relying on `gh auth token`.
---
dev/breeze/doc/images/output_ci_upgrade.svg | 54 ++++++++++++----------
dev/breeze/doc/images/output_ci_upgrade.txt | 2 +-
.../src/airflow_breeze/commands/ci_commands.py | 27 ++++++-----
.../airflow_breeze/commands/ci_commands_config.py | 1 +
scripts/ci/prek/upgrade_important_versions.py | 12 ++++-
5 files changed, 58 insertions(+), 38 deletions(-)
diff --git a/dev/breeze/doc/images/output_ci_upgrade.svg
b/dev/breeze/doc/images/output_ci_upgrade.svg
index af29b7e1243..917c84b3559 100644
--- a/dev/breeze/doc/images/output_ci_upgrade.svg
+++ b/dev/breeze/doc/images/output_ci_upgrade.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 977.1999999999999"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1001.5999999999999"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-ci-upgrade-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="926.1999999999999" />
+ <rect x="0" y="0" width="1463.0" height="950.5999999999999" />
</clipPath>
<clipPath id="breeze-ci-upgrade-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -156,9 +156,12 @@
<clipPath id="breeze-ci-upgrade-line-36">
<rect x="0" y="879.9" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-ci-upgrade-line-37">
+ <rect x="0" y="904.3" width="1464" height="24.65"/>
+ </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="975.2" rx="8"/><text
class="breeze-ci-upgrade-title" fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: ci upgrade</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="999.6" rx="8"/><text
class="breeze-ci-upgrade-title" fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: ci upgrade</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -184,28 +187,29 @@
</text><text class="breeze-ci-upgrade-r5" x="0" y="337.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-13)">│</text><text
class="breeze-ci-upgrade-r5" x="488" y="337.2" textLength="195.2"
clip-path="url(#breeze-ci-upgrade-line-13)">../airflow-site]</text><text
class="breeze-ci-upgrade-r6" x="695.4" y="337.2" textLength="134.2"
clip-path="url(#breeze-ci-upgrade-line-13)">(DIRECTORY)</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="337.2" textLength="12.2"
clip-path="url( [...]
</text><text class="breeze-ci-upgrade-r5" x="0" y="361.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-14)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="361.6" textLength="439.2"
clip-path="url(#breeze-ci-upgrade-line-14)">--force-k8s-schema-sync             </text><text
class="breeze-ci-upgrade-r1" x="488" y="361.6" textLength="951.6"
clip-path="url(#breeze-ci-upgrade-line-14)">Force syncing  [...]
</text><text class="breeze-ci-upgrade-r5" x="0" y="386" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-15)">│</text><text
class="breeze-ci-upgrade-r1" x="488" y="386" textLength="951.6"
clip-path="url(#breeze-ci-upgrade-line-15)">published                                        
[...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="410.4" textLength="1464"
clip-path="url(#breeze-ci-upgrade-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-upgrade-r1" x="1464" y="410.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-16)">
-</text><text class="breeze-ci-upgrade-r5" x="0" y="434.8" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-17)">╭─</text><text
class="breeze-ci-upgrade-r5" x="24.4" y="434.8" textLength="183"
clip-path="url(#breeze-ci-upgrade-line-17)"> Upgrade steps </text><text
class="breeze-ci-upgrade-r5" x="207.4" y="434.8" textLength="1232.2"
clip-path="url(#breeze-ci-upgrade-line-17)">────────────────────────────────────────────────────────────────────────────────────────────
[...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="459.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-18)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="459.2" textLength="146.4"
clip-path="url(#breeze-ci-upgrade-line-18)">--autoupdate</text><text
class="breeze-ci-upgrade-r1" x="170.8" y="459.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-18)">/</text><text
class="breeze-ci-upgrade-r4" x="183" y="459.2" textLength="183"
clip-path="url(#breeze-ci-upgrade [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="483.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-19)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="483.6" textLength="134.2"
clip-path="url(#breeze-ci-upgrade-line-19)">autoupdate]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="483.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-19)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="483.6" textLength="12.2"
clip-path="url(#breeze-ci-upgr [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="508" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-20)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="508" textLength="170.8"
clip-path="url(#breeze-ci-upgrade-line-20)">--pin-versions</text><text
class="breeze-ci-upgrade-r1" x="195.2" y="508" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-20)">/</text><text
class="breeze-ci-upgrade-r4" x="207.4" y="508" textLength="207.4"
clip-path="url(#breeze-ci-upgrade-l [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="532.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-21)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="532.4" textLength="158.6"
clip-path="url(#breeze-ci-upgrade-line-21)">pin-versions]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="532.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-21)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="532.4" textLength="12.2"
clip-path="url(#breeze-ci-up [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="556.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-22)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="556.8" textLength="329.4"
clip-path="url(#breeze-ci-upgrade-line-22)">--update-chart-dependencies</text><text
class="breeze-ci-upgrade-r1" x="353.8" y="556.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-22)">/</text><text
class="breeze-ci-upgrade-r4" x="366" y="556.8" textLength="353.8"
clip-path="url(# [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="581.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-23)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="581.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-23)">s</text><text
class="breeze-ci-upgrade-r1" x="744.2" y="581.2" textLength="158.6"
clip-path="url(#breeze-ci-upgrade-line-23)">dependencies </text><text
class="breeze-ci-upgrade-r5" x="902.8" y="581.2" textLength="439.2"
clip-path="url(#breeze- [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="605.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-24)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="605.6" textLength="341.6"
clip-path="url(#breeze-ci-upgrade-line-24)">--upgrade-important-versions</text><text
class="breeze-ci-upgrade-r1" x="366" y="605.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-24)">/</text><text
class="breeze-ci-upgrade-r4" x="378.2" y="605.6" textLength="341.6"
clip-path="url( [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="630" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-25)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="630" textLength="36.6"
clip-path="url(#breeze-ci-upgrade-line-25)">ons</text><text
class="breeze-ci-upgrade-r1" x="744.2" y="630" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-25)">versions </text><text
class="breeze-ci-upgrade-r5" x="854" y="630" textLength="451.4"
clip-path="url(#breeze-ci-upgrade-l [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="654.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-26)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="654.4" textLength="195.2"
clip-path="url(#breeze-ci-upgrade-line-26)">--update-uv-lock</text><text
class="breeze-ci-upgrade-r1" x="219.6" y="654.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-26)">/</text><text
class="breeze-ci-upgrade-r4" x="231.8" y="654.4" textLength="231.8"
clip-path="url(#breeze-ci [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="678.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-27)">│</text><text
class="breeze-ci-upgrade-r1" x="744.2" y="678.8" textLength="427"
clip-path="url(#breeze-ci-upgrade-line-27)">resolutions inside Breeze CI image </text><text
class="breeze-ci-upgrade-r5" x="1171.2" y="678.8" textLength="122"
clip-path="url(#breeze-ci-upgrade-line-27)">[default: </text><text
class="breeze-ci-upgrade-r5" x="1451 [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="703.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-28)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="703.2" textLength="183"
clip-path="url(#breeze-ci-upgrade-line-28)">update-uv-lock]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="703.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-28)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="703.2" textLength="12.2"
clip-path="url(#breeze-ci-up [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="727.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-29)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="727.6" textLength="207.4"
clip-path="url(#breeze-ci-upgrade-line-29)">--k8s-schema-sync</text><text
class="breeze-ci-upgrade-r1" x="231.8" y="727.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-29)">/</text><text
class="breeze-ci-upgrade-r4" x="244" y="727.6" textLength="244"
clip-path="url(#breeze-ci-up [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="752" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-30)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="752" textLength="195.2"
clip-path="url(#breeze-ci-upgrade-line-30)">k8s-schema-sync]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="752" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-30)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="752" textLength="12.2"
clip-path="url(#breeze-ci-upgrade [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="776.4" textLength="1464"
clip-path="url(#breeze-ci-upgrade-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-upgrade-r1" x="1464" y="776.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-31)">
-</text><text class="breeze-ci-upgrade-r5" x="0" y="800.8" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-32)">╭─</text><text
class="breeze-ci-upgrade-r5" x="24.4" y="800.8" textLength="195.2"
clip-path="url(#breeze-ci-upgrade-line-32)"> Common options </text><text
class="breeze-ci-upgrade-r5" x="219.6" y="800.8" textLength="1220"
clip-path="url(#breeze-ci-upgrade-line-32)">───────────────────────────────────────────────────────────────────────────────────────────
[...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="825.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-33)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="825.2" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-33)">--answer </text><text
class="breeze-ci-upgrade-r7" x="158.6" y="825.2" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-33)">-a</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="825.2" textLength="329.4"
clip-path="url(#breeze-ci- [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="849.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-34)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="849.6" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-34)">--verbose</text><text
class="breeze-ci-upgrade-r7" x="158.6" y="849.6" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-34)">-v</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="849.6" textLength="585.6"
clip-path="url(#breeze-ci-upgra [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="874" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-35)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="874" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-35)">--dry-run</text><text
class="breeze-ci-upgrade-r7" x="158.6" y="874" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-35)">-D</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="874" textLength="719.8"
clip-path="url(#breeze-ci-upgrade-line- [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="898.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-36)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="898.4" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-36)">--help   </text><text
class="breeze-ci-upgrade-r7" x="158.6" y="898.4" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-36)">-h</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="898.4" textLength="329.4"
clip-path="url(# [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="922.8" textLength="1464"
clip-path="url(#breeze-ci-upgrade-line-37)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-upgrade-r1" x="1464" y="922.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-37)">
+</text><text class="breeze-ci-upgrade-r5" x="0" y="410.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-16)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="410.4" textLength="439.2"
clip-path="url(#breeze-ci-upgrade-line-16)">--github-token                      </text><text
class="breeze-ci-upgrade-r1" x="488" y="410.4" textLength="512.4"
clip-path="url(#breeze [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="434.8" textLength="1464"
clip-path="url(#breeze-ci-upgrade-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-upgrade-r1" x="1464" y="434.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-17)">
+</text><text class="breeze-ci-upgrade-r5" x="0" y="459.2" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-18)">╭─</text><text
class="breeze-ci-upgrade-r5" x="24.4" y="459.2" textLength="183"
clip-path="url(#breeze-ci-upgrade-line-18)"> Upgrade steps </text><text
class="breeze-ci-upgrade-r5" x="207.4" y="459.2" textLength="1232.2"
clip-path="url(#breeze-ci-upgrade-line-18)">────────────────────────────────────────────────────────────────────────────────────────────
[...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="483.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-19)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="483.6" textLength="146.4"
clip-path="url(#breeze-ci-upgrade-line-19)">--autoupdate</text><text
class="breeze-ci-upgrade-r1" x="170.8" y="483.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-19)">/</text><text
class="breeze-ci-upgrade-r4" x="183" y="483.6" textLength="183"
clip-path="url(#breeze-ci-upgrade [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="508" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-20)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="508" textLength="134.2"
clip-path="url(#breeze-ci-upgrade-line-20)">autoupdate]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="508" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-20)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="508" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-20)">
+</text><text class="breeze-ci-upgrade-r5" x="0" y="532.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-21)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="532.4" textLength="170.8"
clip-path="url(#breeze-ci-upgrade-line-21)">--pin-versions</text><text
class="breeze-ci-upgrade-r1" x="195.2" y="532.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-21)">/</text><text
class="breeze-ci-upgrade-r4" x="207.4" y="532.4" textLength="207.4"
clip-path="url(#breeze-ci-u [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="556.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-22)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="556.8" textLength="158.6"
clip-path="url(#breeze-ci-upgrade-line-22)">pin-versions]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="556.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-22)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="556.8" textLength="12.2"
clip-path="url(#breeze-ci-up [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="581.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-23)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="581.2" textLength="329.4"
clip-path="url(#breeze-ci-upgrade-line-23)">--update-chart-dependencies</text><text
class="breeze-ci-upgrade-r1" x="353.8" y="581.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-23)">/</text><text
class="breeze-ci-upgrade-r4" x="366" y="581.2" textLength="353.8"
clip-path="url(# [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="605.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-24)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="605.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-24)">s</text><text
class="breeze-ci-upgrade-r1" x="744.2" y="605.6" textLength="158.6"
clip-path="url(#breeze-ci-upgrade-line-24)">dependencies </text><text
class="breeze-ci-upgrade-r5" x="902.8" y="605.6" textLength="439.2"
clip-path="url(#breeze- [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="630" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-25)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="630" textLength="341.6"
clip-path="url(#breeze-ci-upgrade-line-25)">--upgrade-important-versions</text><text
class="breeze-ci-upgrade-r1" x="366" y="630" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-25)">/</text><text
class="breeze-ci-upgrade-r4" x="378.2" y="630" textLength="341.6"
clip-path="url(#breeze- [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="654.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-26)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="654.4" textLength="36.6"
clip-path="url(#breeze-ci-upgrade-line-26)">ons</text><text
class="breeze-ci-upgrade-r1" x="744.2" y="654.4" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-26)">versions </text><text
class="breeze-ci-upgrade-r5" x="854" y="654.4" textLength="451.4"
clip-path="url(#breeze-ci-u [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="678.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-27)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="678.8" textLength="195.2"
clip-path="url(#breeze-ci-upgrade-line-27)">--update-uv-lock</text><text
class="breeze-ci-upgrade-r1" x="219.6" y="678.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-27)">/</text><text
class="breeze-ci-upgrade-r4" x="231.8" y="678.8" textLength="231.8"
clip-path="url(#breeze-ci [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="703.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-28)">│</text><text
class="breeze-ci-upgrade-r1" x="744.2" y="703.2" textLength="427"
clip-path="url(#breeze-ci-upgrade-line-28)">resolutions inside Breeze CI image </text><text
class="breeze-ci-upgrade-r5" x="1171.2" y="703.2" textLength="122"
clip-path="url(#breeze-ci-upgrade-line-28)">[default: </text><text
class="breeze-ci-upgrade-r5" x="1451 [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="727.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-29)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="727.6" textLength="183"
clip-path="url(#breeze-ci-upgrade-line-29)">update-uv-lock]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="727.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-29)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="727.6" textLength="12.2"
clip-path="url(#breeze-ci-up [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="752" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-30)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="752" textLength="207.4"
clip-path="url(#breeze-ci-upgrade-line-30)">--k8s-schema-sync</text><text
class="breeze-ci-upgrade-r1" x="231.8" y="752" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-30)">/</text><text
class="breeze-ci-upgrade-r4" x="244" y="752" textLength="244"
clip-path="url(#breeze-ci-upgrade-li [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="776.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-31)">│</text><text
class="breeze-ci-upgrade-r5" x="744.2" y="776.4" textLength="195.2"
clip-path="url(#breeze-ci-upgrade-line-31)">k8s-schema-sync]</text><text
class="breeze-ci-upgrade-r5" x="1451.8" y="776.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-31)">│</text><text
class="breeze-ci-upgrade-r1" x="1464" y="776.4" textLength="12.2"
clip-path="url(#breeze-ci [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="800.8" textLength="1464"
clip-path="url(#breeze-ci-upgrade-line-32)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-upgrade-r1" x="1464" y="800.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-32)">
+</text><text class="breeze-ci-upgrade-r5" x="0" y="825.2" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-33)">╭─</text><text
class="breeze-ci-upgrade-r5" x="24.4" y="825.2" textLength="195.2"
clip-path="url(#breeze-ci-upgrade-line-33)"> Common options </text><text
class="breeze-ci-upgrade-r5" x="219.6" y="825.2" textLength="1220"
clip-path="url(#breeze-ci-upgrade-line-33)">───────────────────────────────────────────────────────────────────────────────────────────
[...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="849.6" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-34)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="849.6" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-34)">--answer </text><text
class="breeze-ci-upgrade-r7" x="158.6" y="849.6" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-34)">-a</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="849.6" textLength="329.4"
clip-path="url(#breeze-ci- [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="874" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-35)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="874" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-35)">--verbose</text><text
class="breeze-ci-upgrade-r7" x="158.6" y="874" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-35)">-v</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="874" textLength="585.6"
clip-path="url(#breeze-ci-upgrade-line- [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="898.4" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-36)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="898.4" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-36)">--dry-run</text><text
class="breeze-ci-upgrade-r7" x="158.6" y="898.4" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-36)">-D</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="898.4" textLength="719.8"
clip-path="url(#breeze-ci-upgra [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="922.8" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-37)">│</text><text
class="breeze-ci-upgrade-r4" x="24.4" y="922.8" textLength="109.8"
clip-path="url(#breeze-ci-upgrade-line-37)">--help   </text><text
class="breeze-ci-upgrade-r7" x="158.6" y="922.8" textLength="24.4"
clip-path="url(#breeze-ci-upgrade-line-37)">-h</text><text
class="breeze-ci-upgrade-r1" x="207.4" y="922.8" textLength="329.4"
clip-path="url(# [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="947.2" textLength="1464"
clip-path="url(#breeze-ci-upgrade-line-38)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-upgrade-r1" x="1464" y="947.2" textLength="12.2"
clip-path="url(#breeze-ci-upgrade-line-38)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_ci_upgrade.txt
b/dev/breeze/doc/images/output_ci_upgrade.txt
index 503e0f9e686..226af6867f8 100644
--- a/dev/breeze/doc/images/output_ci_upgrade.txt
+++ b/dev/breeze/doc/images/output_ci_upgrade.txt
@@ -1 +1 @@
-11b5a671d33f354055eca66092e06228
+aad5200916061836455394f1a8fa0355
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
index 18dd8a65cdd..5d5f7c63320 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
@@ -37,6 +37,7 @@ from airflow_breeze.commands.common_options import (
option_answer,
option_dry_run,
option_github_repository,
+ option_github_token,
option_verbose,
)
from airflow_breeze.global_constants import (
@@ -590,6 +591,7 @@ def _sync_k8s_schemas_to_airflow_site(airflow_site: Path,
force: bool, command_e
show_default=True,
help="Sync K8s JSON schemas to airflow-site",
)
+@option_github_token
@option_answer
@option_verbose
@option_dry_run
@@ -605,6 +607,7 @@ def upgrade(
upgrade_important_versions: bool,
update_uv_lock: bool,
k8s_schema_sync: bool,
+ github_token: str | None,
):
# Validate target_branch pattern
target_branch_pattern = re.compile(r"^(main|v\d+-\d+-test)$")
@@ -759,24 +762,26 @@ def upgrade(
console_print("[info]Running upgrade of important CI environment.[/]")
- # Get GitHub token from gh CLI and set it in environment copy
- gh_token_result = run_command(
- ["gh", "auth", "token"],
- capture_output=True,
- text=True,
- check=False,
- )
+ # Resolve GitHub token: prefer --github-token / GITHUB_TOKEN env var, fall
back to gh CLI
+ if not github_token:
+ gh_token_result = run_command(
+ ["gh", "auth", "token"],
+ capture_output=True,
+ text=True,
+ check=False,
+ )
+ if gh_token_result.returncode == 0 and gh_token_result.stdout.strip():
+ github_token = gh_token_result.stdout.strip()
# Create a copy of the environment to pass to commands
command_env = os.environ.copy()
- if gh_token_result.returncode == 0 and gh_token_result.stdout.strip():
- github_token = gh_token_result.stdout.strip()
+ if github_token:
command_env["GITHUB_TOKEN"] = github_token
- console_print("[success]GitHub token retrieved from gh CLI and set in
environment.[/]")
+ console_print("[success]GitHub token set in environment.[/]")
else:
console_print(
- "[warning]Could not retrieve GitHub token from gh CLI. "
+ "[warning]Could not retrieve GitHub token from --github-token or
gh CLI. "
"Commands may fail if they require authentication.[/]"
)
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
b/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
index aeb6ad42563..6d883b3eafa 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
@@ -77,6 +77,7 @@ CI_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
"--switch-to-base",
"--airflow-site",
"--force-k8s-schema-sync",
+ "--github-token",
],
},
{
diff --git a/scripts/ci/prek/upgrade_important_versions.py
b/scripts/ci/prek/upgrade_important_versions.py
index 704189f413f..450dc8178e2 100755
--- a/scripts/ci/prek/upgrade_important_versions.py
+++ b/scripts/ci/prek/upgrade_important_versions.py
@@ -46,6 +46,9 @@ from packaging.version import Version
DOCKER_IMAGES_EXAMPLE_DIR_PATH = AIRFLOW_ROOT_PATH / "docker-stack-docs" /
"docker-examples"
+# Module-level GitHub token, set during main() via retrieve_gh_token()
+_github_token: str | None = None
+
# List of files to update and whether to keep total length of the original
value when replacing.
FILES_TO_UPDATE: list[tuple[Path, bool]] = [
@@ -284,6 +287,9 @@ def get_latest_github_release_version(repo: str) -> str:
url = f"https://api.github.com/repos/{repo}/releases/latest"
headers = {"User-Agent": "Python requests"}
+ if _github_token:
+ headers["Authorization"] = f"Bearer {_github_token}"
+ headers["X-GitHub-Api-Version"] = "2022-11-28"
response = requests.get(url, headers=headers)
response.raise_for_status()
@@ -324,6 +330,9 @@ def get_latest_openapi_generator_version() -> str:
console.print("[bright_blue]Fetching latest OpenAPI generator version
from GitHub")
url =
"https://api.github.com/repos/OpenAPITools/openapi-generator/releases/latest"
headers = {"User-Agent": "Python requests"}
+ if _github_token:
+ headers["Authorization"] = f"Bearer {_github_token}"
+ headers["X-GitHub-Api-Version"] = "2022-11-28"
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
@@ -909,7 +918,8 @@ def is_within_cooldown(cooldown_days: int) -> bool:
def main() -> None:
"""Main entry point for the version upgrade script."""
- retrieve_gh_token(description="airflow-upgrade-important-versions",
scopes="public_repo")
+ global _github_token
+ _github_token =
retrieve_gh_token(description="airflow-upgrade-important-versions",
scopes="public_repo")
versions = fetch_all_package_versions()
log_special_versions(versions)