From da4c10034a29b4b3307502599f5b08615743dd92 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Mon, 8 Jan 2024 16:33:07 +0100 Subject: [PATCH 01/21] fix: override Github identifier --- lifemonitor/auth/oauth2/client/providers/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lifemonitor/auth/oauth2/client/providers/__init__.py b/lifemonitor/auth/oauth2/client/providers/__init__.py index 01dfd13bd..a6b603e46 100644 --- a/lifemonitor/auth/oauth2/client/providers/__init__.py +++ b/lifemonitor/auth/oauth2/client/providers/__init__.py @@ -57,7 +57,11 @@ def new_instance(provider_type, **kwargs): m = f"lifemonitor.auth.oauth2.client.providers.{provider_type.lower()}" try: mod = import_module(m) - return getattr(mod, provider_type.capitalize())(**kwargs) + provider_type_name = provider_type.capitalize() + # override Github identifier + if provider_type_name == 'Github': + provider_type_name = 'GitHub' + return getattr(mod, provider_type_name)(**kwargs) except (ModuleNotFoundError, AttributeError) as e: logger.exception(e) raise OAuth2ProviderNotSupportedException(provider_type=provider_type, orig=e) From a1c1507a71f6f9b274c65b63c1af896f260d89d5 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Mon, 8 Jan 2024 17:20:28 +0100 Subject: [PATCH 02/21] feat(model): add method to retrieve user's profile page --- lifemonitor/auth/oauth2/client/models.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lifemonitor/auth/oauth2/client/models.py b/lifemonitor/auth/oauth2/client/models.py index a53d4f7f2..d84c56a3c 100644 --- a/lifemonitor/auth/oauth2/client/models.py +++ b/lifemonitor/auth/oauth2/client/models.py @@ -257,6 +257,11 @@ def user_info(self): def user_info(self, value): self._user_info = value + @property + def profile_page(self) -> str: + logger.debug("Trying to get the user profile page for provider %r...", self.provider.name) + return self.provider.get_user_profile_page(self) + def __repr__(self): parts = [] parts.append(self.__class__.__name__) From aeeef0521818b8b01374e2e5b776522804bb7a92 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Mon, 8 Jan 2024 17:23:33 +0100 Subject: [PATCH 03/21] feat(model): extend supported providers with user's profile page --- .../auth/oauth2/client/providers/github.py | 10 ++++++++ .../auth/oauth2/client/providers/lsaai.py | 10 ++++++++ .../auth/oauth2/client/providers/seek.py | 24 +++++++++++++++---- 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/lifemonitor/auth/oauth2/client/providers/github.py b/lifemonitor/auth/oauth2/client/providers/github.py index 450464e6f..b8cbae2ec 100644 --- a/lifemonitor/auth/oauth2/client/providers/github.py +++ b/lifemonitor/auth/oauth2/client/providers/github.py @@ -19,8 +19,11 @@ # SOFTWARE. import logging + from flask import current_app +from lifemonitor.auth.oauth2.client.models import OAuthIdentity + # Config a module level logger logger = logging.getLogger(__name__) @@ -66,11 +69,18 @@ class GitHub: 'client_kwargs': {'scope': 'read:user user:email'}, 'userinfo_endpoint': 'https://api.github.com/user', 'userinfo_compliance_fix': normalize_userinfo, + 'user_profile_html': 'https://github.com/settings/profile' } def __repr__(self) -> str: return f"Github Provider {self.name}" + @classmethod + def get_user_profile_page(cls, user_identity: OAuthIdentity): + logger.warning("user: %r", user_identity) + # the user profile page can be retrieved without user_provider_id + return cls.oauth_config['user_profile_html'] + @staticmethod def normalize_userinfo(client, data): return normalize_userinfo(client, data) diff --git a/lifemonitor/auth/oauth2/client/providers/lsaai.py b/lifemonitor/auth/oauth2/client/providers/lsaai.py index 8ca4a01d8..aba30e43e 100644 --- a/lifemonitor/auth/oauth2/client/providers/lsaai.py +++ b/lifemonitor/auth/oauth2/client/providers/lsaai.py @@ -19,8 +19,11 @@ # SOFTWARE. import logging + from flask import current_app +from lifemonitor.auth.oauth2.client.models import OAuthIdentity + # Config a module level logger logger = logging.getLogger(__name__) @@ -69,12 +72,19 @@ class LsAAI: 'client_kwargs': {'scope': 'openid profile email orcid eduperson_principal_name'}, 'userinfo_endpoint': 'https://proxy.aai.lifescience-ri.eu/OIDC/userinfo', 'userinfo_compliance_fix': normalize_userinfo, + 'user_profile_html': 'https://profile.aai.lifescience-ri.eu/profile', 'server_metadata_url': 'https://proxy.aai.lifescience-ri.eu/.well-known/openid-configuration' } def __repr__(self) -> str: return "LSAAI Provider" + @classmethod + def get_user_profile_page(cls, user_identity: OAuthIdentity): + logger.warning("user: %r", user_identity) + # the user profile page can be retrieved without user_provider_id + return cls.oauth_config['user_profile_html'] + @staticmethod def normalize_userinfo(client, data): return normalize_userinfo(client, data) diff --git a/lifemonitor/auth/oauth2/client/providers/seek.py b/lifemonitor/auth/oauth2/client/providers/seek.py index 7aa2143df..470bc1049 100644 --- a/lifemonitor/auth/oauth2/client/providers/seek.py +++ b/lifemonitor/auth/oauth2/client/providers/seek.py @@ -19,10 +19,13 @@ # SOFTWARE. import logging -import requests from urllib.parse import urljoin + +import requests + from lifemonitor import exceptions -from ..models import OAuth2IdentityProvider + +from ..models import OAuth2IdentityProvider, OAuthIdentity # Config a module level logger logger = logging.getLogger(__name__) @@ -74,9 +77,12 @@ def normalize_userinfo(client, data): } return params + def get_user_profile_html(self, provider_user_id) -> str: + return urljoin(self.api_base_url, + f'/people/{provider_user_id}?format=json') + def get_user_info(self, provider_user_id, token, normalized=True): - response = requests.get(urljoin(self.api_base_url, - f'/people/{provider_user_id}?format=json'), + response = requests.get(self.get_user_profile_html(provider_user_id), headers={'Authorization': f'Bearer {token["access_token"]}'}) if response.status_code != 200: try: @@ -91,6 +97,16 @@ def get_user_info(self, provider_user_id, token, normalized=True): logger.debug("USER info: %r", user_info) return user_info['data'] if not normalized else self.normalize_userinfo(None, user_info) + @classmethod + def get_user_profile_page(cls, user_identity: OAuthIdentity): + logger.debug("user: %r", user_identity) + # the user profile page can require user_provider_id + if not user_identity: + logger.warning("No identity found for user %r", user_identity) + return None + assert user_identity.provider.name == cls.name, "Invalid user identity" + return user_identity.provider.get_user_profile_html(user_identity.provider_user_id) + def refresh_oauth2_token(func): from . import refresh_oauth2_provider_token From e1cd972dd381d399b2d794c383753d9620ea8d0e Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Mon, 8 Jan 2024 17:27:43 +0100 Subject: [PATCH 04/21] feat(ctrl/view): display links to user's profile page on IdPs --- lifemonitor/auth/controllers.py | 13 +++++- .../auth/templates/auth/account_tab.j2 | 40 +++++++++++++------ 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/lifemonitor/auth/controllers.py b/lifemonitor/auth/controllers.py index e1550a82a..28b3994e4 100644 --- a/lifemonitor/auth/controllers.py +++ b/lifemonitor/auth/controllers.py @@ -28,6 +28,7 @@ from flask_login import login_required, login_user, logout_user from wtforms import ValidationError +from lifemonitor.auth.oauth2.client.models import OAuth2IdentityProvider from lifemonitor.cache import Timeout, cached, clear_cache from lifemonitor.utils import (NextRouteRegistry, next_route_aware, split_by_crlf) @@ -191,7 +192,16 @@ def profile(form=None, passwordForm=None, currentView=None, logger.debug("detected back param: %s", back_param) from lifemonitor.api.models.registries.forms import RegistrySettingsForm from lifemonitor.integrations.github.forms import GithubSettingsForm - logger.warning("Request args: %r", request.args) + logger.debug("Request args: %r", request.args) + logger.debug("Providers: %r", get_providers()) + logger.debug("Current user: %r", current_user) + user_identities = [{ + "name": p.name, + "identity": current_user.oauth_identity.get(p.name, None), + "provider": p + } for p in OAuth2IdentityProvider.all() + ] + logger.debug("User identities: %r", user_identities) return render_template("auth/profile.j2", passwordForm=passwordForm or SetPasswordForm(), emailForm=emailForm or EmailForm(), @@ -204,6 +214,7 @@ def profile(form=None, passwordForm=None, currentView=None, providers=get_providers(), currentView=currentView, oauth2_generic_client_scopes=OpenApiSpecs.get_instance().authorization_code_scopes, api_base_url=get_external_server_url(), + user_identities=user_identities, back_param=back_param) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 2e4c637cf..7b3853569 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -12,24 +12,37 @@ - - - + + + - {% for p in providers %} + {% for user_identity in user_identities %} - - - - {% if p.client_name in current_user.oauth_identity %} + + + {% if user_identity.identity %} + {% else %} -
ProviderUser IDProviderUser ID
{{ macros.render_provider_fa_icon(p, color="black") }}{{p.name}}{% if p.client_name in current_user.oauth_identity %} - {{ current_user.oauth_identity[p.client_name].provider_user_id }} - {% endif %} + {{ macros.render_provider_fa_icon(user_identity.provider, color="black") }} + + {{user_identity.provider.name}} + + {% if user_identity.identity %} + {{ user_identity.identity.provider_user_id }} + + {% endif %} + {% if current_user.oauth_identity|length > 1 or current_user.has_password %} - + CONNECTED @@ -39,8 +52,9 @@ - + + CONNECT From 2142d1281f00055de37e8349562950b96e416f1b Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Mon, 8 Jan 2024 17:36:53 +0100 Subject: [PATCH 05/21] fix(model): add missed changes --- lifemonitor/auth/oauth2/client/models.py | 26 +++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/lifemonitor/auth/oauth2/client/models.py b/lifemonitor/auth/oauth2/client/models.py index d84c56a3c..db08a1a5b 100644 --- a/lifemonitor/auth/oauth2/client/models.py +++ b/lifemonitor/auth/oauth2/client/models.py @@ -33,6 +33,12 @@ from authlib.oauth2.rfc6749 import OAuth2Token as OAuth2TokenBase from flask import current_app from flask_login import current_user +from sqlalchemy import DateTime, inspect +from sqlalchemy.ext.hybrid import hybrid_property +from sqlalchemy.orm.attributes import flag_modified +from sqlalchemy.orm.collections import attribute_mapped_collection +from sqlalchemy.orm.exc import NoResultFound + from lifemonitor.auth import models from lifemonitor.cache import Timeout from lifemonitor.db import db @@ -41,11 +47,8 @@ NotAuthorizedException) from lifemonitor.models import JSON, ModelMixin from lifemonitor.utils import assert_service_is_alive, to_snake_case -from sqlalchemy import DateTime, inspect -from sqlalchemy.ext.hybrid import hybrid_property -from sqlalchemy.orm.attributes import flag_modified -from sqlalchemy.orm.collections import attribute_mapped_collection -from sqlalchemy.orm.exc import NoResultFound + +from .providers import new_instance as provider_config_helper_new_instance logger = logging.getLogger(__name__) @@ -450,6 +453,19 @@ def get_user_info(self, provider_user_id, token, normalized=True): return data if not normalized \ else self.normalize_userinfo(OAuth2Registry.get_instance().get_client(self.name), data) + @property + def _provider_config_helper(self): + return provider_config_helper_new_instance(self.name) + + def get_user_profile_page(self, user_identity: OAuthIdentity) -> str: + try: + logger.warning("user info: %r", user_identity) + return self._provider_config_helper.get_user_profile_page(user_identity) + except AttributeError as e: + if logger.isEnabledFor(logging.DEBUG): + logger.exception("Unable to get the user profile page for provider: %r", e) + return None + @property def api_base_url(self): return self.api_resource.uri From 40c03a04c6a3e78268f862a84772e7d16403a1de Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Tue, 9 Jan 2024 11:20:17 +0100 Subject: [PATCH 06/21] fix: wrong assertion --- lifemonitor/auth/oauth2/client/providers/seek.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lifemonitor/auth/oauth2/client/providers/seek.py b/lifemonitor/auth/oauth2/client/providers/seek.py index 470bc1049..221f5771e 100644 --- a/lifemonitor/auth/oauth2/client/providers/seek.py +++ b/lifemonitor/auth/oauth2/client/providers/seek.py @@ -104,7 +104,7 @@ def get_user_profile_page(cls, user_identity: OAuthIdentity): if not user_identity: logger.warning("No identity found for user %r", user_identity) return None - assert user_identity.provider.name == cls.name, "Invalid user identity" + assert isinstance(user_identity.provider, cls), "Invalid provider" return user_identity.provider.get_user_profile_html(user_identity.provider_user_id) From 3c89e708e9f3011430a67f030d371bc22fd2b4a3 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Tue, 9 Jan 2024 11:21:10 +0100 Subject: [PATCH 07/21] fix: more secure check when getting user identity --- lifemonitor/auth/controllers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lifemonitor/auth/controllers.py b/lifemonitor/auth/controllers.py index 28b3994e4..37ddaf6f6 100644 --- a/lifemonitor/auth/controllers.py +++ b/lifemonitor/auth/controllers.py @@ -197,7 +197,8 @@ def profile(form=None, passwordForm=None, currentView=None, logger.debug("Current user: %r", current_user) user_identities = [{ "name": p.name, - "identity": current_user.oauth_identity.get(p.name, None), + "identity": current_user.oauth_identity.get(p.name, None) + if current_user and current_user.is_authenticated else None, "provider": p } for p in OAuth2IdentityProvider.all() ] From 0c927639609b406b4e291e5da3fde9e06e013dfb Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Tue, 9 Jan 2024 12:02:19 +0100 Subject: [PATCH 08/21] fix(utils): update root path of add_boilerplate script --- utils/add_boilerplate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/add_boilerplate.py b/utils/add_boilerplate.py index fca113856..638a5fe94 100644 --- a/utils/add_boilerplate.py +++ b/utils/add_boilerplate.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -24,7 +24,7 @@ import re -THIS_DIR = os.path.dirname(os.path.abspath(__file__)) +THIS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir) THIS_YEAR = datetime.date.today().year C_YEAR = f"2020-{THIS_YEAR}" LICENSE_FN = os.path.join(THIS_DIR, "LICENSE") From e44afd9ef9554ff43380b18f85d0b9726d7feaf6 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Tue, 9 Jan 2024 12:03:43 +0100 Subject: [PATCH 09/21] chore: update copyright end year to 2024 --- LICENSE | 2 +- app.py | 2 +- cli/admin.py | 2 +- cli/client/__init__.py | 2 +- cli/client/issues.py | 2 +- cli/client/main.py | 2 +- cli/client/utils.py | 2 +- examples/get_workflow.py | 2 +- gunicorn.conf.py | 19 ++++++++++++++++++ .../_OLD_TEST_METADATA/check_nextflow.py | 2 +- interaction_experiments/check_cwl.py | 2 +- interaction_experiments/check_galaxy.py | 2 +- lifemonitor/__init__.py | 2 +- lifemonitor/_version.py | 20 +++++++++++++++++++ lifemonitor/api/__init__.py | 2 +- lifemonitor/api/controllers.py | 2 +- lifemonitor/api/models/__init__.py | 2 +- lifemonitor/api/models/issues/__init__.py | 2 +- .../api/models/issues/general/experimental.py | 2 +- lifemonitor/api/models/issues/general/lm.py | 2 +- .../api/models/issues/general/metadata.py | 2 +- .../api/models/issues/general/repo_layout.py | 2 +- lifemonitor/api/models/notifications.py | 2 +- lifemonitor/api/models/registries/__init__.py | 2 +- lifemonitor/api/models/registries/forms.py | 2 +- lifemonitor/api/models/registries/registry.py | 2 +- lifemonitor/api/models/registries/seek.py | 2 +- lifemonitor/api/models/registries/settings.py | 2 +- .../api/models/repositories/__init__.py | 2 +- lifemonitor/api/models/repositories/base.py | 2 +- lifemonitor/api/models/repositories/config.py | 2 +- .../api/models/repositories/files/__init__.py | 19 ++++++++++++++++++ .../api/models/repositories/files/base.py | 2 +- .../models/repositories/files/templates.py | 2 +- .../repositories/files/workflows/__init__.py | 2 +- .../repositories/files/workflows/galaxy.py | 2 +- .../repositories/files/workflows/jupyter.py | 2 +- .../repositories/files/workflows/nextflow.py | 2 +- .../repositories/files/workflows/other.py | 2 +- .../repositories/files/workflows/snakemake.py | 2 +- lifemonitor/api/models/repositories/github.py | 2 +- lifemonitor/api/models/repositories/local.py | 2 +- .../models/repositories/templates/__init__.py | 2 +- .../models/repositories/templates/galaxy.py | 2 +- .../models/repositories/templates/nextflow.py | 2 +- .../repositories/templates/snakemake.py | 2 +- lifemonitor/api/models/rocrate/__init__.py | 2 +- lifemonitor/api/models/rocrate/generators.py | 2 +- lifemonitor/api/models/services/__init__.py | 2 +- lifemonitor/api/models/services/github.py | 2 +- lifemonitor/api/models/services/jenkins.py | 2 +- lifemonitor/api/models/services/service.py | 2 +- lifemonitor/api/models/services/travis.py | 2 +- lifemonitor/api/models/status.py | 2 +- lifemonitor/api/models/testsuites/__init__.py | 2 +- .../api/models/testsuites/testbuild.py | 2 +- .../api/models/testsuites/testinstance.py | 2 +- .../api/models/testsuites/testsuite.py | 2 +- lifemonitor/api/models/wizards/__init__.py | 2 +- .../api/models/wizards/repository_template.py | 2 +- lifemonitor/api/models/workflows.py | 2 +- lifemonitor/api/serializers.py | 2 +- lifemonitor/api/services.py | 2 +- lifemonitor/app.py | 2 +- lifemonitor/auth/__init__.py | 2 +- lifemonitor/auth/controllers.py | 2 +- lifemonitor/auth/forms.py | 2 +- lifemonitor/auth/models.py | 2 +- lifemonitor/auth/oauth2/__init__.py | 2 +- lifemonitor/auth/oauth2/client/__init__.py | 2 +- lifemonitor/auth/oauth2/client/controllers.py | 2 +- lifemonitor/auth/oauth2/client/models.py | 2 +- .../auth/oauth2/client/providers/__init__.py | 2 +- .../auth/oauth2/client/providers/github.py | 2 +- .../auth/oauth2/client/providers/lsaai.py | 2 +- .../auth/oauth2/client/providers/seek.py | 2 +- lifemonitor/auth/oauth2/client/services.py | 2 +- lifemonitor/auth/oauth2/client/utils.py | 2 +- lifemonitor/auth/oauth2/server/__init__.py | 2 +- lifemonitor/auth/oauth2/server/controllers.py | 2 +- lifemonitor/auth/oauth2/server/forms.py | 2 +- lifemonitor/auth/oauth2/server/models.py | 2 +- lifemonitor/auth/oauth2/server/services.py | 2 +- lifemonitor/auth/oauth2/server/utils.py | 2 +- lifemonitor/auth/serializers.py | 2 +- lifemonitor/auth/services.py | 2 +- lifemonitor/cache.py | 2 +- lifemonitor/commands/__init__.py | 2 +- lifemonitor/commands/api_key.py | 2 +- lifemonitor/commands/backup.py | 2 +- lifemonitor/commands/cache.py | 2 +- lifemonitor/commands/db.py | 2 +- lifemonitor/commands/encrypt.py | 2 +- lifemonitor/commands/oauth.py | 2 +- lifemonitor/commands/registry.py | 2 +- lifemonitor/commands/tasks.py | 2 +- lifemonitor/config.py | 2 +- lifemonitor/db.py | 2 +- lifemonitor/errors.py | 2 +- lifemonitor/exceptions.py | 2 +- lifemonitor/integrations/__init__.py | 2 +- lifemonitor/integrations/github/__init__.py | 2 +- lifemonitor/integrations/github/app.py | 2 +- lifemonitor/integrations/github/config.py | 2 +- .../integrations/github/controllers.py | 2 +- lifemonitor/integrations/github/events.py | 2 +- lifemonitor/integrations/github/forms.py | 2 +- lifemonitor/integrations/github/issues.py | 2 +- .../integrations/github/notifications.py | 2 +- .../integrations/github/pull_requests.py | 2 +- lifemonitor/integrations/github/registry.py | 2 +- lifemonitor/integrations/github/services.py | 2 +- lifemonitor/integrations/github/settings.py | 2 +- lifemonitor/integrations/github/utils.py | 2 +- lifemonitor/integrations/github/wizards.py | 2 +- lifemonitor/lang/messages.py | 2 +- lifemonitor/mail.py | 2 +- lifemonitor/metrics/__init__.py | 2 +- lifemonitor/metrics/controller.py | 2 +- lifemonitor/metrics/model.py | 2 +- lifemonitor/metrics/services.py | 2 +- lifemonitor/metrics/stats.py | 2 +- lifemonitor/models.py | 2 +- lifemonitor/redis.py | 19 ++++++++++++++++++ lifemonitor/routes.py | 2 +- lifemonitor/schemas/controller.py | 19 ++++++++++++++++++ lifemonitor/schemas/validators.py | 2 +- lifemonitor/serializers.py | 2 +- lifemonitor/storage.py | 2 +- lifemonitor/tasks/__init__.py | 19 ++++++++++++++++++ lifemonitor/tasks/config.py | 19 ++++++++++++++++++ lifemonitor/tasks/controller.py | 2 +- lifemonitor/tasks/jobs/__init__.py | 20 +++++++++++++++++++ lifemonitor/tasks/jobs/builds.py | 19 ++++++++++++++++++ lifemonitor/tasks/jobs/github.py | 19 ++++++++++++++++++ lifemonitor/tasks/jobs/heartbeat.py | 19 ++++++++++++++++++ lifemonitor/tasks/jobs/metrics.py | 19 ++++++++++++++++++ lifemonitor/tasks/jobs/notifications.py | 19 ++++++++++++++++++ lifemonitor/tasks/jobs/storage.py | 19 ++++++++++++++++++ lifemonitor/tasks/jobs/workflows.py | 19 ++++++++++++++++++ lifemonitor/tasks/models.py | 20 +++++++++++++++++++ lifemonitor/tasks/scheduler.py | 20 +++++++++++++++++++ lifemonitor/tasks/utils.py | 20 +++++++++++++++++++ lifemonitor/tasks/worker.py | 19 ++++++++++++++++++ .../snakemake/workflow/scripts/hello.py | 20 +++++++++++++++++++ lifemonitor/test_metadata.py | 2 +- lifemonitor/utils.py | 2 +- lifemonitor/wfhub.py | 2 +- lifemonitor/ws/__init__.py | 2 +- lifemonitor/ws/config.py | 2 +- lifemonitor/ws/events.py | 2 +- lifemonitor/ws/io.py | 19 ++++++++++++++++++ lifemonitor/ws/socket.py | 2 +- migrations/env.py | 20 +++++++++++++++++++ .../01684f92a380_subscription_collection.py | 20 +++++++++++++++++++ ...add_list_of_events_to_the_subscription_.py | 20 +++++++++++++++++++ ...13bc4_automatically_register_submitter_.py | 20 +++++++++++++++++++ ...add_uuid_property_to_notification_model.py | 20 +++++++++++++++++++ ...561c782d96_add_uri_on_identity_provider.py | 20 +++++++++++++++++++ ...6086cb72f9e1_enable_workflow_visibility.py | 20 +++++++++++++++++++ ...ultiple_registries_per_workflow_version.py | 20 +++++++++++++++++++ .../6bb84f8b8c77_track_sync_of_builds.py | 20 +++++++++++++++++++ ...0508273f01_add_client_name_property_on_.py | 20 +++++++++++++++++++ ...aa503323413_fix_links_of_seek_ro_crates.py | 20 +++++++++++++++++++ ...llow_to_differentiate_notifications_by_.py | 20 +++++++++++++++++++ ...861eca55901d_fix_workflows_with_no_name.py | 20 +++++++++++++++++++ .../versions/8b2e530dc029_initial_revision.py | 20 +++++++++++++++++++ ..._allow_to_register_multiple_tokens_for_.py | 20 +++++++++++++++++++ ...7e77a9c44b2_add_user_notification_model.py | 20 +++++++++++++++++++ ...bedbbf_change_notification_type_str_to_.py | 20 +++++++++++++++++++ ...7ea9787d017_move_oauth2_credentials_to_.py | 20 +++++++++++++++++++ ...bb0a4c003e28_add_githubworkflowregistry.py | 20 +++++++++++++++++++ .../versions/bbe1397dc8a9_hosting_service.py | 20 +++++++++++++++++++ ...64c_add_explicit_registry_reference_to_.py | 20 +++++++++++++++++++ ...51_add_name_index_on_notification_model.py | 20 +++++++++++++++++++ ...a38a6a_add_flag_to_enable_disable_mail_.py | 20 +++++++++++++++++++ .../f4cbfe20075f_ro_crate_local_path.py | 20 +++++++++++++++++++ ...da4_add_settings_property_to_user_model.py | 20 +++++++++++++++++++ tests/__init__.py | 2 +- tests/cli/test_registry.py | 2 +- tests/config/data/make-test-rocrates.py | 2 +- tests/config/web/app.py | 20 +++++++++++++++++++ tests/conftest.py | 2 +- tests/conftest_helpers.py | 2 +- tests/conftest_types.py | 2 +- tests/integration/api/controllers/__init__.py | 2 +- .../api/controllers/test_instances.py | 2 +- .../api/controllers/test_registries.py | 2 +- .../api/controllers/test_suites.py | 2 +- .../controllers/test_user_subscriptions.py | 2 +- .../integration/api/controllers/test_users.py | 2 +- .../api/controllers/test_workflows.py | 2 +- .../api/services/test_github_service.py | 2 +- .../integration/api/services/test_services.py | 2 +- .../api/services/test_workflow_registry.py | 2 +- .../services/test_workflow_subscriptions.py | 2 +- tests/rate_limit_exceeded.py | 2 +- tests/test_config.py | 2 +- tests/test_db.py | 2 +- tests/test_users.py | 2 +- tests/unit/api/controllers/test_instances.py | 2 +- tests/unit/api/controllers/test_suites.py | 2 +- tests/unit/api/controllers/test_workflows.py | 2 +- .../files/test_repository_file.py | 2 +- .../api/models/repositories/test_config.py | 2 +- .../models/repositories/test_github_repos.py | 2 +- .../models/repositories/test_local_repos.py | 2 +- .../repositories/test_repo_templates.py | 2 +- tests/unit/api/models/test_github.py | 2 +- tests/unit/api/models/test_jenkins.py | 2 +- tests/unit/api/models/test_subscriptions.py | 2 +- tests/unit/api/models/test_travis.py | 2 +- tests/unit/api/models/test_workflow_status.py | 2 +- tests/unit/api/models/test_workflow_types.py | 2 +- tests/unit/auth/models/test_tokens.py | 2 +- tests/unit/auth/models/test_users.py | 2 +- tests/unit/auth/services/test_authorized.py | 2 +- tests/unit/cache/test_cache.py | 2 +- .../issues/test_missing_lm_config_file.py | 2 +- tests/unit/issues/test_missing_workflow.py | 2 +- tests/unit/issues/test_rocrate_metadata.py | 2 +- .../unit/schemas/test_lm_schema_validator.py | 2 +- tests/unit/tasks/test_notifications.py | 2 +- tests/unit/test_read_crate.py | 2 +- tests/unit/test_storage.py | 2 +- tests/unit/test_utils.py | 2 +- tests/utils.py | 2 +- ws.py | 2 +- 228 files changed, 1106 insertions(+), 181 deletions(-) diff --git a/LICENSE b/LICENSE index b06b3d39e..a3ab71021 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-2022 CRS4 +Copyright (c) 2020-2024 CRS4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/app.py b/app.py index 8e5dfe17c..c3064912f 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/cli/admin.py b/cli/admin.py index a3be519e7..bb188ecc8 100755 --- a/cli/admin.py +++ b/cli/admin.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# Copyright (c) 2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/cli/client/__init__.py b/cli/client/__init__.py index a8f545d09..3c65281b9 100644 --- a/cli/client/__init__.py +++ b/cli/client/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/cli/client/issues.py b/cli/client/issues.py index 71a24a141..5154ea072 100644 --- a/cli/client/issues.py +++ b/cli/client/issues.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/cli/client/main.py b/cli/client/main.py index 174b5fd12..e1633beb2 100644 --- a/cli/client/main.py +++ b/cli/client/main.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/cli/client/utils.py b/cli/client/utils.py index 8a5318930..1226be80a 100644 --- a/cli/client/utils.py +++ b/cli/client/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/examples/get_workflow.py b/examples/get_workflow.py index 77372fc27..bb2331831 100644 --- a/examples/get_workflow.py +++ b/examples/get_workflow.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 8c146feb9..077b3b57d 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import os import sys diff --git a/interaction_experiments/_OLD_TEST_METADATA/check_nextflow.py b/interaction_experiments/_OLD_TEST_METADATA/check_nextflow.py index 7078bbeb9..5cdb92598 100644 --- a/interaction_experiments/_OLD_TEST_METADATA/check_nextflow.py +++ b/interaction_experiments/_OLD_TEST_METADATA/check_nextflow.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/interaction_experiments/check_cwl.py b/interaction_experiments/check_cwl.py index 851c76ba1..ccc08740e 100644 --- a/interaction_experiments/check_cwl.py +++ b/interaction_experiments/check_cwl.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/interaction_experiments/check_galaxy.py b/interaction_experiments/check_galaxy.py index a32be6ef3..a7add25b4 100644 --- a/interaction_experiments/check_galaxy.py +++ b/interaction_experiments/check_galaxy.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/__init__.py b/lifemonitor/__init__.py index 8b51e6cd7..db8523276 100644 --- a/lifemonitor/__init__.py +++ b/lifemonitor/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/_version.py b/lifemonitor/_version.py index 7a662d603..c219d8303 100644 --- a/lifemonitor/_version.py +++ b/lifemonitor/_version.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + # This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build diff --git a/lifemonitor/api/__init__.py b/lifemonitor/api/__init__.py index 817e26e0e..fcf4a19c3 100644 --- a/lifemonitor/api/__init__.py +++ b/lifemonitor/api/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/controllers.py b/lifemonitor/api/controllers.py index 5cdb8887f..c0bc32c67 100644 --- a/lifemonitor/api/controllers.py +++ b/lifemonitor/api/controllers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/__init__.py b/lifemonitor/api/models/__init__.py index 576c0ea42..df9ca3f38 100644 --- a/lifemonitor/api/models/__init__.py +++ b/lifemonitor/api/models/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/issues/__init__.py b/lifemonitor/api/models/issues/__init__.py index edbb02b9c..a16672a19 100644 --- a/lifemonitor/api/models/issues/__init__.py +++ b/lifemonitor/api/models/issues/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/issues/general/experimental.py b/lifemonitor/api/models/issues/general/experimental.py index b18c12ac7..345d7b1e3 100644 --- a/lifemonitor/api/models/issues/general/experimental.py +++ b/lifemonitor/api/models/issues/general/experimental.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/issues/general/lm.py b/lifemonitor/api/models/issues/general/lm.py index 398e10118..3e219d286 100644 --- a/lifemonitor/api/models/issues/general/lm.py +++ b/lifemonitor/api/models/issues/general/lm.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2021 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/issues/general/metadata.py b/lifemonitor/api/models/issues/general/metadata.py index 05f2b3f75..ab7691a45 100644 --- a/lifemonitor/api/models/issues/general/metadata.py +++ b/lifemonitor/api/models/issues/general/metadata.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/issues/general/repo_layout.py b/lifemonitor/api/models/issues/general/repo_layout.py index d11f04560..98624d045 100644 --- a/lifemonitor/api/models/issues/general/repo_layout.py +++ b/lifemonitor/api/models/issues/general/repo_layout.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/notifications.py b/lifemonitor/api/models/notifications.py index 41bad0a26..900e773f2 100644 --- a/lifemonitor/api/models/notifications.py +++ b/lifemonitor/api/models/notifications.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/registries/__init__.py b/lifemonitor/api/models/registries/__init__.py index e2c15a7ac..24e6a0699 100644 --- a/lifemonitor/api/models/registries/__init__.py +++ b/lifemonitor/api/models/registries/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/registries/forms.py b/lifemonitor/api/models/registries/forms.py index e35840d4f..627110b7b 100644 --- a/lifemonitor/api/models/registries/forms.py +++ b/lifemonitor/api/models/registries/forms.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/registries/registry.py b/lifemonitor/api/models/registries/registry.py index 09992edd3..f5f8ca12e 100644 --- a/lifemonitor/api/models/registries/registry.py +++ b/lifemonitor/api/models/registries/registry.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/registries/seek.py b/lifemonitor/api/models/registries/seek.py index a6be8a440..d36d78291 100644 --- a/lifemonitor/api/models/registries/seek.py +++ b/lifemonitor/api/models/registries/seek.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/registries/settings.py b/lifemonitor/api/models/registries/settings.py index 449004b89..717e3cdf3 100644 --- a/lifemonitor/api/models/registries/settings.py +++ b/lifemonitor/api/models/registries/settings.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/__init__.py b/lifemonitor/api/models/repositories/__init__.py index 083b8e4f7..583144486 100644 --- a/lifemonitor/api/models/repositories/__init__.py +++ b/lifemonitor/api/models/repositories/__init__.py @@ -1,5 +1,5 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/base.py b/lifemonitor/api/models/repositories/base.py index 29648ccfe..45f39105b 100644 --- a/lifemonitor/api/models/repositories/base.py +++ b/lifemonitor/api/models/repositories/base.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/config.py b/lifemonitor/api/models/repositories/config.py index 3feb57833..51fcf375f 100644 --- a/lifemonitor/api/models/repositories/config.py +++ b/lifemonitor/api/models/repositories/config.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/__init__.py b/lifemonitor/api/models/repositories/files/__init__.py index 4bb826d1d..652d853f8 100644 --- a/lifemonitor/api/models/repositories/files/__init__.py +++ b/lifemonitor/api/models/repositories/files/__init__.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. from .base import RepositoryFile from .templates import TemplateRepositoryFile diff --git a/lifemonitor/api/models/repositories/files/base.py b/lifemonitor/api/models/repositories/files/base.py index 44959379b..33ac5ffa2 100644 --- a/lifemonitor/api/models/repositories/files/base.py +++ b/lifemonitor/api/models/repositories/files/base.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/templates.py b/lifemonitor/api/models/repositories/files/templates.py index cda3f029b..e405a45df 100644 --- a/lifemonitor/api/models/repositories/files/templates.py +++ b/lifemonitor/api/models/repositories/files/templates.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/workflows/__init__.py b/lifemonitor/api/models/repositories/files/workflows/__init__.py index ce5876a97..6f761cfc0 100644 --- a/lifemonitor/api/models/repositories/files/workflows/__init__.py +++ b/lifemonitor/api/models/repositories/files/workflows/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/workflows/galaxy.py b/lifemonitor/api/models/repositories/files/workflows/galaxy.py index 7e43867b2..3bcde7eb5 100644 --- a/lifemonitor/api/models/repositories/files/workflows/galaxy.py +++ b/lifemonitor/api/models/repositories/files/workflows/galaxy.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/workflows/jupyter.py b/lifemonitor/api/models/repositories/files/workflows/jupyter.py index 0e92bf2da..fcc1c09cf 100644 --- a/lifemonitor/api/models/repositories/files/workflows/jupyter.py +++ b/lifemonitor/api/models/repositories/files/workflows/jupyter.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/workflows/nextflow.py b/lifemonitor/api/models/repositories/files/workflows/nextflow.py index 7ad8ee6c1..5f83baea3 100644 --- a/lifemonitor/api/models/repositories/files/workflows/nextflow.py +++ b/lifemonitor/api/models/repositories/files/workflows/nextflow.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/workflows/other.py b/lifemonitor/api/models/repositories/files/workflows/other.py index 9a4139dcb..22435a6cb 100644 --- a/lifemonitor/api/models/repositories/files/workflows/other.py +++ b/lifemonitor/api/models/repositories/files/workflows/other.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/files/workflows/snakemake.py b/lifemonitor/api/models/repositories/files/workflows/snakemake.py index 09c7e5462..1f3f3fdff 100644 --- a/lifemonitor/api/models/repositories/files/workflows/snakemake.py +++ b/lifemonitor/api/models/repositories/files/workflows/snakemake.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/github.py b/lifemonitor/api/models/repositories/github.py index 6d88496d1..130a2de0e 100644 --- a/lifemonitor/api/models/repositories/github.py +++ b/lifemonitor/api/models/repositories/github.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/local.py b/lifemonitor/api/models/repositories/local.py index e7595de26..6a8e9d2a5 100644 --- a/lifemonitor/api/models/repositories/local.py +++ b/lifemonitor/api/models/repositories/local.py @@ -1,5 +1,5 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/templates/__init__.py b/lifemonitor/api/models/repositories/templates/__init__.py index 9c12d5a40..345a4297f 100644 --- a/lifemonitor/api/models/repositories/templates/__init__.py +++ b/lifemonitor/api/models/repositories/templates/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/templates/galaxy.py b/lifemonitor/api/models/repositories/templates/galaxy.py index 24286fa16..adfc75817 100644 --- a/lifemonitor/api/models/repositories/templates/galaxy.py +++ b/lifemonitor/api/models/repositories/templates/galaxy.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/templates/nextflow.py b/lifemonitor/api/models/repositories/templates/nextflow.py index 1f28d58de..4550eff80 100644 --- a/lifemonitor/api/models/repositories/templates/nextflow.py +++ b/lifemonitor/api/models/repositories/templates/nextflow.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/repositories/templates/snakemake.py b/lifemonitor/api/models/repositories/templates/snakemake.py index 4a4d04ae3..992a4e662 100644 --- a/lifemonitor/api/models/repositories/templates/snakemake.py +++ b/lifemonitor/api/models/repositories/templates/snakemake.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/rocrate/__init__.py b/lifemonitor/api/models/rocrate/__init__.py index 85b3170e1..f5e4f6666 100644 --- a/lifemonitor/api/models/rocrate/__init__.py +++ b/lifemonitor/api/models/rocrate/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/rocrate/generators.py b/lifemonitor/api/models/rocrate/generators.py index 2f83196b9..1dcd3b4c7 100644 --- a/lifemonitor/api/models/rocrate/generators.py +++ b/lifemonitor/api/models/rocrate/generators.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/services/__init__.py b/lifemonitor/api/models/services/__init__.py index 99d5f973a..94c88922c 100644 --- a/lifemonitor/api/models/services/__init__.py +++ b/lifemonitor/api/models/services/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/services/github.py b/lifemonitor/api/models/services/github.py index 96a2f2830..93331d059 100644 --- a/lifemonitor/api/models/services/github.py +++ b/lifemonitor/api/models/services/github.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/services/jenkins.py b/lifemonitor/api/models/services/jenkins.py index 11285a982..0ca1479ac 100644 --- a/lifemonitor/api/models/services/jenkins.py +++ b/lifemonitor/api/models/services/jenkins.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/services/service.py b/lifemonitor/api/models/services/service.py index 0a84d5a39..99af9811d 100644 --- a/lifemonitor/api/models/services/service.py +++ b/lifemonitor/api/models/services/service.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/services/travis.py b/lifemonitor/api/models/services/travis.py index 28946e2f3..7a593527c 100644 --- a/lifemonitor/api/models/services/travis.py +++ b/lifemonitor/api/models/services/travis.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/status.py b/lifemonitor/api/models/status.py index f401b9055..8b0a9a062 100644 --- a/lifemonitor/api/models/status.py +++ b/lifemonitor/api/models/status.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/testsuites/__init__.py b/lifemonitor/api/models/testsuites/__init__.py index d95632f4c..ea1672ccf 100644 --- a/lifemonitor/api/models/testsuites/__init__.py +++ b/lifemonitor/api/models/testsuites/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/testsuites/testbuild.py b/lifemonitor/api/models/testsuites/testbuild.py index e176f1de0..cb666310d 100644 --- a/lifemonitor/api/models/testsuites/testbuild.py +++ b/lifemonitor/api/models/testsuites/testbuild.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/testsuites/testinstance.py b/lifemonitor/api/models/testsuites/testinstance.py index 990946050..f54741281 100644 --- a/lifemonitor/api/models/testsuites/testinstance.py +++ b/lifemonitor/api/models/testsuites/testinstance.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/testsuites/testsuite.py b/lifemonitor/api/models/testsuites/testsuite.py index 75fb71ebe..a26b79e4c 100644 --- a/lifemonitor/api/models/testsuites/testsuite.py +++ b/lifemonitor/api/models/testsuites/testsuite.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/wizards/__init__.py b/lifemonitor/api/models/wizards/__init__.py index e693f8866..6bccb88e7 100644 --- a/lifemonitor/api/models/wizards/__init__.py +++ b/lifemonitor/api/models/wizards/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/wizards/repository_template.py b/lifemonitor/api/models/wizards/repository_template.py index 277f86879..53a856785 100644 --- a/lifemonitor/api/models/wizards/repository_template.py +++ b/lifemonitor/api/models/wizards/repository_template.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/models/workflows.py b/lifemonitor/api/models/workflows.py index 7b213e22d..a27b189ac 100644 --- a/lifemonitor/api/models/workflows.py +++ b/lifemonitor/api/models/workflows.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/serializers.py b/lifemonitor/api/serializers.py index c7d81ebf5..707f0d4f7 100644 --- a/lifemonitor/api/serializers.py +++ b/lifemonitor/api/serializers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/api/services.py b/lifemonitor/api/services.py index 2f7f71910..3c96094bd 100644 --- a/lifemonitor/api/services.py +++ b/lifemonitor/api/services.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/app.py b/lifemonitor/app.py index c61f10aef..3a150e4aa 100644 --- a/lifemonitor/app.py +++ b/lifemonitor/app.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/__init__.py b/lifemonitor/auth/__init__.py index c6b66cfd1..2153a43c5 100644 --- a/lifemonitor/auth/__init__.py +++ b/lifemonitor/auth/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/controllers.py b/lifemonitor/auth/controllers.py index e1550a82a..ae32861b7 100644 --- a/lifemonitor/auth/controllers.py +++ b/lifemonitor/auth/controllers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/forms.py b/lifemonitor/auth/forms.py index 3a162f247..9a819526f 100644 --- a/lifemonitor/auth/forms.py +++ b/lifemonitor/auth/forms.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/models.py b/lifemonitor/auth/models.py index 4b3016416..ec4283812 100644 --- a/lifemonitor/auth/models.py +++ b/lifemonitor/auth/models.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/__init__.py b/lifemonitor/auth/oauth2/__init__.py index 7ea103902..01e28ce39 100644 --- a/lifemonitor/auth/oauth2/__init__.py +++ b/lifemonitor/auth/oauth2/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/__init__.py b/lifemonitor/auth/oauth2/client/__init__.py index cb774e123..fbadff417 100644 --- a/lifemonitor/auth/oauth2/client/__init__.py +++ b/lifemonitor/auth/oauth2/client/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/controllers.py b/lifemonitor/auth/oauth2/client/controllers.py index 9638f62c1..ad0e37c29 100644 --- a/lifemonitor/auth/oauth2/client/controllers.py +++ b/lifemonitor/auth/oauth2/client/controllers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/models.py b/lifemonitor/auth/oauth2/client/models.py index a53d4f7f2..79b04810b 100644 --- a/lifemonitor/auth/oauth2/client/models.py +++ b/lifemonitor/auth/oauth2/client/models.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/providers/__init__.py b/lifemonitor/auth/oauth2/client/providers/__init__.py index 01dfd13bd..2f4ef8df1 100644 --- a/lifemonitor/auth/oauth2/client/providers/__init__.py +++ b/lifemonitor/auth/oauth2/client/providers/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/providers/github.py b/lifemonitor/auth/oauth2/client/providers/github.py index 450464e6f..483b4ebd7 100644 --- a/lifemonitor/auth/oauth2/client/providers/github.py +++ b/lifemonitor/auth/oauth2/client/providers/github.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/providers/lsaai.py b/lifemonitor/auth/oauth2/client/providers/lsaai.py index 8ca4a01d8..7640ef157 100644 --- a/lifemonitor/auth/oauth2/client/providers/lsaai.py +++ b/lifemonitor/auth/oauth2/client/providers/lsaai.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/providers/seek.py b/lifemonitor/auth/oauth2/client/providers/seek.py index 7aa2143df..a695f1e99 100644 --- a/lifemonitor/auth/oauth2/client/providers/seek.py +++ b/lifemonitor/auth/oauth2/client/providers/seek.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/services.py b/lifemonitor/auth/oauth2/client/services.py index e305ba274..7eaa66aeb 100644 --- a/lifemonitor/auth/oauth2/client/services.py +++ b/lifemonitor/auth/oauth2/client/services.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/client/utils.py b/lifemonitor/auth/oauth2/client/utils.py index d26a63f7e..e6faeed10 100644 --- a/lifemonitor/auth/oauth2/client/utils.py +++ b/lifemonitor/auth/oauth2/client/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/server/__init__.py b/lifemonitor/auth/oauth2/server/__init__.py index 8237a1089..ce344a548 100644 --- a/lifemonitor/auth/oauth2/server/__init__.py +++ b/lifemonitor/auth/oauth2/server/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/server/controllers.py b/lifemonitor/auth/oauth2/server/controllers.py index 70ff9e830..f89d5122b 100644 --- a/lifemonitor/auth/oauth2/server/controllers.py +++ b/lifemonitor/auth/oauth2/server/controllers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/server/forms.py b/lifemonitor/auth/oauth2/server/forms.py index a17bb08cf..5abaa8467 100644 --- a/lifemonitor/auth/oauth2/server/forms.py +++ b/lifemonitor/auth/oauth2/server/forms.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/server/models.py b/lifemonitor/auth/oauth2/server/models.py index 9a4b82cf9..349c29eb4 100644 --- a/lifemonitor/auth/oauth2/server/models.py +++ b/lifemonitor/auth/oauth2/server/models.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/server/services.py b/lifemonitor/auth/oauth2/server/services.py index 49f3dc542..dd9aff633 100644 --- a/lifemonitor/auth/oauth2/server/services.py +++ b/lifemonitor/auth/oauth2/server/services.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/oauth2/server/utils.py b/lifemonitor/auth/oauth2/server/utils.py index a90a620fe..4c6a95cc3 100644 --- a/lifemonitor/auth/oauth2/server/utils.py +++ b/lifemonitor/auth/oauth2/server/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/serializers.py b/lifemonitor/auth/serializers.py index 7e42c7fd4..fc7a06ac1 100644 --- a/lifemonitor/auth/serializers.py +++ b/lifemonitor/auth/serializers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/auth/services.py b/lifemonitor/auth/services.py index acb1f9b10..1a546a7dd 100644 --- a/lifemonitor/auth/services.py +++ b/lifemonitor/auth/services.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/cache.py b/lifemonitor/cache.py index 8be6bf0f6..3c4f33943 100644 --- a/lifemonitor/cache.py +++ b/lifemonitor/cache.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/__init__.py b/lifemonitor/commands/__init__.py index f2b1174dc..d4eba548e 100644 --- a/lifemonitor/commands/__init__.py +++ b/lifemonitor/commands/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/api_key.py b/lifemonitor/commands/api_key.py index e08b258d9..b4b4438ef 100644 --- a/lifemonitor/commands/api_key.py +++ b/lifemonitor/commands/api_key.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/backup.py b/lifemonitor/commands/backup.py index 9acb367ce..1c8190b87 100644 --- a/lifemonitor/commands/backup.py +++ b/lifemonitor/commands/backup.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/cache.py b/lifemonitor/commands/cache.py index 8c59feb7d..5b101cdff 100644 --- a/lifemonitor/commands/cache.py +++ b/lifemonitor/commands/cache.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/db.py b/lifemonitor/commands/db.py index 7bd09bfd0..a5f259791 100644 --- a/lifemonitor/commands/db.py +++ b/lifemonitor/commands/db.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/encrypt.py b/lifemonitor/commands/encrypt.py index 3f7b3f7e2..c20242914 100644 --- a/lifemonitor/commands/encrypt.py +++ b/lifemonitor/commands/encrypt.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/oauth.py b/lifemonitor/commands/oauth.py index a07b4f0ee..cf4d5c181 100644 --- a/lifemonitor/commands/oauth.py +++ b/lifemonitor/commands/oauth.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/registry.py b/lifemonitor/commands/registry.py index 4e177eab1..556444529 100644 --- a/lifemonitor/commands/registry.py +++ b/lifemonitor/commands/registry.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/commands/tasks.py b/lifemonitor/commands/tasks.py index d8ba8921c..dc5b13812 100644 --- a/lifemonitor/commands/tasks.py +++ b/lifemonitor/commands/tasks.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/config.py b/lifemonitor/config.py index 069cf4987..abc18481c 100644 --- a/lifemonitor/config.py +++ b/lifemonitor/config.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/db.py b/lifemonitor/db.py index b9774312c..fd9163d49 100644 --- a/lifemonitor/db.py +++ b/lifemonitor/db.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/errors.py b/lifemonitor/errors.py index 60b9b59fc..f42442a0b 100644 --- a/lifemonitor/errors.py +++ b/lifemonitor/errors.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/exceptions.py b/lifemonitor/exceptions.py index 1a1eef8d8..dfab2f6f9 100644 --- a/lifemonitor/exceptions.py +++ b/lifemonitor/exceptions.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/__init__.py b/lifemonitor/integrations/__init__.py index 3f84aead2..17144648e 100644 --- a/lifemonitor/integrations/__init__.py +++ b/lifemonitor/integrations/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/__init__.py b/lifemonitor/integrations/github/__init__.py index 171903480..f971104ea 100644 --- a/lifemonitor/integrations/github/__init__.py +++ b/lifemonitor/integrations/github/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/app.py b/lifemonitor/integrations/github/app.py index 9b739a578..abfd8c7be 100644 --- a/lifemonitor/integrations/github/app.py +++ b/lifemonitor/integrations/github/app.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/config.py b/lifemonitor/integrations/github/config.py index 099e0ac96..bb1e6468e 100644 --- a/lifemonitor/integrations/github/config.py +++ b/lifemonitor/integrations/github/config.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/controllers.py b/lifemonitor/integrations/github/controllers.py index 3041285a8..874bbf2d7 100644 --- a/lifemonitor/integrations/github/controllers.py +++ b/lifemonitor/integrations/github/controllers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/events.py b/lifemonitor/integrations/github/events.py index 45108daf9..abf8e7940 100644 --- a/lifemonitor/integrations/github/events.py +++ b/lifemonitor/integrations/github/events.py @@ -1,5 +1,5 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/forms.py b/lifemonitor/integrations/github/forms.py index 8f0900a58..08fd9386d 100644 --- a/lifemonitor/integrations/github/forms.py +++ b/lifemonitor/integrations/github/forms.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/issues.py b/lifemonitor/integrations/github/issues.py index 5abc6e7b4..ce5db91f7 100644 --- a/lifemonitor/integrations/github/issues.py +++ b/lifemonitor/integrations/github/issues.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/notifications.py b/lifemonitor/integrations/github/notifications.py index 9854c54cb..f2b3da996 100644 --- a/lifemonitor/integrations/github/notifications.py +++ b/lifemonitor/integrations/github/notifications.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/pull_requests.py b/lifemonitor/integrations/github/pull_requests.py index 204389682..c40668f90 100644 --- a/lifemonitor/integrations/github/pull_requests.py +++ b/lifemonitor/integrations/github/pull_requests.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/registry.py b/lifemonitor/integrations/github/registry.py index 453949bda..274d33e2e 100644 --- a/lifemonitor/integrations/github/registry.py +++ b/lifemonitor/integrations/github/registry.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/services.py b/lifemonitor/integrations/github/services.py index d55334e3d..6a033b227 100644 --- a/lifemonitor/integrations/github/services.py +++ b/lifemonitor/integrations/github/services.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/settings.py b/lifemonitor/integrations/github/settings.py index 30fd326a8..f497308ce 100644 --- a/lifemonitor/integrations/github/settings.py +++ b/lifemonitor/integrations/github/settings.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/utils.py b/lifemonitor/integrations/github/utils.py index 947dc7487..27572abaf 100644 --- a/lifemonitor/integrations/github/utils.py +++ b/lifemonitor/integrations/github/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/integrations/github/wizards.py b/lifemonitor/integrations/github/wizards.py index 5350bd49c..3176c84e6 100644 --- a/lifemonitor/integrations/github/wizards.py +++ b/lifemonitor/integrations/github/wizards.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/lang/messages.py b/lifemonitor/lang/messages.py index 1999ff4e8..f91d3a430 100644 --- a/lifemonitor/lang/messages.py +++ b/lifemonitor/lang/messages.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/mail.py b/lifemonitor/mail.py index 42c6550dc..dd4c464f1 100644 --- a/lifemonitor/mail.py +++ b/lifemonitor/mail.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/metrics/__init__.py b/lifemonitor/metrics/__init__.py index 828f1a8c2..c8ac52a17 100644 --- a/lifemonitor/metrics/__init__.py +++ b/lifemonitor/metrics/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/metrics/controller.py b/lifemonitor/metrics/controller.py index 69fb9c053..7cf3eef93 100644 --- a/lifemonitor/metrics/controller.py +++ b/lifemonitor/metrics/controller.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/metrics/model.py b/lifemonitor/metrics/model.py index 6ac2b07a1..6df5432d1 100644 --- a/lifemonitor/metrics/model.py +++ b/lifemonitor/metrics/model.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/metrics/services.py b/lifemonitor/metrics/services.py index 76f4436a1..07aa799b6 100644 --- a/lifemonitor/metrics/services.py +++ b/lifemonitor/metrics/services.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/metrics/stats.py b/lifemonitor/metrics/stats.py index 4fcdce269..4e351f266 100644 --- a/lifemonitor/metrics/stats.py +++ b/lifemonitor/metrics/stats.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/models.py b/lifemonitor/models.py index 7dd89a014..9a037c52e 100644 --- a/lifemonitor/models.py +++ b/lifemonitor/models.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/redis.py b/lifemonitor/redis.py index 7e1976a16..29e4453b8 100644 --- a/lifemonitor/redis.py +++ b/lifemonitor/redis.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. from flask import Flask from redis import Redis diff --git a/lifemonitor/routes.py b/lifemonitor/routes.py index 8a8d6db74..ea50b7fda 100644 --- a/lifemonitor/routes.py +++ b/lifemonitor/routes.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/schemas/controller.py b/lifemonitor/schemas/controller.py index 54e2ef142..fd4aed14a 100644 --- a/lifemonitor/schemas/controller.py +++ b/lifemonitor/schemas/controller.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import json import logging diff --git a/lifemonitor/schemas/validators.py b/lifemonitor/schemas/validators.py index 3656090fc..0f0160ce6 100644 --- a/lifemonitor/schemas/validators.py +++ b/lifemonitor/schemas/validators.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/serializers.py b/lifemonitor/serializers.py index e5b4d368f..a29215185 100644 --- a/lifemonitor/serializers.py +++ b/lifemonitor/serializers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/storage.py b/lifemonitor/storage.py index 97f3760fb..21f4c49b4 100644 --- a/lifemonitor/storage.py +++ b/lifemonitor/storage.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/tasks/__init__.py b/lifemonitor/tasks/__init__.py index e71db6ce0..6460c89d2 100644 --- a/lifemonitor/tasks/__init__.py +++ b/lifemonitor/tasks/__init__.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. from .config import init_task_queues, init_task_jobs from .scheduler import Scheduler, schedule diff --git a/lifemonitor/tasks/config.py b/lifemonitor/tasks/config.py index 8e04469a5..e70dab38d 100644 --- a/lifemonitor/tasks/config.py +++ b/lifemonitor/tasks/config.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import atexit import logging diff --git a/lifemonitor/tasks/controller.py b/lifemonitor/tasks/controller.py index 2397cbba9..c5325fb4d 100644 --- a/lifemonitor/tasks/controller.py +++ b/lifemonitor/tasks/controller.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/tasks/jobs/__init__.py b/lifemonitor/tasks/jobs/__init__.py index 561ab69c6..6512f01c0 100644 --- a/lifemonitor/tasks/jobs/__init__.py +++ b/lifemonitor/tasks/jobs/__init__.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + import logging import os from typing import List diff --git a/lifemonitor/tasks/jobs/builds.py b/lifemonitor/tasks/jobs/builds.py index daf61ee8b..31de977c7 100644 --- a/lifemonitor/tasks/jobs/builds.py +++ b/lifemonitor/tasks/jobs/builds.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import datetime import logging diff --git a/lifemonitor/tasks/jobs/github.py b/lifemonitor/tasks/jobs/github.py index 34e840204..b3b596329 100644 --- a/lifemonitor/tasks/jobs/github.py +++ b/lifemonitor/tasks/jobs/github.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import logging diff --git a/lifemonitor/tasks/jobs/heartbeat.py b/lifemonitor/tasks/jobs/heartbeat.py index fc4454462..2b478ca2e 100644 --- a/lifemonitor/tasks/jobs/heartbeat.py +++ b/lifemonitor/tasks/jobs/heartbeat.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import logging diff --git a/lifemonitor/tasks/jobs/metrics.py b/lifemonitor/tasks/jobs/metrics.py index 78b5d6bbf..38e616028 100644 --- a/lifemonitor/tasks/jobs/metrics.py +++ b/lifemonitor/tasks/jobs/metrics.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import logging diff --git a/lifemonitor/tasks/jobs/notifications.py b/lifemonitor/tasks/jobs/notifications.py index fc2479d09..e12c0fa93 100644 --- a/lifemonitor/tasks/jobs/notifications.py +++ b/lifemonitor/tasks/jobs/notifications.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import datetime import logging diff --git a/lifemonitor/tasks/jobs/storage.py b/lifemonitor/tasks/jobs/storage.py index fd380093a..4f5ff17d5 100644 --- a/lifemonitor/tasks/jobs/storage.py +++ b/lifemonitor/tasks/jobs/storage.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import logging diff --git a/lifemonitor/tasks/jobs/workflows.py b/lifemonitor/tasks/jobs/workflows.py index cadffac64..26d210ad9 100644 --- a/lifemonitor/tasks/jobs/workflows.py +++ b/lifemonitor/tasks/jobs/workflows.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import logging import time diff --git a/lifemonitor/tasks/models.py b/lifemonitor/tasks/models.py index c8b361178..68c7d5e53 100644 --- a/lifemonitor/tasks/models.py +++ b/lifemonitor/tasks/models.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + from __future__ import annotations import logging diff --git a/lifemonitor/tasks/scheduler.py b/lifemonitor/tasks/scheduler.py index e986b538a..dde92cd2f 100644 --- a/lifemonitor/tasks/scheduler.py +++ b/lifemonitor/tasks/scheduler.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + import datetime import logging from typing import Dict diff --git a/lifemonitor/tasks/utils.py b/lifemonitor/tasks/utils.py index 96cda3a49..15aedaf4f 100644 --- a/lifemonitor/tasks/utils.py +++ b/lifemonitor/tasks/utils.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + import json import logging diff --git a/lifemonitor/tasks/worker.py b/lifemonitor/tasks/worker.py index 8888c20ca..0cba6d4a4 100644 --- a/lifemonitor/tasks/worker.py +++ b/lifemonitor/tasks/worker.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import logging diff --git a/lifemonitor/templates/repositories/snakemake/workflow/scripts/hello.py b/lifemonitor/templates/repositories/snakemake/workflow/scripts/hello.py index 6281ee5df..4c0e3c902 100644 --- a/lifemonitor/templates/repositories/snakemake/workflow/scripts/hello.py +++ b/lifemonitor/templates/repositories/snakemake/workflow/scripts/hello.py @@ -1,3 +1,23 @@ #!/bin/python3 +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + print("Hello, world") diff --git a/lifemonitor/test_metadata.py b/lifemonitor/test_metadata.py index 3aaecfd25..322d10686 100644 --- a/lifemonitor/test_metadata.py +++ b/lifemonitor/test_metadata.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/utils.py b/lifemonitor/utils.py index 60e1baaa8..c354c164d 100644 --- a/lifemonitor/utils.py +++ b/lifemonitor/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/wfhub.py b/lifemonitor/wfhub.py index 3512aeb11..8a6f17bf3 100644 --- a/lifemonitor/wfhub.py +++ b/lifemonitor/wfhub.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/ws/__init__.py b/lifemonitor/ws/__init__.py index 153adf413..6618a789e 100644 --- a/lifemonitor/ws/__init__.py +++ b/lifemonitor/ws/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/ws/config.py b/lifemonitor/ws/config.py index 3ac15ff7b..bdab1e81e 100644 --- a/lifemonitor/ws/config.py +++ b/lifemonitor/ws/config.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/ws/events.py b/lifemonitor/ws/events.py index b4327b5ff..6406362e2 100644 --- a/lifemonitor/ws/events.py +++ b/lifemonitor/ws/events.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/lifemonitor/ws/io.py b/lifemonitor/ws/io.py index 3785148ea..fa323633e 100644 --- a/lifemonitor/ws/io.py +++ b/lifemonitor/ws/io.py @@ -1,3 +1,22 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import datetime import json diff --git a/lifemonitor/ws/socket.py b/lifemonitor/ws/socket.py index cd35c4ecd..ed43950b1 100644 --- a/lifemonitor/ws/socket.py +++ b/lifemonitor/ws/socket.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/migrations/env.py b/migrations/env.py index 68feded2a..531ba636e 100644 --- a/migrations/env.py +++ b/migrations/env.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + from __future__ import with_statement import logging diff --git a/migrations/versions/01684f92a380_subscription_collection.py b/migrations/versions/01684f92a380_subscription_collection.py index 37d3b0581..06634aadc 100644 --- a/migrations/versions/01684f92a380_subscription_collection.py +++ b/migrations/versions/01684f92a380_subscription_collection.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Subscription collection Revision ID: 01684f92a380 diff --git a/migrations/versions/24c34681f538_add_list_of_events_to_the_subscription_.py b/migrations/versions/24c34681f538_add_list_of_events_to_the_subscription_.py index 4d091cf15..41e22bc6b 100644 --- a/migrations/versions/24c34681f538_add_list_of_events_to_the_subscription_.py +++ b/migrations/versions/24c34681f538_add_list_of_events_to_the_subscription_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add list of events to the subscription model Revision ID: 24c34681f538 diff --git a/migrations/versions/296634f13bc4_automatically_register_submitter_.py b/migrations/versions/296634f13bc4_automatically_register_submitter_.py index b085e5ede..24f13d31e 100644 --- a/migrations/versions/296634f13bc4_automatically_register_submitter_.py +++ b/migrations/versions/296634f13bc4_automatically_register_submitter_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Automatically register submitter subscription to workflows Revision ID: 296634f13bc4 diff --git a/migrations/versions/505e4e6976de_add_uuid_property_to_notification_model.py b/migrations/versions/505e4e6976de_add_uuid_property_to_notification_model.py index 7122b57b5..f7bed13f4 100644 --- a/migrations/versions/505e4e6976de_add_uuid_property_to_notification_model.py +++ b/migrations/versions/505e4e6976de_add_uuid_property_to_notification_model.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add uuid property to notification model Revision ID: 505e4e6976de diff --git a/migrations/versions/52561c782d96_add_uri_on_identity_provider.py b/migrations/versions/52561c782d96_add_uri_on_identity_provider.py index f90719210..e11ef3ddf 100644 --- a/migrations/versions/52561c782d96_add_uri_on_identity_provider.py +++ b/migrations/versions/52561c782d96_add_uri_on_identity_provider.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add uri on identity provider Revision ID: 52561c782d96 diff --git a/migrations/versions/6086cb72f9e1_enable_workflow_visibility.py b/migrations/versions/6086cb72f9e1_enable_workflow_visibility.py index 1341c2185..3841f5ac1 100644 --- a/migrations/versions/6086cb72f9e1_enable_workflow_visibility.py +++ b/migrations/versions/6086cb72f9e1_enable_workflow_visibility.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Enable workflow visibility Revision ID: 6086cb72f9e1 diff --git a/migrations/versions/64564b96c9db_multiple_registries_per_workflow_version.py b/migrations/versions/64564b96c9db_multiple_registries_per_workflow_version.py index 0affc6ee8..fd21bb46a 100644 --- a/migrations/versions/64564b96c9db_multiple_registries_per_workflow_version.py +++ b/migrations/versions/64564b96c9db_multiple_registries_per_workflow_version.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Multiple registries per workflow version Revision ID: 64564b96c9db diff --git a/migrations/versions/6bb84f8b8c77_track_sync_of_builds.py b/migrations/versions/6bb84f8b8c77_track_sync_of_builds.py index 2f6014cd6..21cffdd09 100644 --- a/migrations/versions/6bb84f8b8c77_track_sync_of_builds.py +++ b/migrations/versions/6bb84f8b8c77_track_sync_of_builds.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Track sync of builds Revision ID: 6bb84f8b8c77 diff --git a/migrations/versions/770508273f01_add_client_name_property_on_.py b/migrations/versions/770508273f01_add_client_name_property_on_.py index 0a76158f1..ae6fdcd26 100644 --- a/migrations/versions/770508273f01_add_client_name_property_on_.py +++ b/migrations/versions/770508273f01_add_client_name_property_on_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add client_name property on OAuth2Provider Revision ID: 770508273f01 diff --git a/migrations/versions/7aa503323413_fix_links_of_seek_ro_crates.py b/migrations/versions/7aa503323413_fix_links_of_seek_ro_crates.py index 454e6b93b..2169f397d 100644 --- a/migrations/versions/7aa503323413_fix_links_of_seek_ro_crates.py +++ b/migrations/versions/7aa503323413_fix_links_of_seek_ro_crates.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Fix links of Seek RO-Crates Revision ID: 7aa503323413 diff --git a/migrations/versions/7e9e009f4dbb_allow_to_differentiate_notifications_by_.py b/migrations/versions/7e9e009f4dbb_allow_to_differentiate_notifications_by_.py index a20e3e79a..87537e1b4 100644 --- a/migrations/versions/7e9e009f4dbb_allow_to_differentiate_notifications_by_.py +++ b/migrations/versions/7e9e009f4dbb_allow_to_differentiate_notifications_by_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Allow to differentiate notifications by type Revision ID: 7e9e009f4dbb diff --git a/migrations/versions/861eca55901d_fix_workflows_with_no_name.py b/migrations/versions/861eca55901d_fix_workflows_with_no_name.py index 6319fd8fd..1a86b9c70 100644 --- a/migrations/versions/861eca55901d_fix_workflows_with_no_name.py +++ b/migrations/versions/861eca55901d_fix_workflows_with_no_name.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Fix workflows with no name Revision ID: 861eca55901d diff --git a/migrations/versions/8b2e530dc029_initial_revision.py b/migrations/versions/8b2e530dc029_initial_revision.py index 85c3e93e5..23d10506b 100644 --- a/migrations/versions/8b2e530dc029_initial_revision.py +++ b/migrations/versions/8b2e530dc029_initial_revision.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Initial revision Revision ID: 8b2e530dc029 diff --git a/migrations/versions/94fa885a5808_allow_to_register_multiple_tokens_for_.py b/migrations/versions/94fa885a5808_allow_to_register_multiple_tokens_for_.py index d5f19682b..9f0f5462c 100644 --- a/migrations/versions/94fa885a5808_allow_to_register_multiple_tokens_for_.py +++ b/migrations/versions/94fa885a5808_allow_to_register_multiple_tokens_for_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Allow to register multiple tokens for each oauth identity Revision ID: 94fa885a5808 diff --git a/migrations/versions/97e77a9c44b2_add_user_notification_model.py b/migrations/versions/97e77a9c44b2_add_user_notification_model.py index 51ebf5790..2a5130b98 100644 --- a/migrations/versions/97e77a9c44b2_add_user_notification_model.py +++ b/migrations/versions/97e77a9c44b2_add_user_notification_model.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add user notification model Revision ID: 97e77a9c44b2 diff --git a/migrations/versions/a46c90bedbbf_change_notification_type_str_to_.py b/migrations/versions/a46c90bedbbf_change_notification_type_str_to_.py index 00c4e0e97..ed2dd3a02 100644 --- a/migrations/versions/a46c90bedbbf_change_notification_type_str_to_.py +++ b/migrations/versions/a46c90bedbbf_change_notification_type_str_to_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Change Notification.type::str to Notification.event::EventType Revision ID: a46c90bedbbf diff --git a/migrations/versions/b7ea9787d017_move_oauth2_credentials_to_.py b/migrations/versions/b7ea9787d017_move_oauth2_credentials_to_.py index 079440293..00c204f3b 100644 --- a/migrations/versions/b7ea9787d017_move_oauth2_credentials_to_.py +++ b/migrations/versions/b7ea9787d017_move_oauth2_credentials_to_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Move oauth2 credentials to HostingService model Revision ID: b7ea9787d017 diff --git a/migrations/versions/bb0a4c003e28_add_githubworkflowregistry.py b/migrations/versions/bb0a4c003e28_add_githubworkflowregistry.py index b08857cab..51ef2885d 100644 --- a/migrations/versions/bb0a4c003e28_add_githubworkflowregistry.py +++ b/migrations/versions/bb0a4c003e28_add_githubworkflowregistry.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add GithubWorkflowRegistry Revision ID: bb0a4c003e28 diff --git a/migrations/versions/bbe1397dc8a9_hosting_service.py b/migrations/versions/bbe1397dc8a9_hosting_service.py index 19289a75c..682dae743 100644 --- a/migrations/versions/bbe1397dc8a9_hosting_service.py +++ b/migrations/versions/bbe1397dc8a9_hosting_service.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Hosting Service Revision ID: bbe1397dc8a9 diff --git a/migrations/versions/cdf9f34b764c_add_explicit_registry_reference_to_.py b/migrations/versions/cdf9f34b764c_add_explicit_registry_reference_to_.py index 511bd5b41..2cebb4012 100644 --- a/migrations/versions/cdf9f34b764c_add_explicit_registry_reference_to_.py +++ b/migrations/versions/cdf9f34b764c_add_explicit_registry_reference_to_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add explicit registry reference to WorkflowVersion model Revision ID: cdf9f34b764c diff --git a/migrations/versions/d1387a6fe551_add_name_index_on_notification_model.py b/migrations/versions/d1387a6fe551_add_name_index_on_notification_model.py index 7629c681d..132d8b81f 100644 --- a/migrations/versions/d1387a6fe551_add_name_index_on_notification_model.py +++ b/migrations/versions/d1387a6fe551_add_name_index_on_notification_model.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add name index on notification model Revision ID: d1387a6fe551 diff --git a/migrations/versions/d5da43a38a6a_add_flag_to_enable_disable_mail_.py b/migrations/versions/d5da43a38a6a_add_flag_to_enable_disable_mail_.py index 9004634a4..e5dea73a7 100644 --- a/migrations/versions/d5da43a38a6a_add_flag_to_enable_disable_mail_.py +++ b/migrations/versions/d5da43a38a6a_add_flag_to_enable_disable_mail_.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add flag to enable/disable mail notifications Revision ID: d5da43a38a6a diff --git a/migrations/versions/f4cbfe20075f_ro_crate_local_path.py b/migrations/versions/f4cbfe20075f_ro_crate_local_path.py index 30e06e1f4..3e193f2f0 100644 --- a/migrations/versions/f4cbfe20075f_ro_crate_local_path.py +++ b/migrations/versions/f4cbfe20075f_ro_crate_local_path.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """RO-Crate local path Revision ID: f4cbfe20075f diff --git a/migrations/versions/fc06761a2da4_add_settings_property_to_user_model.py b/migrations/versions/fc06761a2da4_add_settings_property_to_user_model.py index 6f48c86ca..5ddb18c12 100644 --- a/migrations/versions/fc06761a2da4_add_settings_property_to_user_model.py +++ b/migrations/versions/fc06761a2da4_add_settings_property_to_user_model.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + """Add settings property to user model Revision ID: fc06761a2da4 diff --git a/tests/__init__.py b/tests/__init__.py index 919a74cc8..ab2a36389 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/cli/test_registry.py b/tests/cli/test_registry.py index 664b14489..f73a8f674 100644 --- a/tests/cli/test_registry.py +++ b/tests/cli/test_registry.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/config/data/make-test-rocrates.py b/tests/config/data/make-test-rocrates.py index dd38eba8a..a00eef68f 100644 --- a/tests/config/data/make-test-rocrates.py +++ b/tests/config/data/make-test-rocrates.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/config/web/app.py b/tests/config/web/app.py index 199d01499..e83431269 100644 --- a/tests/config/web/app.py +++ b/tests/config/web/app.py @@ -1,3 +1,23 @@ +# Copyright (c) 2020-2024 CRS4 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + import logging import os diff --git a/tests/conftest.py b/tests/conftest.py index be7e8c8d7..7fdda33b6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/conftest_helpers.py b/tests/conftest_helpers.py index 3d31ba9af..566cf4d0a 100644 --- a/tests/conftest_helpers.py +++ b/tests/conftest_helpers.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/conftest_types.py b/tests/conftest_types.py index 176f3259c..b5995e49e 100644 --- a/tests/conftest_types.py +++ b/tests/conftest_types.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/controllers/__init__.py b/tests/integration/api/controllers/__init__.py index 919a74cc8..ab2a36389 100644 --- a/tests/integration/api/controllers/__init__.py +++ b/tests/integration/api/controllers/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/controllers/test_instances.py b/tests/integration/api/controllers/test_instances.py index 2ea6f407a..a36a60f66 100644 --- a/tests/integration/api/controllers/test_instances.py +++ b/tests/integration/api/controllers/test_instances.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/controllers/test_registries.py b/tests/integration/api/controllers/test_registries.py index ce5993dc9..002abb01d 100644 --- a/tests/integration/api/controllers/test_registries.py +++ b/tests/integration/api/controllers/test_registries.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/controllers/test_suites.py b/tests/integration/api/controllers/test_suites.py index b1c28c3ba..c58a293ff 100644 --- a/tests/integration/api/controllers/test_suites.py +++ b/tests/integration/api/controllers/test_suites.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/controllers/test_user_subscriptions.py b/tests/integration/api/controllers/test_user_subscriptions.py index 8bcb28d2a..3378a2ac1 100644 --- a/tests/integration/api/controllers/test_user_subscriptions.py +++ b/tests/integration/api/controllers/test_user_subscriptions.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/controllers/test_users.py b/tests/integration/api/controllers/test_users.py index 0345fdb18..ecf322eff 100644 --- a/tests/integration/api/controllers/test_users.py +++ b/tests/integration/api/controllers/test_users.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/controllers/test_workflows.py b/tests/integration/api/controllers/test_workflows.py index fa2cb10b7..751fcee9a 100644 --- a/tests/integration/api/controllers/test_workflows.py +++ b/tests/integration/api/controllers/test_workflows.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/services/test_github_service.py b/tests/integration/api/services/test_github_service.py index e1e89d1d3..88c20cbcf 100644 --- a/tests/integration/api/services/test_github_service.py +++ b/tests/integration/api/services/test_github_service.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/services/test_services.py b/tests/integration/api/services/test_services.py index 045730f9b..73b1875cb 100644 --- a/tests/integration/api/services/test_services.py +++ b/tests/integration/api/services/test_services.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/services/test_workflow_registry.py b/tests/integration/api/services/test_workflow_registry.py index 6ecb5686e..2c378c7e0 100644 --- a/tests/integration/api/services/test_workflow_registry.py +++ b/tests/integration/api/services/test_workflow_registry.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/integration/api/services/test_workflow_subscriptions.py b/tests/integration/api/services/test_workflow_subscriptions.py index 288c454f2..d499ffdb6 100644 --- a/tests/integration/api/services/test_workflow_subscriptions.py +++ b/tests/integration/api/services/test_workflow_subscriptions.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/rate_limit_exceeded.py b/tests/rate_limit_exceeded.py index 0c352db86..46b3b0079 100644 --- a/tests/rate_limit_exceeded.py +++ b/tests/rate_limit_exceeded.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/test_config.py b/tests/test_config.py index 7ffff7492..f5691ed49 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/test_db.py b/tests/test_db.py index f999ead57..4020eaa89 100644 --- a/tests/test_db.py +++ b/tests/test_db.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/test_users.py b/tests/test_users.py index eb75384c2..60b8a480f 100644 --- a/tests/test_users.py +++ b/tests/test_users.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/controllers/test_instances.py b/tests/unit/api/controllers/test_instances.py index 082371aa4..a12a1a5d3 100644 --- a/tests/unit/api/controllers/test_instances.py +++ b/tests/unit/api/controllers/test_instances.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/controllers/test_suites.py b/tests/unit/api/controllers/test_suites.py index 2e25ed853..cd034aaca 100644 --- a/tests/unit/api/controllers/test_suites.py +++ b/tests/unit/api/controllers/test_suites.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/controllers/test_workflows.py b/tests/unit/api/controllers/test_workflows.py index ede42d790..4a3974776 100644 --- a/tests/unit/api/controllers/test_workflows.py +++ b/tests/unit/api/controllers/test_workflows.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/repositories/files/test_repository_file.py b/tests/unit/api/models/repositories/files/test_repository_file.py index 8840fd763..8a85a6a7e 100644 --- a/tests/unit/api/models/repositories/files/test_repository_file.py +++ b/tests/unit/api/models/repositories/files/test_repository_file.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/repositories/test_config.py b/tests/unit/api/models/repositories/test_config.py index d1dfdd8cc..ec7e242fc 100644 --- a/tests/unit/api/models/repositories/test_config.py +++ b/tests/unit/api/models/repositories/test_config.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/repositories/test_github_repos.py b/tests/unit/api/models/repositories/test_github_repos.py index d8cf5c707..dcbca85ba 100644 --- a/tests/unit/api/models/repositories/test_github_repos.py +++ b/tests/unit/api/models/repositories/test_github_repos.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/repositories/test_local_repos.py b/tests/unit/api/models/repositories/test_local_repos.py index 5cdec5353..3278f2dff 100644 --- a/tests/unit/api/models/repositories/test_local_repos.py +++ b/tests/unit/api/models/repositories/test_local_repos.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/repositories/test_repo_templates.py b/tests/unit/api/models/repositories/test_repo_templates.py index 90d261733..3805c6d22 100644 --- a/tests/unit/api/models/repositories/test_repo_templates.py +++ b/tests/unit/api/models/repositories/test_repo_templates.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/test_github.py b/tests/unit/api/models/test_github.py index 3647e6976..de5e41ccb 100644 --- a/tests/unit/api/models/test_github.py +++ b/tests/unit/api/models/test_github.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/test_jenkins.py b/tests/unit/api/models/test_jenkins.py index 0f9ac5fb8..c0d392e29 100644 --- a/tests/unit/api/models/test_jenkins.py +++ b/tests/unit/api/models/test_jenkins.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/test_subscriptions.py b/tests/unit/api/models/test_subscriptions.py index 3f724f996..0d4bb903a 100644 --- a/tests/unit/api/models/test_subscriptions.py +++ b/tests/unit/api/models/test_subscriptions.py @@ -1,5 +1,5 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/test_travis.py b/tests/unit/api/models/test_travis.py index b59368bae..a26afde3d 100644 --- a/tests/unit/api/models/test_travis.py +++ b/tests/unit/api/models/test_travis.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/test_workflow_status.py b/tests/unit/api/models/test_workflow_status.py index 779494f8d..219134c6a 100644 --- a/tests/unit/api/models/test_workflow_status.py +++ b/tests/unit/api/models/test_workflow_status.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/api/models/test_workflow_types.py b/tests/unit/api/models/test_workflow_types.py index 1d6942304..ad03c10e1 100644 --- a/tests/unit/api/models/test_workflow_types.py +++ b/tests/unit/api/models/test_workflow_types.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/auth/models/test_tokens.py b/tests/unit/auth/models/test_tokens.py index fddedcd49..ffbbbfa8f 100644 --- a/tests/unit/auth/models/test_tokens.py +++ b/tests/unit/auth/models/test_tokens.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/auth/models/test_users.py b/tests/unit/auth/models/test_users.py index 9c597e550..793a23099 100644 --- a/tests/unit/auth/models/test_users.py +++ b/tests/unit/auth/models/test_users.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/auth/services/test_authorized.py b/tests/unit/auth/services/test_authorized.py index bc787a666..9e1a0d138 100644 --- a/tests/unit/auth/services/test_authorized.py +++ b/tests/unit/auth/services/test_authorized.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/cache/test_cache.py b/tests/unit/cache/test_cache.py index 64279b147..c98d12db1 100644 --- a/tests/unit/cache/test_cache.py +++ b/tests/unit/cache/test_cache.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/issues/test_missing_lm_config_file.py b/tests/unit/issues/test_missing_lm_config_file.py index 0fa36c159..ad2d73e38 100644 --- a/tests/unit/issues/test_missing_lm_config_file.py +++ b/tests/unit/issues/test_missing_lm_config_file.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/issues/test_missing_workflow.py b/tests/unit/issues/test_missing_workflow.py index 2d63bb011..18f52def0 100644 --- a/tests/unit/issues/test_missing_workflow.py +++ b/tests/unit/issues/test_missing_workflow.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/issues/test_rocrate_metadata.py b/tests/unit/issues/test_rocrate_metadata.py index f31dd0903..a5ac686b2 100644 --- a/tests/unit/issues/test_rocrate_metadata.py +++ b/tests/unit/issues/test_rocrate_metadata.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/schemas/test_lm_schema_validator.py b/tests/unit/schemas/test_lm_schema_validator.py index 120735d8f..704f44bb2 100644 --- a/tests/unit/schemas/test_lm_schema_validator.py +++ b/tests/unit/schemas/test_lm_schema_validator.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/tasks/test_notifications.py b/tests/unit/tasks/test_notifications.py index 2be8046bb..ae69cfaa9 100644 --- a/tests/unit/tasks/test_notifications.py +++ b/tests/unit/tasks/test_notifications.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/test_read_crate.py b/tests/unit/test_read_crate.py index e12d01997..b4367ff85 100644 --- a/tests/unit/test_read_crate.py +++ b/tests/unit/test_read_crate.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/test_storage.py b/tests/unit/test_storage.py index 58faf10c5..c3e8cbf3f 100644 --- a/tests/unit/test_storage.py +++ b/tests/unit/test_storage.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 4b0aec9ed..f9bfbf957 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/utils.py b/tests/utils.py index 8ee66fda2..f6f13997c 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/ws.py b/ws.py index 0561f4504..9ca6ddcc0 100644 --- a/ws.py +++ b/ws.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022 CRS4 +# Copyright (c) 2020-2024 CRS4 # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal From 7359597b7ad40be50725fe0ad21aded00159935f Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Wed, 10 Jan 2024 11:34:28 +0100 Subject: [PATCH 10/21] fix(ctrl): properly detect identity provider --- lifemonitor/auth/controllers.py | 2 +- lifemonitor/auth/oauth2/client/models.py | 2 +- lifemonitor/auth/oauth2/client/providers/__init__.py | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lifemonitor/auth/controllers.py b/lifemonitor/auth/controllers.py index 37ddaf6f6..dcaf061c3 100644 --- a/lifemonitor/auth/controllers.py +++ b/lifemonitor/auth/controllers.py @@ -197,7 +197,7 @@ def profile(form=None, passwordForm=None, currentView=None, logger.debug("Current user: %r", current_user) user_identities = [{ "name": p.name, - "identity": current_user.oauth_identity.get(p.name, None) + "identity": current_user.oauth_identity.get(p.client_name, None) if current_user and current_user.is_authenticated else None, "provider": p } for p in OAuth2IdentityProvider.all() diff --git a/lifemonitor/auth/oauth2/client/models.py b/lifemonitor/auth/oauth2/client/models.py index db08a1a5b..bf42901c0 100644 --- a/lifemonitor/auth/oauth2/client/models.py +++ b/lifemonitor/auth/oauth2/client/models.py @@ -455,7 +455,7 @@ def get_user_info(self, provider_user_id, token, normalized=True): @property def _provider_config_helper(self): - return provider_config_helper_new_instance(self.name) + return provider_config_helper_new_instance(self.client_name) def get_user_profile_page(self, user_identity: OAuthIdentity) -> str: try: diff --git a/lifemonitor/auth/oauth2/client/providers/__init__.py b/lifemonitor/auth/oauth2/client/providers/__init__.py index a6b603e46..ee4443695 100644 --- a/lifemonitor/auth/oauth2/client/providers/__init__.py +++ b/lifemonitor/auth/oauth2/client/providers/__init__.py @@ -53,14 +53,16 @@ def decorated_view(*args, **kwargs): return decorated_view +def __find_module_attribute__(m, attribute_name: str): + attribute_map = {k.lower(): k for k in dir(m) if not k.startswith('__')} + return attribute_map[attribute_name.lower()] + + def new_instance(provider_type, **kwargs): m = f"lifemonitor.auth.oauth2.client.providers.{provider_type.lower()}" try: mod = import_module(m) - provider_type_name = provider_type.capitalize() - # override Github identifier - if provider_type_name == 'Github': - provider_type_name = 'GitHub' + provider_type_name = __find_module_attribute__(mod, provider_type) return getattr(mod, provider_type_name)(**kwargs) except (ModuleNotFoundError, AttributeError) as e: logger.exception(e) From 8266dae635897248b8a15ec264f21ce978885a9d Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Wed, 10 Jan 2024 11:53:37 +0100 Subject: [PATCH 11/21] chore(view): update link description --- lifemonitor/auth/templates/auth/account_tab.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 7b3853569..689a18c5a 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -33,7 +33,7 @@ {% endif %} From 4696c5acc2648ddd9599287923a7ac6da93d89dc Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Wed, 10 Jan 2024 15:51:29 +0100 Subject: [PATCH 12/21] fix(model): return html page from seek provider --- lifemonitor/auth/oauth2/client/providers/seek.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lifemonitor/auth/oauth2/client/providers/seek.py b/lifemonitor/auth/oauth2/client/providers/seek.py index 221f5771e..c14362186 100644 --- a/lifemonitor/auth/oauth2/client/providers/seek.py +++ b/lifemonitor/auth/oauth2/client/providers/seek.py @@ -77,12 +77,14 @@ def normalize_userinfo(client, data): } return params - def get_user_profile_html(self, provider_user_id) -> str: + def __get_user_profile__(self, provider_user_id, json_format: bool = False) -> str: + format_opt = '?format=json' if json_format else '' return urljoin(self.api_base_url, - f'/people/{provider_user_id}?format=json') + f'/people/{provider_user_id}{format_opt}') def get_user_info(self, provider_user_id, token, normalized=True): - response = requests.get(self.get_user_profile_html(provider_user_id), + response = requests.get(self.__get_user_profile__(provider_user_id, + json_format=True), headers={'Authorization': f'Bearer {token["access_token"]}'}) if response.status_code != 200: try: @@ -105,7 +107,7 @@ def get_user_profile_page(cls, user_identity: OAuthIdentity): logger.warning("No identity found for user %r", user_identity) return None assert isinstance(user_identity.provider, cls), "Invalid provider" - return user_identity.provider.get_user_profile_html(user_identity.provider_user_id) + return user_identity.provider.__get_user_profile__(user_identity.provider_user_id) def refresh_oauth2_token(func): From 1a92cf7f2d2e2ff15436d3b33539f651a7358bba Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Wed, 10 Jan 2024 16:56:44 +0100 Subject: [PATCH 13/21] chore(view): update link description --- lifemonitor/auth/templates/auth/account_tab.j2 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 689a18c5a..41f843914 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -33,7 +33,9 @@ {% endif %} From 5a5ab7f6559d1682f7a858bbb4592dff1368e3c0 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Wed, 10 Jan 2024 17:07:37 +0100 Subject: [PATCH 14/21] fix(view): update style of userID column --- .../auth/templates/auth/account_tab.j2 | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 41f843914..01a40627c 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -12,30 +12,30 @@ - - - - + + + + {% for user_identity in user_identities %} - - -
ProviderUser IDProviderUser ID
+ {{ macros.render_provider_fa_icon(user_identity.provider, color="black") }} + {{user_identity.provider.name}} + {% if user_identity.identity %} +
{{ user_identity.identity.provider_user_id }} -
- + {% endif %} From 9484082598b7bc6a8fbbc88f5909f5fd940c9dec Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 11 Jan 2024 10:38:37 +0100 Subject: [PATCH 15/21] fix(style): nav menu alignment on sm devices --- lifemonitor/auth/templates/auth/profile.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lifemonitor/auth/templates/auth/profile.j2 b/lifemonitor/auth/templates/auth/profile.j2 index 34da6724a..41a646414 100644 --- a/lifemonitor/auth/templates/auth/profile.j2 +++ b/lifemonitor/auth/templates/auth/profile.j2 @@ -40,7 +40,7 @@
-
-
- - - - - - - - - - - {% for user_identity in user_identities %} - - - - - {% if user_identity.identity %} - - {% else %} - - {% endif %} - - {% endfor %} - +
ProviderUser ID
- {{ macros.render_provider_fa_icon(user_identity.provider, color="black") }} - - {{user_identity.provider.name}} - - {% if user_identity.identity %} -
- {{ user_identity.identity.provider_user_id }} -
- - {% endif %} -
- {% if current_user.oauth_identity|length > 1 or current_user.has_password %} - - CONNECTED - - - {% else %} - CONNECTED - {% endif %} - - - - CONNECT - - -
From e03ea856b58afac59edd364eb50bb2dcc521f9dc Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 11 Jan 2024 11:58:40 +0100 Subject: [PATCH 17/21] style: enable table hover effect on accounts table --- lifemonitor/auth/templates/auth/account_tab.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 3a64a4529..02b614886 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -9,6 +9,7 @@
+
From 97576a350275f974fa2c4756ec9fa19ef55a1c0e Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 11 Jan 2024 12:00:33 +0100 Subject: [PATCH 18/21] style: increase margin-top for external profile link --- lifemonitor/auth/templates/auth/account_tab.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 02b614886..843fc0b1a 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -10,6 +10,7 @@
+
From 91da16d945e8b3dfc9e576fabbabbe960ffa3828 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 11 Jan 2024 12:06:58 +0100 Subject: [PATCH 19/21] fix: always show anchor link for connected accounts. Even if the account cannot be disconnected, the link should still be displayed, perhaps in an inactive state. --- lifemonitor/auth/templates/auth/account_tab.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 843fc0b1a..3752c6701 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -11,6 +11,7 @@
+
From 753596c95df915a0c3b2565b0ec5b1099e75159b Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 11 Jan 2024 12:14:17 +0100 Subject: [PATCH 20/21] style: reformat table of external accounts --- .../auth/templates/auth/account_tab.j2 | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/lifemonitor/auth/templates/auth/account_tab.j2 b/lifemonitor/auth/templates/auth/account_tab.j2 index 3752c6701..2cd4daec9 100644 --- a/lifemonitor/auth/templates/auth/account_tab.j2 +++ b/lifemonitor/auth/templates/auth/account_tab.j2 @@ -10,8 +10,60 @@
+ + + + + + + + + + {% for user_identity in user_identities %} + + + + + + + {% endfor %} +
ProviderUser ID
+ {{ macros.render_provider_fa_icon(user_identity.provider, color="black") }} + + {{user_identity.provider.name}} + + {% if user_identity.identity %} +
+ {{ user_identity.identity.provider_user_id }} +
+ {% endif %} +
+ {% if user_identity.identity %} + {% if current_user.oauth_identity|length > 1 or current_user.has_password %} + + CONNECTED + + + {% else %} + CONNECTED + {% endif %} + {% else %} + + CONNECT + + + {% endif %} +
From a28c2b0d6dbee9d5163e5da88981a44d54d02ede Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Fri, 12 Jan 2024 10:41:57 +0100 Subject: [PATCH 21/21] build: bump version number to 0.12.0 --- k8s/Chart.yaml | 2 +- lifemonitor/static/src/package.json | 2 +- specs/api.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/k8s/Chart.yaml b/k8s/Chart.yaml index b57762557..73ea27b97 100644 --- a/k8s/Chart.yaml +++ b/k8s/Chart.yaml @@ -12,7 +12,7 @@ version: 0.11.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. -appVersion: 0.11.9 +appVersion: 0.12.0 # Chart dependencies dependencies: diff --git a/lifemonitor/static/src/package.json b/lifemonitor/static/src/package.json index bf755139c..640616d23 100644 --- a/lifemonitor/static/src/package.json +++ b/lifemonitor/static/src/package.json @@ -1,7 +1,7 @@ { "name": "lifemonitor", "description": "Workflow Testing Service", - "version": "0.11.9", + "version": "0.12.0", "license": "MIT", "author": "CRS4", "main": "../dist/js/lifemonitor.min.js", diff --git a/specs/api.yaml b/specs/api.yaml index a181c9845..bbed3a300 100644 --- a/specs/api.yaml +++ b/specs/api.yaml @@ -3,7 +3,7 @@ openapi: "3.0.0" info: - version: "0.11.9" + version: "0.12.0" title: "Life Monitor API" description: | *Workflow sustainability service* @@ -18,7 +18,7 @@ info: servers: - url: / description: > - Version 0.11.9 of API. + Version 0.12.0 of API. tags: - name: GitHub Integration