Skip to content

Commit 21f767b

Browse files
committed
Merge tag '1.2.0' into develop
no message
2 parents f30d6e7 + 24d8d02 commit 21f767b

19 files changed

+784
-492
lines changed

.github/workflows/api-spec.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
on:
2+
pull_request:
3+
4+
name: API Spec review
5+
6+
env:
7+
COMPOSE_USER: root
8+
9+
jobs:
10+
api-spec:
11+
runs-on: ubuntu-latest
12+
name: Ensure committed API specification is up to date
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v5
16+
with:
17+
fetch-depth: 2
18+
19+
# https://taskfile.dev/installation/#github-actions
20+
- uses: go-task/setup-task@v1
21+
22+
- run: |
23+
docker network create frontend
24+
task --yes site:update
25+
26+
- name: Export API specification
27+
run: |
28+
task --yes api:spec:export
29+
30+
- name: Check for changes in specification
31+
id: git-diff-spec
32+
continue-on-error: true
33+
run: git diff --diff-filter=ACMRT --exit-code public/spec.yaml
34+
35+
- name: Comment PR
36+
if: steps.git-diff-spec.outcome == 'failure'
37+
env:
38+
GH_TOKEN: ${{ github.token }}
39+
run: |
40+
echo '## 🛑 Exported API specification file not up to date' > var/comment.md
41+
echo '' >> var/comment.md
42+
echo 'Please run `task api:spec:export` to export the API specification. Then commit and push the changes.' >> var/comment.md
43+
gh pr comment ${{ github.event.pull_request.number }} --body-file var/comment.md --create-if-none --edit-last
44+
45+
- name: Fail job api spec is not up to date
46+
if: steps.git-diff-spec.outcome == 'failure'
47+
run: |
48+
exit 1
49+
50+
detect-breaking-changes:
51+
name: Detect breaking changes in API specification
52+
runs-on: ubuntu-latest
53+
needs: [api-spec]
54+
steps:
55+
- name: Check out BASE rev
56+
uses: actions/checkout@v5
57+
with:
58+
ref: ${{ github.base_ref }}
59+
path: base
60+
61+
- name: Check out HEAD rev
62+
uses: actions/checkout@v5
63+
with:
64+
ref: ${{ github.head_ref }}
65+
path: head
66+
67+
- name: Run OpenAPI Changed (from HEAD rev)
68+
id: api-changed
69+
continue-on-error: true
70+
uses: docker://openapitools/openapi-diff:latest
71+
with:
72+
args: --fail-on-changed base/public/spec.yaml head/public/spec.yaml --markdown api-spec-changed.md
73+
74+
- name: Run OpenAPI Incompatible (from HEAD rev)
75+
id: api-incompatible
76+
continue-on-error: true
77+
uses: docker://openapitools/openapi-diff:latest
78+
with:
79+
args: --fail-on-incompatible base/public/spec.yaml head/public/spec.yaml --markdown api-spec-incompatible.md
80+
81+
- name: Comment PR with no changes
82+
if: steps.api-changed.outcome == 'success' && steps.api-incompatible.outcome == 'success'
83+
working-directory: head
84+
env:
85+
GH_TOKEN: ${{ github.token }}
86+
run: |
87+
gh pr comment ${{ github.event.pull_request.number }} --body "✅ **No changes detected in API specification**" --create-if-none --edit-last
88+
89+
- name: Comment PR with non-breaking changes
90+
if: steps.api-changed.outcome == 'failure' && steps.api-incompatible.outcome == 'success'
91+
working-directory: head
92+
env:
93+
GH_TOKEN: ${{ github.token }}
94+
run: |
95+
echo "## ⚠️ Non-Breaking changes detected in API specification" > ../comment.md
96+
echo "" >> ../comment.md
97+
cat ../api-spec-changed.md >> ../comment.md
98+
gh pr comment ${{ github.event.pull_request.number }} --body-file ../comment.md --create-if-none --edit-last
99+
100+
- name: Comment PR with breaking changes
101+
if: steps.api-incompatible.outcome == 'failure'
102+
working-directory: head
103+
env:
104+
GH_TOKEN: ${{ github.token }}
105+
run: |
106+
echo "## 🛑 Breaking changes detected in API specification" > ../comment.md
107+
echo "" >> ../comment.md
108+
cat ../api-spec-incompatible.md >> ../comment.md
109+
gh pr comment ${{ github.event.pull_request.number }} --body-file ../comment.md --create-if-none --edit-last
110+
111+
- name: Fail if breaking changes detected
112+
if: steps.api-incompatible.outcome == 'failure'
113+
run: |
114+
exit 1

.github/workflows/build_release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
APP_ENV: prod
1717
steps:
1818
- name: Checkout
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v5
2020

2121
- name: Composer install
2222
run: |

.github/workflows/changelog.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
fail-fast: false
1919
steps:
2020
- name: Checkout
21-
uses: actions/checkout@v4
21+
uses: actions/checkout@v5
2222
with:
2323
fetch-depth: 2
2424

.github/workflows/composer.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
strategy:
4242
fail-fast: false
4343
steps:
44-
- uses: actions/checkout@v4
44+
- uses: actions/checkout@v5
4545

4646
- name: Create docker network
4747
run: |
@@ -55,7 +55,7 @@ jobs:
5555
strategy:
5656
fail-fast: false
5757
steps:
58-
- uses: actions/checkout@v4
58+
- uses: actions/checkout@v5
5959

6060
- name: Create docker network
6161
run: |
@@ -70,7 +70,7 @@ jobs:
7070
strategy:
7171
fail-fast: false
7272
steps:
73-
- uses: actions/checkout@v4
73+
- uses: actions/checkout@v5
7474

7575
- name: Create docker network
7676
run: |

.github/workflows/markdown.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
fail-fast: false
3535
steps:
3636
- name: Checkout
37-
uses: actions/checkout@v4
37+
uses: actions/checkout@v5
3838

3939
- name: Create docker network
4040
run: |

.github/workflows/php.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
name: PHP - Check Coding Standards
4949
runs-on: ubuntu-latest
5050
steps:
51-
- uses: actions/checkout@v4
51+
- uses: actions/checkout@v5
5252

5353
- name: Create docker network
5454
run: |

.github/workflows/pr.yaml

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
on:
22
pull_request:
33

4-
name: Review
4+
name: Code Review
55

66
env:
77
COMPOSE_USER: root
@@ -11,10 +11,10 @@ jobs:
1111
name: API test
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v5
1515

1616
# https://taskfile.dev/installation/#github-actions
17-
- uses: arduino/setup-task@v2
17+
- uses: go-task/setup-task@v1
1818

1919
- name: Start docker compose setup and install site
2020
run: |
@@ -33,10 +33,10 @@ jobs:
3333
runs-on: ubuntu-latest
3434
name: PHPStan static analysis
3535
steps:
36-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@v5
3737

3838
# https://taskfile.dev/installation/#github-actions
39-
- uses: arduino/setup-task@v2
39+
- uses: go-task/setup-task@v1
4040

4141
- run: |
4242
docker network create frontend
@@ -45,26 +45,3 @@ jobs:
4545
- name: Run code analysis
4646
run: |
4747
task --yes code-analysis:phpstan
48-
49-
apispec:
50-
runs-on: ubuntu-latest
51-
name: API specification validation
52-
steps:
53-
- name: Checkout
54-
uses: actions/checkout@v4
55-
with:
56-
fetch-depth: 2
57-
58-
# https://taskfile.dev/installation/#github-actions
59-
- uses: arduino/setup-task@v2
60-
61-
- run: |
62-
docker network create frontend
63-
task --yes site:update
64-
65-
- name: Export API specification
66-
run: |
67-
task --yes api:spec:export
68-
69-
- name: Check for changes in specification
70-
run: git diff --diff-filter=ACMRT --exit-code public/spec.yaml

.github/workflows/twig.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
fail-fast: false
4141
steps:
4242
- name: Checkout
43-
uses: actions/checkout@v4
43+
uses: actions/checkout@v5
4444

4545
- name: Create docker network
4646
run: |

.github/workflows/yaml.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
yaml-lint:
3232
runs-on: ubuntu-latest
3333
steps:
34-
- uses: actions/checkout@v4
34+
- uses: actions/checkout@v5
3535

3636
- name: Create docker network
3737
run: |

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ See [keep a changelog] for information about writing changes to this log.
88

99
## [Unreleased]
1010

11+
## [1.2.0] - 2025-09-02
12+
13+
- [PR-25](https://github.com/itk-dev/event-database-api/pull/25)
14+
- Lock api-platform to 4.1.* to avoid breaking API changes
15+
- Add github action to check and validate API changes
16+
- Clarify date filter format in api spec
17+
- Dependency updates
1118
- [PR-24](https://github.com/itk-dev/event-database-api/pull/24)
1219
Symfony 7.3 and PHP 8.4
1320
- [PR-23](https://github.com/itk-dev/event-database-api/pull/23)
@@ -68,7 +75,8 @@ See [keep a changelog] for information about writing changes to this log.
6875
- Added multi-value filtering for Lactions and Organizations
6976

7077
[keep a changelog]: https://keepachangelog.com/en/1.1.0/
71-
[unreleased]: https://github.com/itk-dev/event-database-api/compare/1.1.0...HEAD
78+
[Unreleased]: https://github.com/itk-dev/event-database-api/compare/1.2.0...HEAD
79+
[1.2.0]: https://github.com/itk-dev/event-database-api/compare/1.1.0...1.2.0
7280
[1.1.0]: https://github.com/itk-dev/event-database-api/releases/tag/1.1.0
7381
[1.0.1]: https://github.com/itk-dev/event-database-api/releases/tag/1.0.1
7482
[1.0.0]: https://github.com/itk-dev/event-database-api/releases/tag/1.0.0

0 commit comments

Comments
 (0)