Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
7e5ff0b
5564: Update composer dependencies
turegjorup Oct 14, 2025
aa24a1a
5564: Update to phpunit 12
turegjorup Oct 14, 2025
e83bf18
5564: Update itk docker template, update github actions setup
turegjorup Oct 14, 2025
060d7e4
5564: Update Changelog
turegjorup Oct 14, 2025
a647b3d
5564: Update exported api spec
turegjorup Oct 14, 2025
5efc33a
5564: Lock api-platform to 4.1, bump composer dependencies
turegjorup Oct 14, 2025
338ccab
5564: PHP code style fixes
turegjorup Oct 14, 2025
0d207f9
5564: Add vincentlanglet/twig-cs-fixer
turegjorup Oct 14, 2025
16211ac
5564: Lint twig files
turegjorup Oct 14, 2025
ac2a23a
5564: Use assets mapper for CSS
turegjorup Oct 14, 2025
193ade3
5564: Lint yml files
turegjorup Oct 14, 2025
32b6143
5564: Add api spec to prettier ignore
turegjorup Oct 14, 2025
f1548aa
5564: Composer normalize
turegjorup Oct 14, 2025
918deec
5564: JS lint
turegjorup Oct 14, 2025
69528dc
5564: Markdown lint
turegjorup Oct 14, 2025
ad0a2f4
5564: CSS lint
turegjorup Oct 14, 2025
180faff
5564: Remove redundant psalm config
turegjorup Oct 17, 2025
e2a30c7
5564: Add Taskfile
turegjorup Oct 17, 2025
b3dece7
5564: Move commands crom composer.json to taskfile, cleanup actions
turegjorup Oct 17, 2025
129ac60
5564: Fix yaml indentation
turegjorup Oct 17, 2025
23daf7a
5564: Update checkout action
turegjorup Oct 17, 2025
fe4eb24
5564: Update test action to report code coverage
turegjorup Oct 17, 2025
a1c752a
5564: Fix PR review action
turegjorup Oct 17, 2025
0f57193
5564: Fix PR fixtures action
turegjorup Oct 17, 2025
39bc3f7
5564: Lint yml files
turegjorup Oct 17, 2025
9b278ff
5566: Add project entity and Leantime sync
turegjorup Oct 21, 2025
06ca1c5
5566: Add project crud controller, use 'disable' for actions, UI tweaks
turegjorup Oct 22, 2025
3cb35dc
5566: Add security contract entity and controller, refactor crud cont…
turegjorup Oct 23, 2025
e11493e
5566: Normalize composer.json
turegjorup Oct 23, 2025
c72a916
5566: Code style and static analysis cleanup
turegjorup Oct 23, 2025
a884b26
5566: Add CSS linting to taskfile, lint CSS files
turegjorup Oct 23, 2025
027eeac
Merge branch 'main' into feature/5566_maintenance_contract-
martinyde May 18, 2026
01cf02e
Added composer lock and fixed dependency issues
martinyde May 18, 2026
ba9c112
Added menu link
martinyde May 18, 2026
63b61fa
release: 1.11.0
turegjorup May 18, 2026
4402754
Merge pull request #79 from itk-dev/release/1.11.0
turegjorup May 18, 2026
514260b
Removed deprecated leantime service, and project entity
martinyde May 19, 2026
c023288
Merge branch 'main' into hotfix/5566_maintenance_contract-merge-from-…
martinyde May 19, 2026
564b179
Merge branch 'hotfix/5566_maintenance_contract-merge-from-main' into …
martinyde May 19, 2026
4368891
Updated changelog
martinyde May 19, 2026
22a53c8
Applied coding standards
martinyde May 19, 2026
81923af
Updated test suite github action
martinyde May 19, 2026
1e3d94f
Updated PR.yml
martinyde May 19, 2026
7293af4
Updated PR
martinyde May 19, 2026
369f78d
Updated composer.lock
martinyde May 19, 2026
aa32aaa
Normalized composer
martinyde May 19, 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
6 changes: 6 additions & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ COMPOSE_PROJECT_NAME=itksites
COMPOSE_DOMAIN=itksites.local.itkdev.dk
ITKDEV_TEMPLATE=symfony-8


# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
Expand Down Expand Up @@ -63,3 +64,8 @@ VAULT_SECRET_ID="CHANGE_ME_IN_LOCAL_ENV"

# The number of old results for each server/result-type combination
APP_KEEP_RESULTS=5

###> economics ###
APP_ECONOMICS_URI=https://economics.itkdev.dk
APP_ECONOMICS_API_KEY=changeme
###< economics ###
115 changes: 115 additions & 0 deletions .github/workflows/apispec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: API Spec review

env:
COMPOSE_USER: root

on:
pull_request:

jobs:
api-spec-updated:
name: Ensure committed API specification is up to date
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 2

- name: Create docker network
run: |
docker network create frontend

- name: Composer install
run: |
docker compose run --rm phpfpm composer install

- name: Export API specification
run: |
docker compose run --rm phpfpm bin/console api:openapi:export --yaml --output=public/api-spec-v1.yaml --no-interaction

- name: Check for changes in specification
id: git-diff-spec
continue-on-error: true
run: git diff --diff-filter=ACMRT --exit-code public/api-spec-v1.yaml

- name: Comment PR
if: steps.git-diff-spec.outcome == 'failure'
env:
GH_TOKEN: ${{ github.token }}
run: |
echo '## 🛑 Exported API specification file not up to date' > var/comment.md
echo '' >> var/comment.md
echo 'Please run `composer update-api-spec` to export the API specification. Then commit and push the changes.' >> var/comment.md
gh pr comment ${{ github.event.pull_request.number }} --body-file var/comment.md --create-if-none --edit-last

- name: Fail job, api spec is not up to date
if: steps.git-diff-spec.outcome == 'failure'
run: |
exit 1

detect-breaking-changes:
name: Detect breaking changes in API specification
runs-on: ubuntu-latest
needs: [api-spec-updated]
steps:
- name: Check out BASE rev
uses: actions/checkout@v5
with:
ref: ${{ github.base_ref }}
path: base

- name: Check out HEAD rev
uses: actions/checkout@v5
with:
ref: ${{ github.head_ref }}
path: head

- name: Run OpenAPI Changed (from HEAD rev)
id: api-changed
continue-on-error: true
uses: docker://openapitools/openapi-diff:latest
with:
args: --fail-on-changed base/public/api-spec-v1.yaml head/public/api-spec-v1.yaml --markdown api-spec-changed.md

- name: Run OpenAPI Incompatible (from HEAD rev)
id: api-incompatible
continue-on-error: true
uses: docker://openapitools/openapi-diff:latest
with:
args: --fail-on-incompatible base/public/api-spec-v1.yaml head/public/api-spec-v1.yaml --markdown api-spec-incompatible.md

- name: Comment PR with no changes
if: steps.api-changed.outcome == 'success' && steps.api-incompatible.outcome == 'success'
working-directory: head
env:
GH_TOKEN: ${{ github.token }}
run: |
gh pr comment ${{ github.event.pull_request.number }} --body "✅ **No changes detected in API specification**" --create-if-none --edit-last

- name: Comment PR with non-breaking changes
if: steps.api-changed.outcome == 'failure' && steps.api-incompatible.outcome == 'success'
working-directory: head
env:
GH_TOKEN: ${{ github.token }}
run: |
echo "## ⚠️ Non-Breaking changes detected in API specification" > ../comment.md
echo "" >> ../comment.md
cat ../api-spec-changed.md >> ../comment.md
gh pr comment ${{ github.event.pull_request.number }} --body-file ../comment.md --create-if-none --edit-last

- name: Comment PR with breaking changes
if: steps.api-incompatible.outcome == 'failure'
working-directory: head
env:
GH_TOKEN: ${{ github.token }}
run: |
echo "## 🛑 Breaking changes detected in API specification" > ../comment.md
echo "" >> ../comment.md
cat ../api-spec-incompatible.md >> ../comment.md
gh pr comment ${{ github.event.pull_request.number }} --body-file ../comment.md --create-if-none --edit-last

- name: Fail if breaking changes detected
if: steps.api-incompatible.outcome == 'failure'
run: |
exit 1
41 changes: 41 additions & 0 deletions .github/workflows/doctrine.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Doctrine

env:
COMPOSE_USER: root

on:
pull_request:
push:
branches:
- main
- develop

jobs:
coding-standards:
name: Validate Schema
runs-on: ubuntu-latest
env:
APP_ENV: prod

steps:
- uses: actions/checkout@v5

- name: Create docker network
run: |
docker network create frontend

- name: Run Composer Install
run: |
docker compose run --rm phpfpm composer install

- name: Run Doctrine Migrations
run: |
docker compose run --rm phpfpm bin/console doctrine:migrations:migrate --no-interaction

- name: Setup messenger "failed" doctrine transport to ensure db schema is updated
run: |
docker compose run --rm phpfpm bin/console messenger:setup-transports failed

- name: Validate Doctrine schema
run: |
docker compose run --rm phpfpm bin/console doctrine:schema:validate
34 changes: 33 additions & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,40 @@
on: pull_request
name: Review
env:
COMPOSE_USER: runner
on: pull_request

jobs:
test-suite:
name: Test suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Install Task
uses: go-task/setup-task@v1

- name: Setup docker network
run: |
docker network create frontend

- name: Install Site
run: |
task site:update
task site:migrate
task fixtures:load -y

- name: Test suite
run: |
task test:matrix

- name: Upload coverage to Codecov test
uses: codecov/codecov-action@v5
with:
files: ./coverage/unit.xml
flags: unittests
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

validate-doctrine-schema:
runs-on: ubuntu-latest
name: Validate Doctrine Schema
Expand Down
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,17 @@ yarn-error.log
phpstan.neon
###< phpstan/phpstan ###
.phpunit.cache

###> vincentlanglet/twig-cs-fixer ###
/.twig-cs-fixer.cache
###< vincentlanglet/twig-cs-fixer ###

###> symfony/asset-mapper ###
/public/assets/
/assets/vendor/
###< symfony/asset-mapper ###
coverage

.twig-cs-fixer.cache
.playwright-mcp

1 change: 1 addition & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
$finder->in(__DIR__);
// … that are not ignored by VCS
$finder->ignoreVCSIgnored(true);

// Exclude generated files
$finder->notPath('config/reference.php');

Expand Down
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# API spec

# Generated API specification files
public/api-spec-v1.yaml
public/api-spec-v1.json

19 changes: 18 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

- [#61](https://github.com/itk-dev/devops_itksites/pull/61) 5566: Service agreements
- Remove project entity
- Remove leantime service
- Add security contract entity with crud controller
- Add Abstract full crud controller and extend on it in some cases
- Add economics service and sync action/command for service agreement synchronization

- [#60](https://github.com/itk-dev/devops_itksites/pull/60) 5564: Dependency updates
- Update dependencies
- Update phpunit from 11 to 12
- Update ITK docker template
- Update github actions workflows

## [1.11.0] - 2026-05-19

- [#78](https://github.com/itk-dev/devops_itksites/pull/78)
Update composer dependencies, fix php-cs-fixer deprecation
- [#77](https://github.com/itk-dev/devops_itksites/pull/77)
Expand Down Expand Up @@ -174,7 +189,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [1.0.0] - 2022-09-15

[Unreleased]: https://github.com/itk-dev/devops_itksites/compare/1.10.0...HEAD
[Unreleased]: https://github.com/itk-dev/devops_itksites/compare/1.11.0...HEAD
[1.11.0]: https://github.com/itk-dev/devops_itksites/compare/1.10.1...1.11.0
[1.10.1]: https://github.com/itk-dev/devops_itksites/compare/1.10.0...1.10.1
[1.10.0]: https://github.com/itk-dev/devops_itksites/compare/1.9.2...1.10.0
[1.9.2]: https://github.com/itk-dev/devops_itksites/compare/1.9.1...1.9.2
[1.9.1]: https://github.com/itk-dev/devops_itksites/compare/1.9.0...1.9.1
Expand Down
9 changes: 9 additions & 0 deletions assets/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/*
* Welcome to your app's main JavaScript file!
*
* This file will be included onto the page via the importmap() Twig function,
* which should already be in your base.html.twig.
*/
import "./styles/app.css";

console.log("This log comes from assets/app.js - welcome to AssetMapper! 🎉");
28 changes: 28 additions & 0 deletions assets/styles/app.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
:root {
--body-max-width: 100%;
--sidebar-bg: #fff;
/* make the base font size smaller */
--button-primary-bg: rgb(0, 123, 166);
--pagination-active-bg: rgb(0, 123, 166);
--link-color: rgb(0, 123, 166);
--sidebar-menu-active-item-color: rgb(0, 123, 166);
--badge-boolean-true-bg: rgb(0, 123, 166);
--badge-boolean-false-bg: rgb(228, 73, 48);
--badge-boolean-false-color: var(--white);
--sidebar-menu-color: rgb(66, 66, 66);
--text-color-dark: rgb(66, 66, 66);
--bs-danger-rgb: 228, 73, 48;
}

/* Grouped dropdown group styling for index pages */
.dropdown-menu {
.btn-danger i,
.text-danger i {
color: var(--button-invisible-danger-color);
}

a.btn-danger:hover,
a.text-danger:hover {
background: var(--button-invisible-danger-hover-hover-bg);
}
}
4 changes: 3 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"phpstan/phpdoc-parser": "^2.0",
"symfony/amqp-messenger": "^8.0",
"symfony/asset": "^8.0",
"symfony/asset-mapper": "~8.0.0",
"symfony/browser-kit": "^8.0",
"symfony/console": "^8.0",
"symfony/doctrine-messenger": "^8.0",
Expand Down Expand Up @@ -111,7 +112,8 @@
],
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
"assets:install %PUBLIC_DIR%": "symfony-cmd",
"importmap:install": "symfony-cmd"
},
"coding-standards-apply": [
"vendor/bin/php-cs-fixer fix"
Expand Down
Loading
Loading