config: Allow a default refspec to be specified
Also update config file version to 9 due to this format change. Signed-off-by: Paul Barker <pbarker@konsulko.com> [Jan: style fix] Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
parent
f678b24611
commit
2260189fda
@ -75,3 +75,13 @@ Added
|
|||||||
|
|
||||||
- ``patches`` property to ``repos`` to be able to apply additional patches to
|
- ``patches`` property to ``repos`` to be able to apply additional patches to
|
||||||
the repo.
|
the repo.
|
||||||
|
|
||||||
|
Version 9
|
||||||
|
---------
|
||||||
|
|
||||||
|
Added
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
- ``defaults`` key can now be used to set a default value for the repository
|
||||||
|
property ``refspec``. This default value will be used if the appropriate
|
||||||
|
property is not defined for a given repository.
|
||||||
|
@ -310,6 +310,22 @@ Configuration reference
|
|||||||
* ``file``: string [required]
|
* ``file``: string [required]
|
||||||
The path to the file relative to the root of the repository.
|
The path to the file relative to the root of the repository.
|
||||||
|
|
||||||
|
* ``defaults``: dict [optional]
|
||||||
|
This key can be used to set default values for various properties.
|
||||||
|
This may help you to avoid repeating the same property assignment in
|
||||||
|
multiple places if, for example, you wish to use the same refspec for
|
||||||
|
all repositories.
|
||||||
|
|
||||||
|
* ``repos``: dict [optional]
|
||||||
|
This key can contain default values for some repository properties.
|
||||||
|
If a default value is set for a repository property it may still be
|
||||||
|
overridden by setting the same property to a different value in a given
|
||||||
|
repository.
|
||||||
|
|
||||||
|
* ``refspec``: string [optional]
|
||||||
|
Sets the default ``refspec`` property applied to all repositories that
|
||||||
|
do not override this.
|
||||||
|
|
||||||
* ``machine``: string [optional]
|
* ``machine``: string [optional]
|
||||||
Contains the value of the ``MACHINE`` variable that is written into the
|
Contains the value of the ``MACHINE`` variable that is written into the
|
||||||
``local.conf``. Can be overwritten by the ``KAS_MACHINE`` environment
|
``local.conf``. Can be overwritten by the ``KAS_MACHINE`` environment
|
||||||
|
@ -28,5 +28,5 @@ __copyright__ = 'Copyright (c) Siemens AG, 2017-2018'
|
|||||||
__version__ = '2.1.1'
|
__version__ = '2.1.1'
|
||||||
|
|
||||||
# Please update docs/format-changelog.rst when changing the file version.
|
# Please update docs/format-changelog.rst when changing the file version.
|
||||||
__file_version__ = 8
|
__file_version__ = 9
|
||||||
__compatible_file_version__ = 1
|
__compatible_file_version__ = 1
|
||||||
|
@ -83,12 +83,14 @@ class Config:
|
|||||||
and the `Repo` instances as values.
|
and the `Repo` instances as values.
|
||||||
"""
|
"""
|
||||||
repo_config_dict = self._config.get('repos', {})
|
repo_config_dict = self._config.get('repos', {})
|
||||||
|
repo_defaults = self._config.get('defaults', {}).get('repos', {})
|
||||||
repo_dict = {}
|
repo_dict = {}
|
||||||
repo_fallback_path = os.path.dirname(self.filenames[0])
|
repo_fallback_path = os.path.dirname(self.filenames[0])
|
||||||
for repo in repo_config_dict:
|
for repo in repo_config_dict:
|
||||||
repo_config_dict[repo] = repo_config_dict[repo] or {}
|
repo_config_dict[repo] = repo_config_dict[repo] or {}
|
||||||
repo_dict[repo] = Repo.factory(repo,
|
repo_dict[repo] = Repo.factory(repo,
|
||||||
repo_config_dict[repo],
|
repo_config_dict[repo],
|
||||||
|
repo_defaults,
|
||||||
repo_fallback_path)
|
repo_fallback_path)
|
||||||
|
|
||||||
return repo_dict
|
return repo_dict
|
||||||
|
@ -72,6 +72,21 @@ CONFIGSCHEMA = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
'defaults': {
|
||||||
|
'type': 'object',
|
||||||
|
'additionalProperties': False,
|
||||||
|
'properties': {
|
||||||
|
'repos': {
|
||||||
|
'type': 'object',
|
||||||
|
'additionalProperties': False,
|
||||||
|
'properties': {
|
||||||
|
'refspec': {
|
||||||
|
'type': 'string',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
'machine': {
|
'machine': {
|
||||||
'type': 'string',
|
'type': 'string',
|
||||||
},
|
},
|
||||||
|
@ -78,7 +78,7 @@ class Repo:
|
|||||||
self.path, self._layers)
|
self.path, self._layers)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def factory(name, repo_config, repo_fallback_path):
|
def factory(name, repo_config, repo_defaults, repo_fallback_path):
|
||||||
"""
|
"""
|
||||||
Returns a Repo instance depending on params.
|
Returns a Repo instance depending on params.
|
||||||
"""
|
"""
|
||||||
@ -99,7 +99,8 @@ class Repo:
|
|||||||
url = repo_config.get('url', None)
|
url = repo_config.get('url', None)
|
||||||
name = repo_config.get('name', name)
|
name = repo_config.get('name', name)
|
||||||
typ = repo_config.get('type', 'git')
|
typ = repo_config.get('type', 'git')
|
||||||
refspec = repo_config.get('refspec', None)
|
refspec = repo_config.get('refspec',
|
||||||
|
repo_defaults.get('refspec', None))
|
||||||
path = repo_config.get('path', None)
|
path = repo_config.get('path', None)
|
||||||
disable_operations = False
|
disable_operations = False
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user