Skip to content

feat(mcp): experimental tool-decision-truth observed-input digest and… #913

feat(mcp): experimental tool-decision-truth observed-input digest and…

feat(mcp): experimental tool-decision-truth observed-input digest and… #913

name: Auto-Update Docs
on:
push:
branches: [main]
paths-ignore:
- "docs/**"
- "**.md"
- ".github/workflows/docs-auto-update.yml"
workflow_dispatch:
inputs:
force_update:
description: "Force update even if no code changes"
required: false
default: false
type: boolean
permissions:
checks: write
contents: write
pull-requests: write
jobs:
generate-docs:
name: Generate Docs & Diagrams
runs-on: ubuntu-latest
# Only run on main repo, not forks
if: github.repository == 'Rul1an/assay'
permissions:
checks: write
contents: write
pull-requests: write
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:
persist-credentials: false
fetch-depth: 0 # Full history for changelog
- name: Setup Rust
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
- name: Install jq
run: sudo apt-get install -y jq
- name: Generate crate dependency diagram
run: |
chmod +x scripts/docs/generate-crate-deps.sh
scripts/docs/generate-crate-deps.sh
- name: Generate module map
run: |
chmod +x scripts/docs/generate-module-map.sh
scripts/docs/generate-module-map.sh
- name: Update architecture diagrams
run: |
chmod +x scripts/docs/update-architecture-docs.sh
scripts/docs/update-architecture-docs.sh
- name: Update changelog (from recent PRs)
env:
GH_TOKEN: ${{ github.token }}
run: |
chmod +x scripts/docs/update-changelog.sh
scripts/docs/update-changelog.sh
- name: Check for changes
id: changes
run: |
if git diff --quiet docs/; then
echo "has_changes=false" >> "$GITHUB_OUTPUT"
else
echo "has_changes=true" >> "$GITHUB_OUTPUT"
fi
# Requires repo Settings > Actions > General > "Allow GitHub Actions to create and approve pull requests" enabled
- name: Create Pull Request
id: create_pr
if: steps.changes.outputs.has_changes == 'true'
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "docs: auto-update diagrams and crate info"
title: "docs: auto-update diagrams and crate info"
body: |
## Automated Documentation Update
This PR was automatically generated after a merge to main.
### Changes
- Updated crate dependency diagram
- Updated module structure map
- Updated version info in code-map.md
- Added changelog entries for recent PRs
---
*Generated by [docs-auto-update.yml](.github/workflows/docs-auto-update.yml)*
branch: docs/auto-update
add-paths: |
docs/**
delete-branch: true
labels: documentation,automated
- name: Publish required CI check for docs PR
if: steps.changes.outputs.has_changes == 'true' && steps.create_pr.outputs.pull-request-number != ''
env:
GH_TOKEN: ${{ github.token }}
CREATED_PR_NUMBER: ${{ steps.create_pr.outputs.pull-request-number }}
REPO: ${{ github.repository }}
run: |
pr_number="${CREATED_PR_NUMBER}"
head_sha="$(gh pr view "$pr_number" --json headRefOid --jq '.headRefOid')"
payload_file="$(mktemp)"
jq -n \
--arg head_sha "$head_sha" \
--arg summary "Generated docs-only update; required CI satisfied by docs-auto-update workflow." \
'{
name: "CI",
head_sha: $head_sha,
status: "completed",
conclusion: "success",
output: {
title: "CI",
summary: $summary
}
}' > "$payload_file"
gh api "repos/${REPO}/check-runs" \
--method POST \
-H "Accept: application/vnd.github+json" \
--input "$payload_file"
rm -f "$payload_file"
- name: Enable auto-merge for docs PR
if: steps.changes.outputs.has_changes == 'true' && steps.create_pr.outputs.pull-request-number != ''
env:
GH_TOKEN: ${{ github.token }}
CREATED_PR_NUMBER: ${{ steps.create_pr.outputs.pull-request-number }}
run: gh pr merge "$CREATED_PR_NUMBER" --auto --squash