Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-gitlabcis for
openSUSE:Factory checked in at 2026-03-17 19:04:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-gitlabcis (Old)
and /work/SRC/openSUSE:Factory/.python-gitlabcis.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-gitlabcis"
Tue Mar 17 19:04:40 2026 rev:9 rq:1339481 version:1.18.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-gitlabcis/python-gitlabcis.changes
2026-03-16 14:21:00.290444201 +0100
+++
/work/SRC/openSUSE:Factory/.python-gitlabcis.new.8177/python-gitlabcis.changes
2026-03-17 19:06:21.041279547 +0100
@@ -1,0 +2,7 @@
+Tue Mar 17 06:00:19 UTC 2026 - Johannes Kastl
<[email protected]>
+
+- update to 1.18.0:
+ * Feature
+ - feat: Group support for dependency checks (#125) (92d4fbb)
+
+-------------------------------------------------------------------
Old:
----
gitlabcis-1.17.1.tar.gz
New:
----
gitlabcis-1.18.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-gitlabcis.spec ++++++
--- /var/tmp/diff_new_pack.FGQ76g/_old 2026-03-17 19:06:21.893314857 +0100
+++ /var/tmp/diff_new_pack.FGQ76g/_new 2026-03-17 19:06:21.893314857 +0100
@@ -17,7 +17,7 @@
Name: python-gitlabcis
-Version: 1.17.1
+Version: 1.18.0
Release: 0
Summary: An automated tool that assesses the GitLab CIS benchmarks
against a project
License: MIT
++++++ gitlabcis-1.17.1.tar.gz -> gitlabcis-1.18.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gitlabcis-1.17.1/CHANGELOG.md
new/gitlabcis-1.18.0/CHANGELOG.md
--- old/gitlabcis-1.17.1/CHANGELOG.md 2026-03-16 01:39:57.000000000 +0100
+++ new/gitlabcis-1.18.0/CHANGELOG.md 2026-03-16 23:30:10.000000000 +0100
@@ -1,5 +1,11 @@
# CHANGELOG
+## v1.18.0 (2026-03-16)
+
+### Feature
+
+* feat: Group support for dependency checks (#125)
([`92d4fbb`](https://gitlab.com/gitlab-security-oss/cis/gitlabcis/-/commit/92d4fbb76f2127145cd3c9ea5c9770b064cbd780))
+
## v1.17.1 (2026-03-16)
### Fix
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gitlabcis-1.17.1/PKG-INFO
new/gitlabcis-1.18.0/PKG-INFO
--- old/gitlabcis-1.17.1/PKG-INFO 2026-03-16 01:40:06.635062000 +0100
+++ new/gitlabcis-1.18.0/PKG-INFO 2026-03-16 23:30:20.650512000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: gitlabcis
-Version: 1.17.1
+Version: 1.18.0
Summary: An automated tool that assesses the GitLab CIS benchmarks against a
project.
Author-email: Nate Rosandich <[email protected]>, Neil McDonald
<[email protected]>, Mitra JozeNazemian
<[email protected]>
License: MIT License
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gitlabcis-1.17.1/gitlabcis/__init__.py
new/gitlabcis-1.18.0/gitlabcis/__init__.py
--- old/gitlabcis-1.17.1/gitlabcis/__init__.py 2026-03-16 01:39:57.000000000
+0100
+++ new/gitlabcis-1.18.0/gitlabcis/__init__.py 2026-03-16 23:30:10.000000000
+0100
@@ -9,4 +9,4 @@
# -------------------------------------------------------------------------
__author__ = '[email protected]'
-__version__ = '1.17.1' # noqa: E999
+__version__ = '1.18.0' # noqa: E999
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gitlabcis-1.17.1/gitlabcis/benchmarks/dependencies_3/third_party_packages_3_1.py
new/gitlabcis-1.18.0/gitlabcis/benchmarks/dependencies_3/third_party_packages_3_1.py
---
old/gitlabcis-1.17.1/gitlabcis/benchmarks/dependencies_3/third_party_packages_3_1.py
2026-03-16 01:39:40.000000000 +0100
+++
new/gitlabcis-1.18.0/gitlabcis/benchmarks/dependencies_3/third_party_packages_3_1.py
2026-03-16 23:29:53.000000000 +0100
@@ -55,11 +55,14 @@
from gql.transport.requests import RequestsHTTPTransport
from graphql import GraphQLError
- if kwargs.get('isProject'):
+ from gitlabcis.utils import ci
+
+ if kwargs.get('isProject') or kwargs.get('isGroup'):
try:
variables = {
'fullPath': glEntity.path_with_namespace
+ if kwargs.get('isProject') else glEntity.full_path
}
except (GitlabHttpError, GitlabGetError,
@@ -77,15 +80,30 @@
fetch_schema_from_transport=True
)
- query = gql('''
- query GetSecurityScanners($fullPath: ID!) {
- project(fullPath: $fullPath) {
- securityScanners {
- enabled
+ if kwargs.get('isProject'):
+ query = gql('''
+ query GetSecurityScanners($fullPath: ID!) {
+ project(fullPath: $fullPath) {
+ securityScanners {
+ enabled
+ }
+ }
+ }
+ ''')
+ else:
+ query = gql('''
+ query GetGroupScanExecutionPolicies($fullPath: ID!) {
+ group(fullPath: $fullPath) {
+ scanExecutionPolicies {
+ nodes {
+ name
+ enabled
+ yaml
+ }
+ }
}
}
- }
- ''')
+ ''')
try:
@@ -99,22 +117,57 @@
return {None: 'Insufficient permissions'}
try:
- enabledScanners = results["project"]["securityScanners"]["enabled"]
- dependencyScanningEnabled = \
- "DEPENDENCY_SCANNING" in enabledScanners
- containerScanningEnabled = \
- "CONTAINER_SCANNING" in enabledScanners
- if (dependencyScanningEnabled and containerScanningEnabled):
- return {True: 'DEPENDENCY SCANNING and '
- 'CONTAINER SCANNING are enabled'}
- elif (dependencyScanningEnabled and not containerScanningEnabled):
- return {False: 'DEPENDENCY SCANNING is enabled but '
- 'CONTAINER SCANNING is not enabled'}
- elif (containerScanningEnabled and not dependencyScanningEnabled):
- return {False: 'CONTAINER SCANNING is enabled '
- 'but DEPENDENCY SCANNING is not enabled'}
- return {False: 'CONTAINER SCANNING and DEPENDENCY SCANNING '
- 'are not enabled'}
+ if kwargs.get('isProject'):
+ enabledScanners = \
+ results["project"]["securityScanners"]["enabled"]
+ dependencyScanningEnabled = \
+ "DEPENDENCY_SCANNING" in enabledScanners
+ containerScanningEnabled = \
+ "CONTAINER_SCANNING" in enabledScanners
+ if (dependencyScanningEnabled and containerScanningEnabled):
+ return {True: 'DEPENDENCY SCANNING and '
+ 'CONTAINER SCANNING are enabled'}
+ elif (
+ dependencyScanningEnabled and not containerScanningEnabled
+ ):
+ return {False: 'DEPENDENCY SCANNING is enabled but '
+ 'CONTAINER SCANNING is not enabled'}
+ elif (
+ containerScanningEnabled and not dependencyScanningEnabled
+ ):
+ return {False: 'CONTAINER SCANNING is enabled '
+ 'but DEPENDENCY SCANNING is not enabled'}
+ return {False: 'CONTAINER SCANNING and DEPENDENCY SCANNING '
+ 'are not enabled'}
+
+ else:
+ depFound = False
+ containerFound = False
+ for policy in (
+ results['group']['scanExecutionPolicies']['nodes']
+ ):
+ if policy.get('enabled') is True:
+ policy_yaml = ci.safeLoad(policy.get('yaml', ''))
+ for action in policy_yaml.get('actions', []):
+ scan = action.get('scan')
+ if scan == 'dependency_scanning':
+ depFound = True
+ if scan == 'container_scanning':
+ containerFound = True
+ if depFound and containerFound:
+ return {True: 'DEPENDENCY SCANNING and '
+ 'CONTAINER SCANNING are enforced via '
+ 'Scan Execution Policy'}
+ elif depFound and not containerFound:
+ return {False: 'DEPENDENCY SCANNING is enforced but '
+ 'CONTAINER SCANNING is not enforced via '
+ 'Scan Execution Policy'}
+ elif containerFound and not depFound:
+ return {False: 'CONTAINER SCANNING is enforced but '
+ 'DEPENDENCY SCANNING is not enforced via '
+ 'Scan Execution Policy'}
+ return {False: 'CONTAINER SCANNING and DEPENDENCY SCANNING '
+ 'are not enforced via Scan Execution Policy'}
except (GitlabHttpError, GitlabGetError,
GitlabAuthenticationError) as e:
@@ -127,9 +180,6 @@
elif kwargs.get('isInstance'):
return {None: 'Not applicable at instance level'}
- elif kwargs.get('isGroup'):
- return {None: 'Not yet implemented for groups'}
-
# -------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gitlabcis-1.17.1/gitlabcis/benchmarks/dependencies_3/validate_packages_3_2.py
new/gitlabcis-1.18.0/gitlabcis/benchmarks/dependencies_3/validate_packages_3_2.py
---
old/gitlabcis-1.17.1/gitlabcis/benchmarks/dependencies_3/validate_packages_3_2.py
2026-03-16 01:39:40.000000000 +0100
+++
new/gitlabcis-1.18.0/gitlabcis/benchmarks/dependencies_3/validate_packages_3_2.py
2026-03-16 23:29:53.000000000 +0100
@@ -18,11 +18,12 @@
from gitlabcis.utils import ci
- if kwargs.get('isProject'):
+ if kwargs.get('isProject') or kwargs.get('isGroup'):
try:
variables = {
'fullPath': glEntity.path_with_namespace
+ if kwargs.get('isProject') else glEntity.full_path
}
except (GitlabHttpError, GitlabGetError,
@@ -41,17 +42,26 @@
)
query = gql('''
- query GetSecurityScanners($fullPath: ID!) {
+ query GetScanExecutionPolicies($fullPath: ID!) {
project(fullPath: $fullPath) {
scanExecutionPolicies {
- nodes {
- name
- enabled
- yaml
+ nodes {
+ name
+ enabled
+ yaml
+ }
}
}
+ group(fullPath: $fullPath) {
+ scanExecutionPolicies {
+ nodes {
+ name
+ enabled
+ yaml
+ }
+ }
}
- }
+ }
''')
try:
@@ -66,22 +76,25 @@
return {None: 'Insufficient permissions'}
try:
- secret_detection_policy_found = False
- for policy in results['project']['scanExecutionPolicies']['nodes']:
+ entityType = 'project' if kwargs.get('isProject') else 'group'
+ policyFound = False
+ for policy in (
+ results[entityType]['scanExecutionPolicies']['nodes']
+ ):
if policy.get('enabled') is True:
policy_yaml = ci.safeLoad(policy.get('yaml', ''))
actions = policy_yaml.get('actions', [])
for action in actions:
if action.get('scan') == 'dependency_scanning':
- secret_detection_policy_found = True
+ policyFound = True
- if secret_detection_policy_found:
+ if policyFound:
return {
True: (
'Scan Execution Policy for dependency_scanning is '
'enabled'
- )
- }
+ )
+ }
else:
return {
False: (
@@ -96,9 +109,6 @@
elif kwargs.get('isInstance'):
return {None: 'Not applicable at instance level'}
- elif kwargs.get('isGroup'):
- return {None: 'Not yet implemented for groups'}
-
# -------------------------------------------------------------------------
@@ -134,7 +144,19 @@
return {None: 'Not applicable at instance level'}
elif kwargs.get('isGroup'):
- return {None: 'Not yet implemented for groups'}
+ try:
+ if glEntity.auto_devops_enabled is True:
+ return {True: 'Dependency Scanning is '
+ 'enabled via Auto DevOps at group level'}
+ return {False: 'Auto DevOps is not enabled at the group level'}
+
+ except (GitlabHttpError, GitlabGetError,
+ GitlabAuthenticationError) as e:
+ if e.response_code in [401, 403]:
+ return {None: 'Insufficient permissions'}
+
+ except AttributeError:
+ return {None: 'Feature is not enabled'}
# -------------------------------------------------------------------------
@@ -189,7 +211,21 @@
return {None: 'Insufficient permissions'}
elif kwargs.get('isGroup'):
- return {None: 'Not yet implemented for groups'}
+ try:
+ if glEntity.auto_devops_enabled is True:
+ return {True: 'Dependency Scanning which is required for '
+ 'packages to be automatically scanned for license '
+ 'implications is enabled via Auto DevOps at group '
+ 'level'}
+ return {False: 'Auto DevOps is not enabled at the group level'}
+
+ except (GitlabHttpError, GitlabGetError,
+ GitlabAuthenticationError) as e:
+ if e.response_code in [401, 403]:
+ return {None: 'Insufficient permissions'}
+
+ except AttributeError:
+ return {None: 'Feature is not enabled'}
# -------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gitlabcis-1.17.1/gitlabcis/tests/unit/benchmarks/dependencies_3/third_party_packages_3_1_test.py
new/gitlabcis-1.18.0/gitlabcis/tests/unit/benchmarks/dependencies_3/third_party_packages_3_1_test.py
---
old/gitlabcis-1.17.1/gitlabcis/tests/unit/benchmarks/dependencies_3/third_party_packages_3_1_test.py
2026-03-16 01:39:40.000000000 +0100
+++
new/gitlabcis-1.18.0/gitlabcis/tests/unit/benchmarks/dependencies_3/third_party_packages_3_1_test.py
2026-03-16 23:29:53.000000000 +0100
@@ -40,68 +40,136 @@
test = third_party_packages_3_1.monitor_dependencies
- kwargs = {
+ projectKwargs = {
'graphQLEndpoint': 'https://example.com/graphql',
'graphQLHeaders': {'Authorization': 'Bearer token'},
'isProject': True
}
- run(glEntity, glObject, test, False, **kwargs)
+ run(glEntity, glObject, test, False, **projectKwargs)
glEntity.path_with_namespace = 'test/project'
gqlClient.return_value.execute.return_value = {
- "project": {
- "securityScanners": {
- "enabled": ["DEPENDENCY_SCANNING", "CONTAINER_SCANNING"]
+ 'project': {
+ 'securityScanners': {
+ 'enabled': ['DEPENDENCY_SCANNING', 'CONTAINER_SCANNING']
}
}
}
- run(glEntity, glObject, test, True, **kwargs)
+ run(glEntity, glObject, test, True, **projectKwargs)
- glEntity.path_with_namespace = 'test/project'
gqlClient.return_value.execute.return_value = {
- "project": {
- "securityScanners": {
- "enabled": ["DEPENDENCY_SCANNING"]
+ 'project': {
+ 'securityScanners': {
+ 'enabled': ['DEPENDENCY_SCANNING']
}
}
}
- run(glEntity, glObject, test, False, **kwargs)
+ run(glEntity, glObject, test, False, **projectKwargs)
- glEntity.path_with_namespace = 'test/project'
gqlClient.return_value.execute.return_value = {
- "project": {
- "securityScanners": {
- "enabled": ["CONTAINER_SCANNING"]
+ 'project': {
+ 'securityScanners': {
+ 'enabled': ['CONTAINER_SCANNING']
}
}
}
- run(glEntity, glObject, test, False, **kwargs)
+ run(glEntity, glObject, test, False, **projectKwargs)
- glEntity.path_with_namespace = 'test/project'
gqlClient.return_value.execute.return_value = {
- "project": {
- "securityScanners": {
- "enabled": []
+ 'project': {
+ 'securityScanners': {
+ 'enabled': []
}
}
}
- run(glEntity, glObject, test, False, **kwargs)
+ run(glEntity, glObject, test, False, **projectKwargs)
+
+ gqlClient.return_value.execute.return_value = {
+ 'project': {
+ 'securityScanners': {}
+ }
+ }
+ run(glEntity, glObject, test, False, **projectKwargs)
+
+ gqlClient.return_value.execute.side_effect = \
+ TransportServerError('GraphQL Error')
+ run(glEntity, glObject, test, None, **projectKwargs)
+
+ gqlClient.return_value.execute.side_effect = None
+
+ groupKwargs = {
+ 'graphQLEndpoint': 'https://example.com/graphql',
+ 'graphQLHeaders': {'Authorization': 'Bearer token'},
+ 'isGroup': True
+ }
+ glEntity.full_path = 'test/group'
- glEntity.path_with_namespace = 'test/project'
gqlClient.return_value.execute.return_value = {
- "project": {
- "securityScanners": {}
+ 'group': {
+ 'scanExecutionPolicies': {
+ 'nodes': [
+ {
+ 'enabled': True,
+ 'yaml': (
+ 'actions:\n'
+ ' - scan: dependency_scanning\n'
+ ' - scan: container_scanning\n'
+ )
+ }
+ ]
+ }
+ }
+ }
+ run(glEntity, glObject, test, True, **groupKwargs)
+
+ gqlClient.return_value.execute.return_value = {
+ 'group': {
+ 'scanExecutionPolicies': {
+ 'nodes': [
+ {
+ 'enabled': True,
+ 'yaml': (
+ 'actions:\n'
+ ' - scan: dependency_scanning\n'
+ )
+ }
+ ]
+ }
+ }
+ }
+ run(glEntity, glObject, test, False, **groupKwargs)
+
+ gqlClient.return_value.execute.return_value = {
+ 'group': {
+ 'scanExecutionPolicies': {
+ 'nodes': [
+ {
+ 'enabled': True,
+ 'yaml': (
+ 'actions:\n'
+ ' - scan: container_scanning\n'
+ )
+ }
+ ]
+ }
+ }
+ }
+ run(glEntity, glObject, test, False, **groupKwargs)
+
+ gqlClient.return_value.execute.return_value = {
+ 'group': {
+ 'scanExecutionPolicies': {
+ 'nodes': []
+ }
}
}
- run(glEntity, glObject, test, False, **kwargs)
+ run(glEntity, glObject, test, False, **groupKwargs)
gqlClient.return_value.execute.side_effect = \
TransportServerError('GraphQL Error')
- run(glEntity, glObject, test, None, **kwargs)
+ run(glEntity, glObject, test, None, **groupKwargs)
- kwarg = [{'isGroup': True}, {'isInstance': True}]
- for kwargs in kwarg:
- run(glEntity, glObject, test, None, **kwargs)
+ run(glEntity, glObject, test, None, **{'isInstance': True})
# -----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gitlabcis-1.17.1/gitlabcis/tests/unit/benchmarks/dependencies_3/validate_packages_3_2_test.py
new/gitlabcis-1.18.0/gitlabcis/tests/unit/benchmarks/dependencies_3/validate_packages_3_2_test.py
---
old/gitlabcis-1.17.1/gitlabcis/tests/unit/benchmarks/dependencies_3/validate_packages_3_2_test.py
2026-03-16 01:39:40.000000000 +0100
+++
new/gitlabcis-1.18.0/gitlabcis/tests/unit/benchmarks/dependencies_3/validate_packages_3_2_test.py
2026-03-16 23:29:53.000000000 +0100
@@ -17,14 +17,14 @@
glEntity.path_with_namespace = 'test/project'
- kwargs = {
+ projectKwargs = {
'graphQLEndpoint': 'https://gitlab.com/api/graphql',
'graphQLHeaders': {'Authorization': 'Bearer token'},
'isProject': True
}
gqlClient.return_value.execute.return_value = {'project': {}}
- run(glEntity, glObject, test, False, **kwargs)
+ run(glEntity, glObject, test, False, **projectKwargs)
mock_result = {
'project': {
@@ -51,7 +51,7 @@
}
}
gqlClient.return_value.execute.return_value = mock_result
- run(glEntity, glObject, test, True, **kwargs)
+ run(glEntity, glObject, test, True, **projectKwargs)
mock_result = {
'project': {
@@ -72,19 +72,75 @@
}
}
gqlClient.return_value.execute.return_value = mock_result
- run(glEntity, glObject, test, False, **kwargs)
+ run(glEntity, glObject, test, False, **projectKwargs)
gqlClient.return_value.execute.side_effect = \
TransportServerError('GraphQL Error')
- run(glEntity, glObject, test, None, **kwargs)
+ run(glEntity, glObject, test, None, **projectKwargs)
gqlClient.return_value.execute.side_effect = \
AttributeError()
- run(glEntity, glObject, test, None, **kwargs)
+ run(glEntity, glObject, test, None, **projectKwargs)
- kwarg = [{'isGroup': True}, {'isInstance': True}]
- for kwargs in kwarg:
- run(glEntity, glObject, test, None, **kwargs)
+ gqlClient.return_value.execute.side_effect = None
+
+ groupKwargs = {
+ 'graphQLEndpoint': 'https://gitlab.com/api/graphql',
+ 'graphQLHeaders': {'Authorization': 'Bearer token'},
+ 'isGroup': True
+ }
+ glEntity.full_path = 'test/group'
+
+ gqlClient.return_value.execute.return_value = {'group': {}}
+ run(glEntity, glObject, test, False, **groupKwargs)
+
+ mock_result = {
+ 'group': {
+ 'scanExecutionPolicies': {
+ 'nodes': [
+ {
+ 'enabled': True,
+ 'yaml': '''
+ actions:
+ - scan: dependency_scanning
+ rules:
+ - type: pipeline
+ branches: ['*']
+ '''
+ }
+ ]
+ }
+ }
+ }
+ gqlClient.return_value.execute.return_value = mock_result
+ run(glEntity, glObject, test, True, **groupKwargs)
+
+ mock_result = {
+ 'group': {
+ 'scanExecutionPolicies': {
+ 'nodes': [
+ {
+ 'enabled': True,
+ 'yaml': '''
+ actions:
+ - scan: dast
+ rules:
+ - type: pipeline
+ branches: ['*']
+ '''
+ }
+ ]
+ }
+ }
+ }
+ gqlClient.return_value.execute.return_value = mock_result
+ run(glEntity, glObject, test, False, **groupKwargs)
+
+ gqlClient.return_value.execute.side_effect = \
+ TransportServerError('GraphQL Error')
+ run(glEntity, glObject, test, None, **groupKwargs)
+
+ run(glEntity, glObject, test, None, **{'isInstance': True})
# -----------------------------------------------------------------------------
@@ -122,9 +178,17 @@
glEntity.files.get.return_value = _projectFile
run(glEntity, glObject, test, True, **kwargs)
- kwarg = [{'isGroup': True}, {'isInstance': True}]
- for kwargs in kwarg:
- run(glEntity, glObject, test, None, **kwargs)
+ run(glEntity, glObject, test, None, **{'isInstance': True})
+
+ groupKwargs = {'isGroup': True}
+ glEntity.auto_devops_enabled = True
+ run(glEntity, glObject, test, True, **groupKwargs)
+
+ glEntity.auto_devops_enabled = False
+ run(glEntity, glObject, test, False, **groupKwargs)
+
+ del glEntity.auto_devops_enabled
+ run(glEntity, glObject, test, None, **groupKwargs)
# -----------------------------------------------------------------------------
@@ -173,7 +237,15 @@
glEntity.files.get.return_value = _projectFile
run(glEntity, glObject, test, True, **kwargs)
- run(glEntity, glObject, test, None, **{'isGroup': True})
+ groupKwargs = {'isGroup': True}
+ glEntity.auto_devops_enabled = True
+ run(glEntity, glObject, test, True, **groupKwargs)
+
+ glEntity.auto_devops_enabled = False
+ run(glEntity, glObject, test, False, **groupKwargs)
+
+ del glEntity.auto_devops_enabled
+ run(glEntity, glObject, test, None, **groupKwargs)
# -----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gitlabcis-1.17.1/gitlabcis.egg-info/PKG-INFO
new/gitlabcis-1.18.0/gitlabcis.egg-info/PKG-INFO
--- old/gitlabcis-1.17.1/gitlabcis.egg-info/PKG-INFO 2026-03-16
01:40:06.000000000 +0100
+++ new/gitlabcis-1.18.0/gitlabcis.egg-info/PKG-INFO 2026-03-16
23:30:20.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: gitlabcis
-Version: 1.17.1
+Version: 1.18.0
Summary: An automated tool that assesses the GitLab CIS benchmarks against a
project.
Author-email: Nate Rosandich <[email protected]>, Neil McDonald
<[email protected]>, Mitra JozeNazemian
<[email protected]>
License: MIT License
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gitlabcis-1.17.1/pyproject.toml
new/gitlabcis-1.18.0/pyproject.toml
--- old/gitlabcis-1.17.1/pyproject.toml 2026-03-16 01:39:57.000000000 +0100
+++ new/gitlabcis-1.18.0/pyproject.toml 2026-03-16 23:30:10.000000000 +0100
@@ -12,7 +12,7 @@
[project]
name = "gitlabcis"
-version = "1.17.1"
+version = "1.18.0"
requires-python = ">=3.10"
description = "An automated tool that assesses the GitLab CIS benchmarks
against a project."
authors = [