Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
f9313e8
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
257c3d9
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
b6604ef
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
4ae94b3
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
284ff8a
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
3af712c
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
89d4bd2
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
5188d77
feat: move workflow catalog source machinery
vitormattos Sep 24, 2026
d41a85f
feat: move workflow catalog source data
vitormattos Sep 24, 2026
820a30e
feat: move workflow catalog source data
vitormattos Sep 24, 2026
bcb3e8e
feat: move workflow catalog source data
vitormattos Sep 24, 2026
7c0b112
feat: move workflow catalog source data
vitormattos Sep 24, 2026
b9d93a2
feat: move workflow catalog source data
vitormattos Sep 24, 2026
e279e3b
feat: move workflow catalog source data
vitormattos Sep 24, 2026
313e165
feat: move workflow catalog source data
vitormattos Sep 24, 2026
220bc42
feat: move workflow catalog source data
vitormattos Sep 24, 2026
3dd8c7f
feat: move workflow catalog source data
vitormattos Sep 24, 2026
47d716a
feat: move workflow catalog source data
vitormattos Sep 24, 2026
3c6661b
feat: move workflow catalog source data
vitormattos Sep 24, 2026
275a3cb
feat: move workflow catalog source data
vitormattos Sep 24, 2026
1009a92
feat: move workflow catalog source data
vitormattos Sep 24, 2026
82866d7
feat: move workflow catalog source data
vitormattos Sep 24, 2026
e313275
feat: move workflow catalog source data
vitormattos Sep 24, 2026
7a0a2ff
feat: move workflow catalog source data
vitormattos Sep 24, 2026
b5a0134
feat: move workflow catalog source data
vitormattos Sep 24, 2026
86a0d07
feat: move workflow catalog source data
vitormattos Sep 24, 2026
40f994b
feat: move workflow catalog source data
vitormattos Sep 24, 2026
1e02ac9
feat: move workflow catalog source data
vitormattos Sep 24, 2026
83a7f31
feat: move workflow catalog source data
vitormattos Sep 24, 2026
d33bc85
feat: move workflow catalog source data
vitormattos Sep 24, 2026
8959ccd
feat: move workflow catalog source data
vitormattos Sep 24, 2026
cf5c1cb
feat: move workflow catalog source data
vitormattos Sep 24, 2026
741828e
feat: move workflow catalog source data
vitormattos Sep 24, 2026
b8bc196
feat: move workflow catalog source data
vitormattos Sep 24, 2026
3d5c564
feat: move workflow catalog source data
vitormattos Sep 24, 2026
55af69a
feat: move workflow catalog source data
vitormattos Sep 24, 2026
54edacd
ci: validate workflow catalog at source
vitormattos Sep 24, 2026
f832b9a
ci: refresh upstream workflows directly in catalog
vitormattos Sep 24, 2026
0b14ed0
ci: let Dependabot maintain workflow templates
vitormattos Sep 24, 2026
bfbd462
ci: move catalog validation workflows
vitormattos Sep 24, 2026
bd144ac
ci: move catalog validation workflows
vitormattos Sep 24, 2026
17dd032
feat: preserve template action pins during renders
vitormattos Sep 24, 2026
925795c
test: keep Dependabot pins authoritative
vitormattos Sep 24, 2026
3f752f6
docs: move workflow catalog ownership guidance
vitormattos Sep 24, 2026
f1f1b16
docs: move workflow catalog ownership guidance
vitormattos Sep 24, 2026
0ff61af
ci: avoid unrelated repository-wide REUSE adoption
vitormattos Sep 24, 2026
16cb6db
chore: preserve licenses for migrated catalog
vitormattos Sep 24, 2026
d8b80b1
chore: preserve licenses for migrated catalog
vitormattos Sep 24, 2026
fd621d3
chore: preserve licenses for migrated catalog
vitormattos Sep 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,17 @@ updates:
update-types:
- minor
- patch

- package-ecosystem: github-actions
directory: /workflow-templates
schedule:
interval: weekly
cooldown:
default-days: 7
groups:
workflow-template-actions:
patterns:
- "*"
update-types:
- minor
- patch
33 changes: 33 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Python tests

on:
pull_request:
push:
branches:
- main

permissions:
contents: read

jobs:
tests:
name: Python tests
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Run unit tests
run: python3 -m unittest discover -s tests -p 'test_*.py'

- name: Verify vendored upstream sources
run: python3 scripts/sync_upstream.py check upstream/sources.json

- name: Verify rendered upstream templates
run: python3 scripts/render_upstream.py check upstream/templates.json
115 changes: 115 additions & 0 deletions .github/workflows/upstream-refresh.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Refresh upstream workflows

on:
workflow_dispatch:
push:
branches:
- main
paths:
- 'upstream/sources.json'
- 'upstream/templates.json'
- 'patches/nextcloud/**'
- '.github/workflows/upstream-refresh.yml'
schedule:
- cron: '17 3 * * 0'

permissions:
contents: read

jobs:
refresh:
name: Refresh pinned upstream sources
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: write
pull-requests: write
steps:
- name: Validate GitHub App configuration
env:
WORKFLOW_APP_ID: ${{ vars.LIBRECODE_WORKFLOW_APP_ID }}
WORKFLOW_APP_PRIVATE_KEY: ${{ secrets.LIBRECODE_WORKFLOW_APP_PRIVATE_KEY }}
run: |
if [ -z "$WORKFLOW_APP_ID" ]; then
echo "::error::LIBRECODE_WORKFLOW_APP_ID is not configured."
exit 1
fi
if [ -z "$WORKFLOW_APP_PRIVATE_KEY" ]; then
echo "::error::LIBRECODE_WORKFLOW_APP_PRIVATE_KEY is not configured."
exit 1
fi

- name: Create GitHub App token
id: app-token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
with:
app-id: ${{ vars.LIBRECODE_WORKFLOW_APP_ID }}
private-key: ${{ secrets.LIBRECODE_WORKFLOW_APP_PRIVATE_KEY }}
owner: LibreCodeCoop
repositories: .github
permission-contents: write
permission-pull-requests: write
permission-workflows: write

- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Refresh upstream pins
id: refresh
env:
GITHUB_TOKEN: ${{ github.token }}
run: python3 scripts/sync_upstream.py refresh upstream/sources.json

- name: Verify refreshed immutable sources
run: python3 scripts/sync_upstream.py check upstream/sources.json

- name: Apply downstream patches
id: render
continue-on-error: true
run: |
python3 scripts/render_upstream.py sync upstream/templates.json \
--report render-report.json

- name: Run unit tests
if: always()
run: python3 -m unittest discover -s tests -p 'test_*.py'

- name: Build pull request report
if: steps.refresh.outcome == 'success'
run: >-
python3 scripts/render_upstream.py pr-body
--report render-report.json
--output refresh-upstream-pr.md

- name: Create update pull request
id: pull-request
if: steps.refresh.outcome == 'success'
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
token: ${{ steps.app-token.outputs.token }}
commit-message: 'chore: refresh upstream workflow pins'
committer: GitHub <noreply@github.com>
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
signoff: true
branch: automated/refresh-upstream-workflows
delete-branch: true
title: 'chore: refresh upstream workflows'
body-path: refresh-upstream-pr.md
draft: ${{ steps.render.outcome == 'failure' }}
labels: dependencies
add-paths: |
upstream/sources.json
upstream/vendor/**
workflow-templates/**
.github/workflows/**

- name: Fail when patches need manual updates
if: steps.render.outcome == 'failure'
run: |
echo "One or more downstream patches could not be applied."
exit 1
35 changes: 35 additions & 0 deletions .github/workflows/workflow-policy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Workflow policy

on:
pull_request:
paths:
- '.github/workflows/**'
- 'workflow-templates/**'
- 'scripts/check_workflow_policy.py'
- 'tests/test_workflow_policy.py'
push:
branches:
- main
paths:
- '.github/workflows/**'
- 'workflow-templates/**'
- 'scripts/check_workflow_policy.py'
- 'tests/test_workflow_policy.py'

permissions:
contents: read

jobs:
policy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Check workflow policy
run: python3 scripts/check_workflow_policy.py
Loading
Loading