mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-07-27 17:26:48 +00:00
Compare commits
43 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a48d448cc | ||
|
|
d2064d022e | ||
|
|
bdb4d9426f | ||
|
|
b584cd1921 | ||
|
|
3a3b189391 | ||
|
|
8b369d0cae | ||
|
|
c4fa3cc857 | ||
|
|
8025fb600d | ||
|
|
9bedafa278 | ||
|
|
a0263b64b7 | ||
|
|
bcac138c59 | ||
|
|
480d23a8ee | ||
|
|
13f3820369 | ||
|
|
77e3e157a2 | ||
|
|
105425eb4e | ||
|
|
02fe985991 | ||
|
|
327c0012a0 | ||
|
|
9f980bc2f3 | ||
|
|
3af8ec1a96 | ||
|
|
18ed8ae285 | ||
|
|
8a51fe4319 | ||
|
|
877a106afc | ||
|
|
a983fb3fe5 | ||
|
|
5ee4a8515b | ||
|
|
0e2f78bc07 | ||
|
|
d0bf498df0 | ||
|
|
205f6a64d6 | ||
|
|
d8cfd880e8 | ||
|
|
146bbba430 | ||
|
|
f77ed4add7 | ||
|
|
fa2c2cbf64 | ||
|
|
00d581be71 | ||
|
|
089b0dbfda | ||
|
|
3fd540cae9 | ||
|
|
31c2e68b6c | ||
|
|
3123076600 | ||
|
|
ba9681609c | ||
|
|
c09f9c5052 | ||
|
|
9a98de8a79 | ||
|
|
160e9a8356 | ||
|
|
2f202dc186 | ||
|
|
1694431f26 | ||
|
|
49ea70ed9f |
13 changed files with 2076 additions and 1372 deletions
|
|
@ -21,9 +21,9 @@
|
|||
"integrity": "sha256:586c9a6f7dd40bd3ba2cd41e7f2f88dcc31fbe5d1442afcbf07ffbc66b686857"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/rust:1": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "ghcr.io/devcontainers/features/rust@sha256:0c55e65f2e3df736e478f26ee4d5ed41bae6b54dac1318c443e31444c8ed283c",
|
||||
"integrity": "sha256:0c55e65f2e3df736e478f26ee4d5ed41bae6b54dac1318c443e31444c8ed283c"
|
||||
"version": "1.5.1",
|
||||
"resolved": "ghcr.io/devcontainers/features/rust@sha256:f7afd923fd283db88ca961342ae65ea63a8c95bcf86e42c4c363f43bc4ba26a5",
|
||||
"integrity": "sha256:f7afd923fd283db88ca961342ae65ea63a8c95bcf86e42c4c363f43bc4ba26a5"
|
||||
},
|
||||
"ghcr.io/flexwie/devcontainer-features/op:1": {
|
||||
"version": "1.0.0",
|
||||
|
|
|
|||
|
|
@ -35,7 +35,9 @@
|
|||
"ms-vscode-remote.remote-containers",
|
||||
"redhat.vscode-yaml",
|
||||
"ryanluker.vscode-coverage-gutters",
|
||||
"MermaidChart.vscode-mermaid-chart"
|
||||
"MermaidChart.vscode-mermaid-chart",
|
||||
"Anthropic.claude-code",
|
||||
"openai.chatgpt"
|
||||
],
|
||||
"settings": {
|
||||
"editor.tabSize": 4,
|
||||
|
|
|
|||
19
.github/workflows/auto-tag.yml
vendored
19
.github/workflows/auto-tag.yml
vendored
|
|
@ -9,6 +9,7 @@ on:
|
|||
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write # Needed to explicitly dispatch release.yml (see note below)
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}
|
||||
|
|
@ -20,7 +21,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v7.0.1
|
||||
with:
|
||||
fetch-depth: 0 # Need full history for git describe
|
||||
|
||||
|
|
@ -66,6 +67,22 @@ jobs:
|
|||
|
||||
echo "✅ Created and pushed tag: $TAG"
|
||||
|
||||
- name: Trigger release notes workflow
|
||||
if: steps.tag_check.outputs.exists == 'false'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
TAG="v${{ steps.manifest.outputs.version }}"
|
||||
|
||||
# NOTE: Tag pushes made with the default GITHUB_TOKEN do NOT trigger
|
||||
# other workflows (GitHub's built-in recursion guard). Since we just
|
||||
# pushed the tag above using GITHUB_TOKEN, release.yml's
|
||||
# `push: tags: v*.*.*` trigger will NOT fire on its own.
|
||||
# workflow_dispatch/repository_dispatch are exempt from that guard,
|
||||
# so we explicitly dispatch release.yml here instead.
|
||||
echo "::notice::Explicitly dispatching release.yml for $TAG (tag push via GITHUB_TOKEN does not auto-trigger workflows)"
|
||||
gh workflow run release.yml --ref "$TAG" -f tag="$TAG"
|
||||
|
||||
- name: Summary
|
||||
run: |
|
||||
if [ "${{ steps.tag_check.outputs.exists }}" = "true" ]; then
|
||||
|
|
|
|||
6
.github/workflows/docusaurus.yml
vendored
6
.github/workflows/docusaurus.yml
vendored
|
|
@ -29,7 +29,7 @@ jobs:
|
|||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v7.0.1
|
||||
with:
|
||||
fetch-depth: 0 # Needed for version timestamps
|
||||
|
||||
|
|
@ -44,7 +44,7 @@ jobs:
|
|||
echo "Stable tag or branch: ${GITHUB_REF}"
|
||||
fi
|
||||
|
||||
- uses: actions/setup-node@v6
|
||||
- uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: 24
|
||||
cache: "npm"
|
||||
|
|
@ -54,7 +54,7 @@ jobs:
|
|||
|
||||
# VERIFY GENERATED DOCS
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v6
|
||||
uses: actions/setup-python@v7
|
||||
with:
|
||||
python-version: "3.14"
|
||||
|
||||
|
|
|
|||
6
.github/workflows/lint.yml
vendored
6
.github/workflows/lint.yml
vendored
|
|
@ -26,15 +26,15 @@ jobs:
|
|||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "3.14"
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
with:
|
||||
version: "0.9.3"
|
||||
|
||||
|
|
|
|||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -27,7 +27,7 @@ jobs:
|
|||
version: ${{ steps.tag.outputs.version }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v7.0.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
|
@ -106,7 +106,7 @@ jobs:
|
|||
needs: sync-manifest # Wait for manifest sync to complete
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
uses: actions/checkout@v7.0.1
|
||||
with:
|
||||
fetch-depth: 0 # Fetch all history for git-cliff
|
||||
ref: main # Use updated main branch if manifest was synced
|
||||
|
|
|
|||
4
.github/workflows/validate.yml
vendored
4
.github/workflows/validate.yml
vendored
|
|
@ -29,10 +29,10 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
|
||||
- name: Run hassfest validation
|
||||
uses: home-assistant/actions/hassfest@f4ca6f671bd429efb108c0f2fa0ae8af0215986c # master
|
||||
uses: home-assistant/actions/hassfest@e3fb68ebda13d88a0d695082f471ba2c83d025fb # master
|
||||
|
||||
hacs: # https://github.com/hacs/action
|
||||
name: HACS validation
|
||||
|
|
|
|||
1659
docs/developer/package-lock.json
generated
1659
docs/developer/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -15,22 +15,22 @@
|
|||
"typecheck": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "^3.10.1",
|
||||
"@docusaurus/faster": "^3.10.1",
|
||||
"@docusaurus/preset-classic": "^3.10.1",
|
||||
"@docusaurus/theme-mermaid": "^3.10.1",
|
||||
"@docusaurus/core": "^3.10.2",
|
||||
"@docusaurus/faster": "^3.10.2",
|
||||
"@docusaurus/preset-classic": "^3.10.2",
|
||||
"@docusaurus/theme-mermaid": "^3.10.2",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
"clsx": "^2.0.0",
|
||||
"docusaurus-lunr-search": "^3.6.0",
|
||||
"prism-react-renderer": "^2.3.0",
|
||||
"react": "^19.2.7",
|
||||
"react-dom": "^19.2.7"
|
||||
"react": "^19.2.8",
|
||||
"react-dom": "^19.2.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "^3.10.0",
|
||||
"@docusaurus/tsconfig": "^3.10.1",
|
||||
"@docusaurus/tsconfig": "^3.10.2",
|
||||
"@docusaurus/types": "^3.10.0",
|
||||
"typescript": "~6.0.3"
|
||||
"typescript": "~7.0.2"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
|
|
|
|||
1659
docs/user/package-lock.json
generated
1659
docs/user/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -15,23 +15,23 @@
|
|||
"typecheck": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "^3.10.1",
|
||||
"@docusaurus/faster": "^3.10.1",
|
||||
"@docusaurus/preset-classic": "^3.10.1",
|
||||
"@docusaurus/theme-mermaid": "^3.10.1",
|
||||
"@docusaurus/core": "^3.10.2",
|
||||
"@docusaurus/faster": "^3.10.2",
|
||||
"@docusaurus/preset-classic": "^3.10.2",
|
||||
"@docusaurus/theme-mermaid": "^3.10.2",
|
||||
"@giscus/react": "^3.1.0",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
"clsx": "^2.0.0",
|
||||
"docusaurus-lunr-search": "^3.6.0",
|
||||
"prism-react-renderer": "^2.3.0",
|
||||
"react": "^19.2.7",
|
||||
"react-dom": "^19.2.7"
|
||||
"react": "^19.2.8",
|
||||
"react-dom": "^19.2.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "^3.10.0",
|
||||
"@docusaurus/tsconfig": "^3.10.1",
|
||||
"@docusaurus/tsconfig": "^3.10.2",
|
||||
"@docusaurus/types": "^3.10.0",
|
||||
"typescript": "~6.0.3"
|
||||
"typescript": "~7.0.2"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Project/dev tooling – NO Home Assistant here
|
||||
colorlog>=6.10.1,<6.11.0
|
||||
pre-commit>=4.6.0,<4.7.0
|
||||
ruff>=0.15.20,<0.16.0
|
||||
colorlog>=6.12.0,<6.13.0
|
||||
pre-commit>=4.6.1,<4.7.0
|
||||
ruff>=0.16.0,<0.17.0
|
||||
zlib_ng>=1.0.0,<1.1.0
|
||||
isal>=1.8.0,<1.9.0
|
||||
# Must match HA_VERSION in scripts/setup/bootstrap exactly (1:1 mapping)
|
||||
|
|
|
|||
|
|
@ -435,30 +435,53 @@ ${DIFF_CONTEXT}
|
|||
Output ONLY the release notes. Start directly with the # title.
|
||||
End after the Buy Me A Coffee button. No meta-commentary, no explanations."
|
||||
|
||||
# Save prompt to temp file for copilot
|
||||
TEMP_PROMPT=$(mktemp)
|
||||
echo "$PROMPT" >"$TEMP_PROMPT"
|
||||
|
||||
# Use Claude Sonnet for better user-focused, plain-language release notes.
|
||||
# Haiku tends to echo technical commit language; Sonnet better translates to user benefits.
|
||||
# Can override with: COPILOT_MODEL=claude-haiku-4.5 ./scripts/release/generate-notes
|
||||
COPILOT_MODEL="${COPILOT_MODEL:-claude-sonnet-4.6}"
|
||||
|
||||
# Call copilot CLI (it will handle authentication interactively)
|
||||
copilot --model "$COPILOT_MODEL" <"$TEMP_PROMPT" || {
|
||||
# Call copilot CLI (it will handle authentication interactively).
|
||||
# Flags matter here (recent copilot CLI versions, e.g. 1.0.68+):
|
||||
# The prompt is piped into stdin (a real pipe, not a `<file` redirect and
|
||||
# not the -p argument). Two prior approaches were tried and broke:
|
||||
# - `-p "$PROMPT"` puts the whole prompt on the command line, which
|
||||
# blows past the OS argv/environ size limit (ARG_MAX) on releases
|
||||
# with many commits, failing with "Argument list too long".
|
||||
# - `<"$TEMP_PROMPT"` (file redirect) gave copilot a seekable regular
|
||||
# file as stdin; it was observed to sometimes respond "No prompt
|
||||
# provided..." yet still exit 0 for that same input in a real
|
||||
# terminal, silently producing empty release notes. A shell pipe
|
||||
# presents stdin as a FIFO, matching what "via standard in" in
|
||||
# copilot's own help text expects, and has no size limit.
|
||||
# --available-tools (no value) disables all tools — this task only needs
|
||||
# plain text generation from the embedded context, and without this the
|
||||
# agent may attempt tool calls that silently stall/no-op in
|
||||
# non-interactive mode, producing empty output (least-privilege, avoids
|
||||
# needing --allow-all-tools).
|
||||
# --silent suppresses the post-response stats block (Changes/AI
|
||||
# Credits/Tokens/Resume) that newer versions print to stdout, which
|
||||
# would otherwise leak into the generated release notes.
|
||||
# --no-custom-instructions skips loading this repo's AGENTS.md, which is
|
||||
# unrelated to release-note writing style and would just burn tokens.
|
||||
# --no-color keeps the captured output free of ANSI escape codes.
|
||||
COPILOT_OUTPUT=$(printf '%s' "$PROMPT" | copilot --model "$COPILOT_MODEL" --available-tools --silent --no-custom-instructions --no-color) || true
|
||||
|
||||
# Treat empty/whitespace-only output as a failure too: copilot has been
|
||||
# observed to exit 0 while producing no content (e.g. when it could not
|
||||
# obtain a prompt), which previously slipped past the "||" failure check.
|
||||
if [[ -z "${COPILOT_OUTPUT//[[:space:]]/}" ]]; then
|
||||
echo ""
|
||||
log_info "${YELLOW}Warning: GitHub Copilot CLI failed or was not authenticated${NC}"
|
||||
log_info "${YELLOW}Warning: GitHub Copilot CLI failed, was not authenticated, or returned no output${NC}"
|
||||
log_info "${YELLOW}Falling back to git-cliff${NC}"
|
||||
rm -f "$TEMP_PROMPT"
|
||||
if command -v git-cliff >/dev/null 2>&1; then
|
||||
generate_with_gitcliff
|
||||
else
|
||||
generate_with_manual
|
||||
fi
|
||||
return
|
||||
}
|
||||
fi
|
||||
|
||||
rm -f "$TEMP_PROMPT"
|
||||
printf "%s\n" "$COPILOT_OUTPUT"
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
|
|
|
|||
Loading…
Reference in a new issue