6.3.4.5. AnnotateGitLabPR¶
Annotate issue violations on GitLab merge requests
This rule generates reports for GitLab merge requests using Axivion Dashboard data as a basis.
Reports are either posted as comments to a pull request or as inline code review annotations (Git-platform-specific rules may offer additional output formats).
Findings are retrieved from the source configured in /Results/Dashboard.
In managed_upload mode, a connection to the Dashboard is established via its REST API (access tokens and username/password authentication are supported).
In shared_database mode, the SQLite database is accessed directly.
Instead of triggering this behavior via a rule, you can alternatively get the same functionality by calling the command-line annotate_pr tool.
Refer to the documentation section "Generating review comments with annotate_pr" for more details.
Options¶
The following places define options that affect this rule: PostCIActions
abort_on_error¶
abort_on_error : bool = False
code_quality_default_severity¶
code_quality_default_severity : GitlabSeverity = 'MINOR'
code_quality_report_filename¶
code_quality_report_filename : bauhaus.analysis.config.ProjectRelativePath | None = None
code_quality.
code_quality_severity_map¶
code_quality_severity_map
Map Dashboard severities to a GitLab Code Quality severities. Only used if the report type isType: dict[str, GitlabSeverity]
Default:
{ 'advisory': 'INFO', 'document': 'INFO', 'error': 'CRITICAL', 'high': 'CRITICAL', 'low': 'MINOR', 'mandatory': 'BLOCKER', 'medium': 'MAJOR', 'required': 'BLOCKER', 'warning': 'MAJOR' }
code_quality. Can be passed multiple times.
failure_exit_code¶
failure_exit_code : int = 1
general_options¶
General options that are not dependent on the Git platform to which the report is made.
general_options.include_suppressed : bool =
Whether suppressed issues shall be included in the report.False
general_options.issue_kinds
Issue kinds which shall be included in the report.Type: set[IssueKind]
Default:
{'Architecture Violations', 'Clones', 'Cycles', 'Dead Entities', 'Metric Violations', 'Style Violations'}
general_options.keep_issues : KeepIssuesChoice =
Configure whether to report only issues that are inside changed lines, outside changed lines, or whether to include all kinds of issues.'INSIDE_DIFF'
general_options.markdown_checkbox : bool =
Prepend each reported issue with a checkbox in the report.False
general_options.max_issues_per_kind : int =
Maximum number of issues per kind to be included in a single comment. Does not apply to "inline" comments, i.e., comments left on a specific line of a file.20
general_options.report_as_one_comment : bool =
Report issues in a single comment posted to the Git platform when this is true. Otherwise, when this is false, issues will be left as individual code review notes.False
general_options.skip_report : bool =
Whether the reporting step shall be skipped. In this case, nothing will be reported to the Git platform.False
general_options.start_revision : str =
The baseline version in the Dashboard to compare the current version to. Refer to manual section 'Version Strings' for an overview of possible values.'latest-1'
general_options.verbose : bool =
FalseWhether to enable verbose logging.
Note: When you use the
--verbose/-vswitch for axivion_ci, verbose mode will always be enabled.
merge_request_iid¶
merge_request_iid : str | None = '$(GITLAB_MERGE_REQUEST_IID=)'
project¶
project : str = '$(GITLAB_PROJECT)'
myproject/myrepository) of the GitLab project.
report_type¶
report_type : GitlabReportType = 'DISCUSSION_NOTES'
server¶
server : str = 'https://gitlab.com'
token¶
token : bauhaus.analysis.config.PasswordString = '$(GITLAB_TOKEN=**********)'
warning_exit_code¶
warning_exit_code : int = 0
allow_failure: section in your GitLab CI configuration file to set up this exit code as one that denotes a warning rather than an error.
By default, exit code will not be changed for warnings (equivalent to setting this to 0).
Option Types¶
These types are used by options listed above:
GitlabReportType¶
An enumeration.DISCUSSION_NOTES
Leaves a resolvable discussion comment for each annotation.REGULAR_NOTES
Leaves a comment for each annotation.CODE_QUALITY
Generates a Code Quality report, refer to the GitLab documentation for more information.NOTES
Deprecated: Use DISCUSSION_NOTES instead.GitlabSeverity¶
An enumeration.INFO
MINOR
MAJOR
CRITICAL
BLOCKER
IssueKind¶
An enumeration.Architecture Violations
Clones
Cycles
Dead Entities
Metric Violations
Style Violations
KeepIssuesChoice¶
Whether to include issues inside or outside the diff.INSIDE_DIFF
Include only issues inside the diff.OUTSIDE_DIFF
Include only issues outside the diff.ALL
Include all issues, whether inside or outside the diff.