Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#513] release 2.5.0 #516

Open
wants to merge 45 commits into
base: stable/2.5.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
847826a
Disable trivy image scan (#465)
SonnyBA Oct 4, 2024
a628569
:construction_worker: check OAF version on PRs
Coperh Oct 1, 2024
4f5b041
:arrow_up: update pip tools
Coperh Oct 1, 2024
2989638
[#13] reuse open-api-workflows workflows (#447)
SonnyBA Oct 17, 2024
03f309a
:memo: [#403] Document Notificaties API retry behavior
stevenbal Oct 24, 2024
bfef468
Add test to illustrate expected validation on object PATCH
swrichards Oct 9, 2024
ee29b99
:bug: [#466] fix validation for merge PATCH
annashamray Oct 29, 2024
d338805
:arrow_up: update OAF to 0.9.0
Coperh Nov 15, 2024
339581e
:arrow_up: [https://github.com/maykinmedia/open-api-framework/issues/…
annashamray Nov 25, 2024
ef8ee8d
:recycle: [https://github.com/maykinmedia/open-api-framework/issues/6…
annashamray Nov 25, 2024
3a70892
:arrow_up: [https://github.com/maykinmedia/open-api-framework/issues/…
annashamray Nov 29, 2024
c0ef29f
:ok_hand: [https://github.com/maykinmedia/open-api-framework/issues/6…
annashamray Nov 29, 2024
6487c0a
[#484] Notification channel setup config (#491)
SonnyBA Dec 13, 2024
9893dbf
[#467] Setup objecttypes through django-setup-configuration (#492)
SonnyBA Dec 13, 2024
ea3e12f
[#483] add support for mozilla django OIDC db config (#490)
SonnyBA Dec 13, 2024
fb01a35
Bump open-api-framework to 0.9.1
swrichards Dec 18, 2024
944416d
Regenerate envvar docs
swrichards Dec 18, 2024
e3b2d6e
[#495] Add envsubst to Docker deps
swrichards Dec 16, 2024
c6f2086
[#485] tokenauth setup configuration (#494)
danielmursa-dev Dec 19, 2024
8ba8a60
:test_tube: [#472] add regression tests if filter with icontains have…
annashamray Nov 29, 2024
affa68b
:sparkles: [#472] add 'data_attr' query param
annashamray Dec 11, 2024
1fb75d5
:construction_worker: [#472] update OAS check GH workflow
annashamray Dec 12, 2024
e9adcde
:memo: [#472] update OAS with 'data_attr' filter
annashamray Dec 12, 2024
3e73733
:green_heart: [#472] fix new filter field widget
annashamray Dec 12, 2024
ecd09a6
:sparkles: [#472] add validation for 'data_attr' filter
annashamray Dec 12, 2024
5d7993e
:white_check_mark: [#472] add more tests for 'data_attr' filter
annashamray Dec 12, 2024
7bb8572
:ok_hand: [#472] process PR feedback
annashamray Dec 18, 2024
ea20e2f
Feature/486 token permissions configuration (#497)
danielmursa-dev Dec 19, 2024
9bd3062
:construction_worker: [#501] Make sure docs are built in CI
stevenbal Dec 19, 2024
7974df3
:construction_worker: [maykinmedia/open-api-framework#92] Ensure late…
stevenbal Dec 19, 2024
0008df4
:construction_worker: [#504] Pin to v3.0.1 of publish workflow
stevenbal Dec 20, 2024
6457f69
:construction_worker: [maykinmedia/objects-api#463] Add trivy image scan
stevenbal Dec 24, 2024
1493eea
:wrench: [maykinmedia/open-api-framework#81] Switch from pip-compile …
stevenbal Jan 2, 2025
1a73a71
:arrow_up: [maykinmedia/open-api-framework#93] Security updates
stevenbal Jan 2, 2025
0ff5327
:construction_worker: add OAF auto-update action
Coperh Jan 3, 2025
6c59c8a
Update cryptography
SonnyBA Jan 8, 2025
ca7c3a7
Update NPM dependencies
SonnyBA Jan 8, 2025
65bbee6
[#513] Update changelog & README
SonnyBA Jan 8, 2025
c356e0d
[#513] bump version for various files
SonnyBA Jan 8, 2025
3711aa7
[#513] fix flake8 errors
Jan 9, 2025
aa6082f
[#513] regenerate openapi spec
Jan 9, 2025
06671cc
[#513] update oas-check CI workflow
Jan 9, 2025
7b41926
[#513] update expected `data_attrs` error behavior for v1
Jan 9, 2025
faca679
[#513] apply black formatting
Jan 9, 2025
020fdd3
[#513] moved django-setup-configuration upgrade to breaking changes
Jan 9, 2025
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
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[bumpversion]
commit = False
tag = False
current_version = 2.4.4
current_version = 2.5.0

[bumpversion:file:README.rst]

Expand Down
161 changes: 37 additions & 124 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,26 +29,12 @@ jobs:

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Set up backend environment
uses: maykinmedia/[email protected]
with:
apt-packages: 'libgdal-dev gdal-bin'
python-version: '3.11'
- uses: actions/setup-node@v4
with:
node-version: '18'

- name: Install system packages
run: |
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
libgdal-dev \
gdal-bin

- name: Install dependencies
run: pip install -r requirements/ci.txt codecov
- name: Build frontend
run: |
npm ci
npm run build
setup-node: true

- name: Run tests
run: |
Expand All @@ -61,27 +47,21 @@ jobs:
DB_PASSWORD: ''

- name: Publish coverage report
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4

docs:
runs-on: ubuntu-latest
name: Documentation build

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Set up backend environment
uses: maykinmedia/[email protected]
with:
apt-packages: 'libgdal-dev gdal-bin'
python-version: '3.11'
cache: 'pip'
cache-dependency-path: 'requirements/*.txt'
- name: Install system packages
run: |
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
libgdal-dev \
gdal-bin
- name: Install dependencies
run: pip install -r requirements/ci.txt pytest
setup-node: false

- name: Generate environment variable documentation using OAf and check if it was updated
run: |
bin/generate_envvar_docs.sh
Expand All @@ -94,104 +74,37 @@ jobs:
env:
DJANGO_SETTINGS_MODULE: objects.conf.ci

docker:
needs: tests

name: Build (and push) Docker image
store-reusable-workflow-vars:
name: create values which can be passed through a reusable workflow
runs-on: ubuntu-latest
outputs:
image-name: ${{ steps.image-name.outputs.image-name }}

steps:
- uses: actions/checkout@v4

- name: Set tag
id: vars
run: |
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
- run: echo "image-name=$IMAGE_NAME" >> $GITHUB_OUTPUT
name: 'Store the docker image name'
id: image-name

# Strip "v" prefix from tag name (if present at all)
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')

# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=latest

echo ::set-output name=tag::${VERSION}

- name: Build the Docker image
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
run: docker build . --tag $IMAGE_NAME:$RELEASE_VERSION

- run: docker image save -o image.tar $IMAGE_NAME:${{ steps.vars.outputs.tag }}

- name: Store image artifact
uses: actions/upload-artifact@v3
with:
name: docker-image
path: image.tar
retention-days: 1

image_scan:
runs-on: ubuntu-latest
name: Scan docker image
open-api-ci:
uses: maykinmedia/open-api-workflows/.github/workflows/[email protected]
needs:
- docker

steps:
- name: Download built image
uses: actions/download-artifact@v3
with:
name: docker-image
- name: Scan image with Trivy
uses: aquasecurity/trivy-action@master
with:
input: /github/workspace/image.tar # from download-artifact
format: 'sarif'
output: 'trivy-results-docker.sarif'
ignore-unfixed: true
- name: Upload results to GH Security tab
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results-docker.sarif'

publish:
- store-reusable-workflow-vars
with:
main-branch: 'master'
run-docs: true
django-settings-module: objects.conf.ci
python-version: '3.11'
docker-image-name: ${{ needs.store-reusable-workflow-vars.outputs.image-name }}

open-api-publish:
uses: maykinmedia/open-api-workflows/.github/workflows/[email protected]
needs:
- store-reusable-workflow-vars
- open-api-ci
- tests
- docker

name: Push Docker image
runs-on: ubuntu-latest
if: github.event_name == 'push' # exclude PRs

steps:
- uses: actions/checkout@v4
- name: Download built image
uses: actions/download-artifact@v3
with:
name: docker-image

- name: Determine tag
id: vars
run: |
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')

# Strip "v" prefix from tag name (if present at all)
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')

# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=latest

echo ::set-output name=tag::${VERSION}

- name: Load image
run: |
docker image load -i image.tar

- name: Log into registry
run: echo "${{ secrets.DOCKER_TOKEN }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin

- name: Push the Docker image
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
run: docker push $IMAGE_NAME:$RELEASE_VERSION
with:
docker-image-name: ${{ needs.store-reusable-workflow-vars.outputs.image-name }}
repository-owner: 'maykinmedia'
secrets:
docker-username: ${{ secrets.DOCKER_USERNAME }}
docker-token: ${{ secrets.DOCKER_TOKEN }}
94 changes: 21 additions & 73 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
@@ -1,77 +1,25 @@
name: code-quality

on: [push]
on:
push:
branches:
- master
paths:
- '**.py'
- '**.yml'
pull_request:
paths:
- '**.py'
- '**.yml'
workflow_dispatch:

jobs:
isort:
name: Check import sorting
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: isort/isort-action@v1
with:
requirementsFiles: requirements/dev.txt
sortPaths: "src docs"
configuration: '--check-only --diff'

black:
name: Check code formatting with black
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
pip install -r requirements/dev.txt
- name: Run black
run: |
black --check src docs

oas-up-to-date:
name: Check for unexepected OAS changes
runs-on: ubuntu-latest
strategy:
matrix:
version: ['v1', 'v2']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: actions/setup-node@v4
with:
node-version: '18'

- name: Install system packages
run: |
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
libgdal-dev \
gdal-bin

- name: Install dependencies
run: pip install -r requirements/ci.txt

- name: Generate OAS files
run: ./bin/generate_schema.sh ${{ matrix.version }} openapi-${{ matrix.version }}.yaml
env:
DJANGO_SETTINGS_MODULE: objects.conf.ci

- name: Check for OAS changes
run: |
diff openapi-${{ matrix.version }}.yaml src/objects/api/${{ matrix.version }}/openapi.yaml
- name: Write failure markdown
if: ${{ failure() }}
run: |
echo 'Run the following command locally and commit the changes' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '```bash' >> $GITHUB_STEP_SUMMARY
echo './bin/generate_schema.sh ${{ matrix.version }}' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
open-api-workflow-code-quality:
uses: maykinmedia/open-api-workflows/.github/workflows/code-quality.yml@v1
with:
apt-packages: 'libgdal-dev gdal-bin'
python-version: '3.11'
node-version: '18'
postgres-image: 'postgis/postgis:12-2.5'

django-settings-module: 'objects.conf.ci'
51 changes: 2 additions & 49 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,52 +21,5 @@ on:
- cron: '36 0 * * 0'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality


# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
open-api-workflow-code-analysis:
uses: maykinmedia/open-api-workflows/.github/workflows/code-analysis.yml@v1
26 changes: 8 additions & 18 deletions .github/workflows/generate-postman-collection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,13 @@ on:
workflow_dispatch:

jobs:
run:
runs-on: ubuntu-latest
open-api-workflow-generate-postman-collection:
uses: maykinmedia/open-api-workflows/.github/workflows/generate-postman-collection.yml@v1
strategy:
matrix:
version: ['v1', 'v2']

name: Run with version ${{ matrix.version }}

steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install -g openapi-to-postmanv2
- name: Create tests folder
run: mkdir -p ./tests/postman
- name: Generate Postman collection
run: openapi2postmanv2 -s ./src/objects/api/${{ matrix.version }}/openapi.yaml -o ./tests/postman/collection.json --pretty
version:
- v2
- v1
with:
node-version: '18'
schema-path: 'src/objects/api/${{ matrix.version }}/openapi.yaml'
Loading
Loading