Skip to content

changes to the Notiication obligation: to as Array, support for Decis… #1245

changes to the Notiication obligation: to as Array, support for Decis…

changes to the Notiication obligation: to as Array, support for Decis… #1245

name: publish
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build-rfc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
- uses: actions/setup-python@v7
with:
python-version: "3.10"
- name: Install kramdown-rfc2629
run: gem install kramdown-rfc2629
- name: Install xml2rfc
run: pip install xml2rfc
- name: Convert working version of Authz API 1.0 to rfc xml
run: kramdown-rfc2629 api/authorization-api-1_0.md > api/authorization-api-1_0.xml
- name: Fix RFC9110 xrefs in generated XML
run: |
echo "Checking for RFC9110 xrefs in api/authorization-api-1_0.xml"
grep -n 'target="RFC9110"' api/authorization-api-1_0.xml || echo "none found"
# Replace any <xref target="RFC9110" section="...">text</xref> with a ulink to the RFC HTML+fragment.perl -0777 -pe 's#<xref\s+([^>]*?)target="RFC9110"([^>]*?)section="([^"]+)"([^>]*?)>(.*?)</xref>#<ulink url="https://www.rfc-editor.org/rfc/rfc9110.html#section-$3">$5</ulink>#igs' -i api/authorization-api-1_0.xml
echo "Replacement done. Sample lines:"
grep -n 'rfc9110.html' api/authorization-api-1_0.xml | head -n 5 || true
- name: Render Authz API 1.0 HTML
run: xml2rfc api/authorization-api-1_0.xml --html -o authorization-api-1_0.html
- name: Render Index HTML (this is the current working draft of the spec)
run: xml2rfc api/authorization-api-1_0.xml --html -o index.html
- name: Render Authz API 1.0 Text
run: xml2rfc api/authorization-api-1_0.xml --text
- name: Upload Authz API 1.0 artifact
uses: actions/upload-artifact@v7
with:
name: authorization-api-1_0
path: |
index.html
authorization-api-1_0.html
api/authorization-api-1_0.xml
- name: Convert Authz Design Patterns to rfc xml
run: kramdown-rfc2629 patterns/AuthorizationDesignPatterns.md > patterns/AuthorizationDesignPatterns.xml
- name: Render Authz Design Patterns HTML
run: xml2rfc patterns/AuthorizationDesignPatterns.xml --html -o patterns.html
- name: Render Authz Design Patterns Text
run: xml2rfc patterns/AuthorizationDesignPatterns.xml --text
- name: Upload Authz Design Patterns artifact
uses: actions/upload-artifact@v7
with:
name: patterns-doc
path: |
patterns.html
patterns/AuthorizationDesignPatterns.xml
- name: Upload Authz API 1.0 original submission artifact (version 0_0)
uses: actions/upload-artifact@v7
with:
name: authorization-api-0_0
path: |
archive/authorization-api-0_0.html
- name: Convert COAZ Framework to rfc xml
run: kramdown-rfc2629 profiles/authzen-coaz-framework-1_0.md > profiles/authzen-coaz-framework-1_0.xml
- name: Render COAZ Framework HTML
run: xml2rfc profiles/authzen-coaz-framework-1_0.xml --html -o authzen-coaz-framework-1_0.html
- name: Render COAZ Framework Text
run: xml2rfc profiles/authzen-coaz-framework-1_0.xml --text
- name: Upload COAZ Framework artifact
uses: actions/upload-artifact@v7
with:
name: coaz-framework
path: |
authzen-coaz-framework-1_0.html
profiles/authzen-coaz-framework-1_0.xml
- name: Convert COAZ-MCP Binding to rfc xml
run: kramdown-rfc2629 profiles/authzen-coaz-mcp-binding-1_0.md > profiles/authzen-coaz-mcp-binding-1_0.xml
- name: Render COAZ-MCP Binding HTML
run: xml2rfc profiles/authzen-coaz-mcp-binding-1_0.xml --html -o authzen-coaz-mcp-binding-1_0.html
- name: Render COAZ-MCP Binding Text
run: xml2rfc profiles/authzen-coaz-mcp-binding-1_0.xml --text
- name: Upload COAZ-MCP Binding artifact
uses: actions/upload-artifact@v7
with:
name: coaz-mcp-binding
path: |
authzen-coaz-mcp-binding-1_0.html
profiles/authzen-coaz-mcp-binding-1_0.xml
- name: Convert MCP Profile to rfc xml
run: kramdown-rfc2629 profiles/authzen-mcp-profile-1_0.md > profiles/authzen-mcp-profile-1_0.xml
- name: Render MCP Profile HTML
run: xml2rfc profiles/authzen-mcp-profile-1_0.xml --html -o authzen-mcp-profile-1_0.html
- name: Render MCP Profile Text
run: xml2rfc profiles/authzen-mcp-profile-1_0.xml --text
- name: Upload MCP Profile artifact
uses: actions/upload-artifact@v7
with:
name: mcp-profile
path: |
authzen-mcp-profile-1_0.html
profiles/authzen-mcp-profile-1_0.xml
- name: Convert Access Request Approval Profile to rfc xml
run: kramdown-rfc2629 profiles/authzen-access-request-approval/authzen-access-request-approval-profile-1_0.md > profiles/authzen-access-request-approval/authzen-access-request-approval-profile-1_0.xml
- name: Render Access Request Approval Profile HTML
run: xml2rfc profiles/authzen-access-request-approval/authzen-access-request-approval-profile-1_0.xml --html -o authzen-access-request-approval-profile-1_0.html
- name: Render Access Request Approval Profile Text
run: xml2rfc profiles/authzen-access-request-approval/authzen-access-request-approval-profile-1_0.xml --text
- name: Upload Access Request Approval Profile artifact
uses: actions/upload-artifact@v7
with:
name: access-request-approval-profile
path: |
authzen-access-request-approval-profile-1_0.html
profiles/authzen-access-request-approval/authzen-access-request-approval-profile-1_0.xml
- name: Convert Obligations Profile to rfc xml
run: kramdown-rfc2629 profiles/authzen-obligations-profile-1_0.md > profiles/authzen-obligations-profile-1_0.xml
- name: Render Obligations Profile HTML
run: xml2rfc profiles/authzen-obligations-profile-1_0.xml --html -o authzen-obligations-profile-1_0.html
- name: Render Obligations Profile Text
run: xml2rfc profiles/authzen-obligations-profile-1_0.xml --text
- name: Upload Obligations Profile artifact
uses: actions/upload-artifact@v7
with:
name: obligations-profile
path: |
authzen-obligations-profile-1_0.html
profiles/authzen-obligations-profile-1_0.xml
- name: Convert Authorization API 1.0 Certification Scenario to rfc xml
run: kramdown-rfc2629 certification/authorization-api-1_0-scenario.md > certification/authorization-api-1_0-scenario.xml
- name: Render Certification Scenario HTML
run: xml2rfc certification/authorization-api-1_0-scenario.xml --html -o authorization-api-1_0-certification-scenario.html
- name: Render Certification Scenario Text
run: xml2rfc certification/authorization-api-1_0-scenario.xml --text
- name: Upload Certification Scenario artifact
uses: actions/upload-artifact@v7
with:
name: certification-scenario
path: |
authorization-api-1_0-certification-scenario.html
certification/authorization-api-1_0-scenario.xml
publish-to-pages:
if: github.ref == 'refs/heads/main'
needs: [build-rfc]
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Download artifact
uses: actions/download-artifact@v8
with:
pattern: authorization-api-*
path: .
merge-multiple: true
- name: Download artifact - pattern document
uses: actions/download-artifact@v8
with:
name: patterns-doc
- name: Download artifact - COAZ framework
uses: actions/download-artifact@v8
with:
name: coaz-framework
- name: Download artifact - COAZ-MCP binding
uses: actions/download-artifact@v8
with:
name: coaz-mcp-binding
- name: Download artifact - MCP profile
uses: actions/download-artifact@v8
with:
name: mcp-profile
- name: Download artifact - Access Request Approval profile
uses: actions/download-artifact@v8
with:
name: access-request-approval-profile
- name: Download artifact - Obligations profile
uses: actions/download-artifact@v8
with:
name: obligations-profile
- name: Download artifact - Certification Scenario
uses: actions/download-artifact@v8
with:
name: certification-scenario
- name: Upload pages artifact
uses: actions/upload-pages-artifact@v5
with:
path: .
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5