summaryrefslogtreecommitdiff
path: root/nvim
diff options
context:
space:
mode:
authorSkladnayazebra <skladnayazebra@gmail.com>2026-03-31 12:46:28 +0200
committerSkladnayazebra <skladnayazebra@gmail.com>2026-03-31 12:49:30 +0200
commit68f93fcd4a84e254de194643d272b15e81e0b41a (patch)
tree40cc707c663b4a5379599b156ab70d4d67f6dce4 /nvim
parentb1f940da43ea684a821d76ddd5ffec54b16565eb (diff)
ATLASSIAN SUCKS
Diffstat (limited to 'nvim')
-rw-r--r--nvim/bitbucket-pipelines.json1210
-rw-r--r--nvim/lua/config/lsp.lua19
2 files changed, 1226 insertions, 3 deletions
diff --git a/nvim/bitbucket-pipelines.json b/nvim/bitbucket-pipelines.json
new file mode 100644
index 0000000..979c3c9
--- /dev/null
+++ b/nvim/bitbucket-pipelines.json
@@ -0,0 +1,1210 @@
+{
+ "$id": "https://bitbucket.org/product/features/pipelines",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "description": "Custom JSON schema for bitbucket-pipelines.yml",
+ "properties": {
+ "clone": { "$ref": "#/components/schemas/clone" },
+ "definitions": {
+ "description": "The definitions of caches and services used in the declared pipelines.",
+ "properties": {
+ "caches": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/cache"
+ },
+ "title": "Custom cache definitions",
+ "type": "object"
+ },
+ "imports": {
+ "pipelines": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/import_source"
+ },
+ "description": "Definitions of the pipelines imports that can be used in this file.",
+ "title": "Import source definitions",
+ "type": "object"
+ }
+ },
+ "pipelines": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/custom_pipeline"
+ },
+ "description": "Definitions of the pipelines which can be used in other repositories of the same Bitbucket workspace.",
+ "title": "Shared pipeline definitions",
+ "type": "object"
+ },
+ "services": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/service"
+ },
+ "title": "Service definitions",
+ "type": "object"
+ }
+ },
+ "title": "Global Definitions",
+ "type": "object"
+ },
+ "export": {
+ "default": false,
+ "description": "Allows other Bitbucket repositories to import pipeline definitions from this file. A shared pipeline definition can't contain another `import` property.",
+ "title": "Enables shared pipelines definitions.",
+ "type": "boolean"
+ },
+ "image": { "$ref": "#/components/schemas/image" },
+ "labels": {
+ "description": "Additional key value data supplied in the configuration YAML.",
+ "example": { "buildTool": "maven", "jvm": "jdk17" },
+ "title": "Pipeline Labels",
+ "type": "object"
+ },
+ "options": {
+ "description": "Global options allow to override the default values applied to all steps in all declared pipelines.",
+ "properties": {
+ "docker": {
+ "default": false,
+ "description": "Enables Docker service for every step.",
+ "type": "boolean"
+ },
+ "max-time": {
+ "$ref": "#/components/schemas/max_time"
+ },
+ "runs-on": {
+ "$ref": "#/components/schemas/runs_on"
+ },
+ "runtime": {
+ "$ref": "#/components/schemas/runtime"
+ },
+ "size": { "$ref": "#/components/schemas/size" }
+ },
+ "title": "Global Options",
+ "type": "object"
+ },
+ "pipelines": {
+ "properties": {
+ "branches": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/pipeline"
+ },
+ "description": "Branch-specific build pipelines.",
+ "title": "Branch Pipelines",
+ "type": "object"
+ },
+ "custom": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/custom_pipeline"
+ },
+ "description": "Pipelines that can only be triggered manually or be scheduled.",
+ "title": "Custom Pipelines",
+ "type": "object"
+ },
+ "default": {
+ "$ref": "#/components/schemas/pipeline",
+ "description": "Default pipeline runs on every push except for tags unless a branch-specific pipeline is defined.",
+ "title": "Default Pipeline"
+ },
+ "pull-requests": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/pull_requests_pipeline"
+ },
+ "description": "Pull-request-specific build pipelines.",
+ "title": "Pull Request Pipelines",
+ "type": "object"
+ },
+ "tags": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/pipeline"
+ },
+ "description": "Tag-specific build pipelines.",
+ "title": "Tag Pipelines",
+ "type": "object"
+ }
+ },
+ "title": "Pipelines",
+ "type": "object"
+ },
+ "triggers": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/trigger_configuration_list"
+ },
+ "description": "Event-based triggers that automatically run pipelines when specific events occur. The property names represent trigger types (e.g., repository-push, pullrequest-push, pipeline-completed, deployment-completed, pullrequest-created).",
+ "example": {
+ "deployment-completed": [
+ {
+ "condition": "BITBUCKET_TRIGGER_DEPLOYMENT_STATUS == \"FAILED\"",
+ "pipelines": ["pipeline2"]
+ }
+ ],
+ "pipeline-completed": [
+ {
+ "condition": "BITBUCKET_TRIGGER_PIPELINE_STATUS == \"FAILED\"",
+ "pipelines": ["pipeline1"]
+ }
+ ],
+ "pullrequest-created": [
+ {
+ "condition": "glob(BITBUCKET_BRANCH, \"feature/*\")",
+ "pipelines": ["pipeline1"]
+ }
+ ],
+ "pullrequest-fulfilled": [
+ {
+ "condition": "glob(BITBUCKET_BRANCH, \"feature/*\")",
+ "pipelines": ["pipeline2"]
+ }
+ ],
+ "pullrequest-push": [
+ {
+ "condition": "BITBUCKET_PR_DESTINATION_BRANCH == \"main\"",
+ "pipelines": ["pipeline2"]
+ }
+ ],
+ "pullrequest-rejected": [
+ {
+ "condition": "glob(BITBUCKET_BRANCH, \"feature/*\")",
+ "pipelines": ["pipeline1"]
+ }
+ ],
+ "pullrequest-reviewer-status-updated": [
+ {
+ "condition": "glob(BITBUCKET_BRANCH, \"feature/*\")",
+ "pipelines": ["pipeline1"]
+ }
+ ],
+ "pullrequest-updated": [
+ {
+ "condition": "glob(BITBUCKET_BRANCH, \"feature/*\")",
+ "pipelines": ["pipeline2"]
+ }
+ ],
+ "repository-push": [
+ {
+ "condition": "BITBUCKET_BRANCH == \"main\"",
+ "pipelines": ["pipeline1"]
+ }
+ ]
+ },
+ "title": "Pipeline Triggers",
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "components": {
+ "schemas": {
+ "artifacts": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/artifacts_paths" },
+ { "$ref": "#/components/schemas/artifacts_expanded" }
+ ]
+ },
+ "artifacts_expanded": {
+ "properties": {
+ "download": {
+ "oneOf": [
+ {
+ "default": true,
+ "description": "Enables downloading of all available artifacts at the end of a step.",
+ "type": "boolean"
+ },
+ {
+ "description": "Define the list of filtered artifacts to be downloaded by the step.",
+ "items": { "type": "string" },
+ "minItems": 1,
+ "type": "array"
+ }
+ ]
+ },
+ "paths": { "$ref": "#/components/schemas/artifacts_paths" },
+ "upload": {
+ "items": {
+ "$ref": "#/components/schemas/artifacts_upload"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "artifacts_paths": {
+ "items": {
+ "description": "Glob pattern for the path to the artifacts.",
+ "title": "Artifact Path Pattern",
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "artifacts_upload": {
+ "description": "The artifact to be uploaded.",
+ "properties": {
+ "capture-on": {
+ "description": "The capture on field for the artifact.",
+ "enum": ["success", "failed", "always"],
+ "title": "Artifact Capture On",
+ "type": "string"
+ },
+ "depth": {
+ "description": "The depth to search for the artifact files.",
+ "minimum": 1,
+ "title": "Artifact Depth",
+ "type": "integer"
+ },
+ "ignore-paths": {
+ "description": "The ignore paths for the artifact.",
+ "items": {
+ "description": "Glob pattern for paths to ignore when capturing artifacts.",
+ "title": "Ignore Path Pattern",
+ "type": "string"
+ },
+ "title": "Artifact Ignore Paths",
+ "type": "array"
+ },
+ "name": {
+ "description": "The name of the artifact.",
+ "title": "Artifact Name",
+ "type": "string"
+ },
+ "paths": { "$ref": "#/components/schemas/artifacts_paths" },
+ "type": {
+ "default": "shared",
+ "description": "The type of the artifact.",
+ "enum": ["shared", "scoped", "test-reports"],
+ "title": "Artifact Type",
+ "type": "string"
+ }
+ },
+ "required": ["name", "paths"],
+ "title": "Artifact Upload object",
+ "type": "object"
+ },
+ "cache": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/cache_path" },
+ { "$ref": "#/components/schemas/cache_expanded" }
+ ]
+ },
+ "cache_expanded": {
+ "properties": {
+ "key": {
+ "properties": {
+ "files": {
+ "description": "Checksum of these file paths will be used to generate the cache key.",
+ "items": {
+ "description": "Path to a file or glob pattern of files in the repository which form the cache key.",
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": ["files"],
+ "title": "Cache Key",
+ "type": "object"
+ },
+ "path": { "$ref": "#/components/schemas/cache_path" }
+ },
+ "required": ["path"],
+ "title": "Cache",
+ "type": "object"
+ },
+ "cache_path": {
+ "description": "Path to the directory to be cached, can be absolute or relative to the clone directory.",
+ "title": "Cache Path",
+ "type": "string"
+ },
+ "clone": {
+ "description": "Settings for cloning a repository into a container.",
+ "properties": {
+ "depth": {
+ "default": 50,
+ "description": "The depth argument of Git clone operation. It can be either number or \"full\" value",
+ "example": "full",
+ "oneOf": [
+ { "minimum": 1, "type": "integer" },
+ { "enum": ["full"], "type": "string" }
+ ],
+ "title": "Git Clone Depth"
+ },
+ "enabled": {
+ "default": true,
+ "description": "Enables cloning of the repository.",
+ "type": "boolean"
+ },
+ "lfs": {
+ "default": false,
+ "description": "Enables the download of files from LFS storage when cloning.",
+ "type": "boolean"
+ },
+ "skip-ssl-verify": {
+ "default": false,
+ "description": "Disables SSL verification during Git clone operation, allowing the use of self-signed certificates.",
+ "type": "boolean"
+ }
+ },
+ "title": "Clone Repository Settings",
+ "type": "object"
+ },
+ "cloud": {
+ "description": "Custom cloud step runtime",
+ "properties": {
+ "arch": {
+ "default": "x86",
+ "description": "Architecture type used to run the step.",
+ "enum": ["x86", "arm"],
+ "type": "string"
+ },
+ "atlassian-ip-ranges": {
+ "default": false,
+ "description": "Whether it uses Atlassian ip ranges.",
+ "type": "boolean"
+ },
+ "instance-type": {
+ "description": "Instance type for the cloud runtime.",
+ "type": "string"
+ },
+ "version": {
+ "description": "Cloud Runtime version.",
+ "type": "string"
+ }
+ },
+ "title": "Cloud step runtime",
+ "type": "object"
+ },
+ "condition": {
+ "properties": {
+ "changesets": {
+ "additionalProperties": false,
+ "description": "Condition on the changesets involved in the pipeline.",
+ "maxProperties": 1,
+ "properties": {
+ "excludePaths": {
+ "description": "Condition which holds only if all of the modified files match any of the specified patterns.",
+ "items": {
+ "description": "Glob pattern to match the file path.",
+ "title": "File Path Pattern",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Exclude Paths",
+ "type": "array"
+ },
+ "includePaths": {
+ "description": "Condition which holds only if any of the modified files match any of the specified patterns.",
+ "items": {
+ "description": "Glob pattern to match the file path.",
+ "title": "File Path Pattern",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Include Paths",
+ "type": "array"
+ }
+ },
+ "title": "Changeset Condition",
+ "type": "object"
+ }
+ },
+ "required": ["changesets"],
+ "type": "object"
+ },
+ "custom_pipeline": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/items_with_variables" },
+ { "$ref": "#/components/schemas/import_pipeline" }
+ ]
+ },
+ "fail_fast": {
+ "default": false,
+ "title": "Fail Fast",
+ "type": "boolean"
+ },
+ "final_item": {
+ "additionalProperties": false,
+ "properties": {
+ "final": { "$ref": "#/components/schemas/final_step" }
+ },
+ "type": "object"
+ },
+ "final_step": {
+ "allOf": [
+ { "$ref": "#/components/schemas/step_base" },
+ {
+ "description": "A special step that always runs at the end of a pipeline, even if earlier steps fail or the pipeline is stopped. Only one final step is allowed per pipeline and it must be the last item.",
+ "properties": {
+ "deployment": { "not": {} },
+ "fail-fast": { "not": {} },
+ "trigger": {
+ "description": "The final step always runs automatically. Manual trigger is not supported.",
+ "enum": ["automatic"],
+ "type": "string"
+ }
+ },
+ "title": "Final Pipeline Step",
+ "type": "object"
+ }
+ ]
+ },
+ "image": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/image_no_auth" },
+ { "$ref": "#/components/schemas/image_basic_auth" },
+ { "$ref": "#/components/schemas/image_aws_auth" },
+ { "$ref": "#/components/schemas/image_name" }
+ ]
+ },
+ "image_aws_auth": {
+ "allOf": [
+ { "$ref": "#/components/schemas/image_base" },
+ {
+ "properties": {
+ "aws": {
+ "oneOf": [
+ {
+ "properties": {
+ "access-key": {
+ "description": "The access key for Amazon Elastic Container Registry (AWS ECR).",
+ "title": "AWS Access Key",
+ "type": "string"
+ },
+ "secret-key": {
+ "description": "The secret key for Amazon Elastic Container Registry (AWS ECR).",
+ "title": "AWS Secret Key",
+ "type": "string"
+ }
+ },
+ "required": [
+ "access-key",
+ "secret-key"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "oidc-role": {
+ "description": "OIDC role with access to private Docker images hosted in Amazon Elastic Container Registry (AWS ECR).",
+ "title": "OpenID Connect Role",
+ "type": "string"
+ }
+ },
+ "required": ["oidc-role"],
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "required": ["aws"],
+ "type": "object"
+ }
+ ]
+ },
+ "image_base": {
+ "description": "The parameters of the Docker image to use when running a step.",
+ "properties": {
+ "name": { "$ref": "#/components/schemas/image_name" },
+ "run-as-user": {
+ "default": 0,
+ "description": "The UID of a user in the docker image to run as. Overrides image's default user, specified user UID must be an existing user in the image with a valid home directory.",
+ "title": "User ID",
+ "type": "integer"
+ }
+ },
+ "required": ["name"],
+ "title": "Docker Image Configuration",
+ "type": "object"
+ },
+ "image_basic_auth": {
+ "allOf": [
+ { "$ref": "#/components/schemas/image_base" },
+ {
+ "properties": {
+ "password": {
+ "description": "The password to use when fetching the Docker image.",
+ "title": "Docker Registry Password",
+ "type": "string"
+ },
+ "username": {
+ "description": "The username to use when fetching the Docker image.",
+ "title": "Docker Registry Username",
+ "type": "string"
+ }
+ },
+ "required": ["username", "password"],
+ "type": "object"
+ }
+ ]
+ },
+ "image_name": {
+ "default": "atlassian/default-image:latest",
+ "description": "The name of the Docker image which may or may not include registry URL, tag, and digest value.",
+ "title": "Docker Image Name",
+ "type": "string"
+ },
+ "image_no_auth": {
+ "allOf": [
+ { "$ref": "#/components/schemas/image_base" },
+ {
+ "properties": {
+ "aws": { "not": {} },
+ "password": { "not": {} },
+ "username": { "not": {} }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "import_inline_pipeline": {
+ "additionalProperties": false,
+ "properties": {
+ "import": {
+ "description": "The import needs to match the following format: {repo-slug|repo-uuid}:{tag-name|branch-name}:{pipeline-name}.",
+ "pattern": "^[^:]+:[^:]+:[^:]+$",
+ "title": "Identifier of the pipeline configuration to import",
+ "type": "string"
+ }
+ },
+ "required": ["import"],
+ "type": "object"
+ },
+ "import_pipeline": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/import_inline_pipeline" },
+ { "$ref": "#/components/schemas/import_source_pipeline" }
+ ]
+ },
+ "import_source": {
+ "additionalProperties": false,
+ "properties": {
+ "import": {
+ "description": "The import needs to match one of the following formats: {file-path} or {repo-slug|repo-uuid}:{tag-name|branch-name} or {repo-slug|repo-uuid}:{tag-name|branch-name}:{file-path}.",
+ "pattern": "^[^:]+(:[^:]+)?(:[^:]+)?$",
+ "title": "Location of pipeline configuration to import pipelines from",
+ "type": "string"
+ }
+ },
+ "required": ["import"],
+ "type": "object"
+ },
+ "import_source_pipeline": {
+ "additionalProperties": false,
+ "properties": {
+ "import": {
+ "description": "The import needs to match the following format: {pipeline-name}@{import-source-name}.",
+ "pattern": "^[^@]+@[^@]+$",
+ "title": "Identifier of the pipeline configuration to import",
+ "type": "string"
+ }
+ },
+ "required": ["import"],
+ "type": "object"
+ },
+ "items": {
+ "description": "List of steps, stages and parallel groups of the pipeline.",
+ "items": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/step_item" },
+ { "$ref": "#/components/schemas/parallel_item" },
+ { "$ref": "#/components/schemas/stage_item" },
+ { "$ref": "#/components/schemas/final_item" }
+ ]
+ },
+ "minItems": 1,
+ "title": "Pipeline Items",
+ "type": "array"
+ },
+ "items_with_variables": {
+ "description": "List of variables, steps, stages and parallel groups of the custom pipeline.",
+ "items": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/variables_item" },
+ { "$ref": "#/components/schemas/step_item" },
+ { "$ref": "#/components/schemas/parallel_item" },
+ { "$ref": "#/components/schemas/stage_item" }
+ ]
+ },
+ "minItems": 1,
+ "title": "Custom Pipeline Items",
+ "type": "array"
+ },
+ "max_time": {
+ "default": 120,
+ "description": "The maximum time a step can execute for in minutes.",
+ "example": 60,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "parallel": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/parallel_steps" },
+ { "$ref": "#/components/schemas/parallel_expanded" }
+ ]
+ },
+ "parallel_expanded": {
+ "properties": {
+ "fail-fast": {
+ "$ref": "#/components/schemas/fail_fast",
+ "description": "Stop the whole parallel group in case one of its steps fails."
+ },
+ "steps": { "$ref": "#/components/schemas/parallel_steps" }
+ },
+ "required": ["steps"],
+ "type": "object"
+ },
+ "parallel_item": {
+ "additionalProperties": false,
+ "properties": {
+ "parallel": { "$ref": "#/components/schemas/parallel" }
+ },
+ "type": "object"
+ },
+ "parallel_steps": {
+ "description": "List of steps in the parallel group to run concurrently.",
+ "items": { "$ref": "#/components/schemas/step_item" },
+ "minItems": 1,
+ "title": "Parallel Group Steps",
+ "type": "array"
+ },
+ "pipe": {
+ "description": "The pipe to execute.",
+ "example": {
+ "pipe": "atlassian/test-pipe:2.2.0",
+ "variables": { "BAZ": ["QUX", "QUZ"], "FOO": "BAR" }
+ },
+ "properties": {
+ "pipe": {
+ "description": "The full pipe identifier.",
+ "title": "Pipe Identifier",
+ "type": "string"
+ },
+ "variables": {
+ "additionalProperties": {
+ "description": "Environment variable value",
+ "oneOf": [
+ { "type": "string" },
+ {
+ "items": { "type": "string" },
+ "type": "array"
+ }
+ ]
+ },
+ "description": "Environment variables passed to the pipe container.",
+ "title": "Pipe Variables",
+ "type": "object"
+ }
+ },
+ "required": ["pipe"],
+ "title": "Pipe",
+ "type": "object"
+ },
+ "pipeline": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/items" },
+ { "$ref": "#/components/schemas/import_pipeline" }
+ ]
+ },
+ "pipelines_configuration": {},
+ "pull_requests_pipeline": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/items" },
+ {
+ "properties": {
+ "destinations": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/pipeline"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "runs_on": {
+ "oneOf": [
+ { "$ref": "#/components/schemas/runs_on_item" },
+ { "$ref": "#/components/schemas/runs_on_expanded" }
+ ]
+ },
+ "runs_on_expanded": {
+ "description": "Required labels of a runner to run the step.",
+ "example": ["self.hosted", "linux"],
+ "items": { "$ref": "#/components/schemas/runs_on_item" },
+ "maxItems": 10,
+ "minItems": 1,
+ "title": "Step Runner Labels",
+ "type": "array"
+ },
+ "runs_on_item": {
+ "description": "Label of a runner.",
+ "maxLength": 50,
+ "title": "Step Runner Label",
+ "type": "string"
+ },
+ "runtime": {
+ "description": "Custom step runtime",
+ "properties": {
+ "cloud": { "$ref": "#/components/schemas/cloud" },
+ "self-hosted": {
+ "$ref": "#/components/schemas/self-hosted"
+ }
+ },
+ "title": "Step Runtime",
+ "type": "object"
+ },
+ "script": {
+ "items": {
+ "oneOf": [
+ {
+ "description": "The command to execute.",
+ "example": "echo \"hello world\"",
+ "title": "Script Command",
+ "type": "string"
+ },
+ { "$ref": "#/components/schemas/pipe" }
+ ]
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "self-hosted": {
+ "description": "Custom self-hosted step runtime",
+ "properties": {
+ "cpu": {
+ "description": "Cpu available to runner.",
+ "title": "Cpu",
+ "type": "integer"
+ },
+ "memory": {
+ "description": "Memory (mb) available to runner.",
+ "title": "Memory",
+ "type": "integer"
+ },
+ "storage": {
+ "oneOf": [
+ {
+ "properties": {
+ "gcp": {
+ "$ref": "#/components/schemas/storage_gcp_auth"
+ }
+ },
+ "required": ["gcp"],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "aws": {
+ "$ref": "#/components/schemas/storage_aws_auth"
+ }
+ },
+ "required": ["aws"],
+ "type": "object"
+ }
+ ]
+ },
+ "volumes": {
+ "default": [],
+ "description": "Volumes to be mounted into the build container.",
+ "items": {
+ "description": "The volume to be mounted into the build container",
+ "example": "/host-directory:/workdir/path",
+ "title": "Volume mount",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "title": "Self-hosted step runtime",
+ "type": "object"
+ },
+ "service": {
+ "description": "Custom service properties",
+ "properties": {
+ "image": { "$ref": "#/components/schemas/image" },
+ "memory": {
+ "default": 1024,
+ "description": "Memory limit for the service container, in megabytes.",
+ "minimum": 128,
+ "title": "Service Memory",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Specifies Docker service container (to run Docker-in-Docker).",
+ "enum": ["docker"],
+ "type": "string"
+ },
+ "variables": {
+ "additionalProperties": {
+ "description": "Environment variable value",
+ "title": "Service Variable",
+ "type": "string"
+ },
+ "description": "Environment variables passed to the service container.",
+ "minProperties": 1,
+ "title": "Service Variables",
+ "type": "object"
+ }
+ },
+ "title": "Service definition",
+ "type": "object"
+ },
+ "size": {
+ "default": "1x",
+ "description": "The size of the step, sets the amount of resources allocated.",
+ "enum": ["1x", "2x", "4x", "8x", "16x", "32x"],
+ "title": "Step Size",
+ "type": "string"
+ },
+ "stage": {
+ "properties": {
+ "condition": {
+ "$ref": "#/components/schemas/condition",
+ "description": "The condition to execute the stage.",
+ "title": "Stage Condition"
+ },
+ "deployment": {
+ "description": "The deployment environment for the stage.",
+ "title": "Stage Deployment Environment",
+ "type": "string"
+ },
+ "environment": {
+ "description": "The environment for the stage.",
+ "title": "Stage Environment",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the stage.",
+ "title": "Stage Name",
+ "type": "string"
+ },
+ "steps": {
+ "description": "List of steps in the stage.",
+ "items": {
+ "properties": {
+ "step": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/step_base"
+ },
+ {
+ "properties": {
+ "condition": { "not": {} }
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "minItems": 1,
+ "title": "Stage Steps",
+ "type": "array"
+ },
+ "trigger": {
+ "$ref": "#/components/schemas/trigger",
+ "description": "The trigger used for the pipeline stage.",
+ "title": "Stage Trigger"
+ }
+ },
+ "required": ["steps"],
+ "type": "object"
+ },
+ "stage_item": {
+ "additionalProperties": false,
+ "properties": {
+ "stage": { "$ref": "#/components/schemas/stage" }
+ },
+ "type": "object"
+ },
+ "step": {
+ "allOf": [
+ { "$ref": "#/components/schemas/step_base" },
+ {
+ "properties": {
+ "condition": {
+ "$ref": "#/components/schemas/condition",
+ "description": "The condition to execute the step.",
+ "title": "Step Condition"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "step_base": {
+ "properties": {
+ "after-script": {
+ "$ref": "#/components/schemas/script",
+ "description": "List of commands to execute after the step succeeds or fails.",
+ "title": "Step Post Script"
+ },
+ "artifacts": { "$ref": "#/components/schemas/artifacts" },
+ "caches": {
+ "description": "Caches enabled for the step.",
+ "items": {
+ "description": "Reference to a cache defined under global definitions.",
+ "title": "Cache Name",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Step Caches",
+ "type": "array"
+ },
+ "clone": { "$ref": "#/components/schemas/clone" },
+ "concurrency-group": {
+ "description": "The concurrency group for the step.",
+ "maxLength": 50,
+ "title": "Concurrency group",
+ "type": "string"
+ },
+ "custom": {
+ "description": "The name of the custom pipeline to run, if the step type is pipeline.",
+ "title": "Custom",
+ "type": "string"
+ },
+ "deployment": {
+ "description": "The deployment environment for the step.",
+ "title": "Step Deployment Environment",
+ "type": "string"
+ },
+ "environment": {
+ "description": "The environment for the step.",
+ "title": "Step Environment",
+ "type": "string"
+ },
+ "fail-fast": {
+ "$ref": "#/components/schemas/fail_fast",
+ "description": "Stop the parent parallel group in case this step fails."
+ },
+ "image": { "$ref": "#/components/schemas/image" },
+ "input-variables": {
+ "additionalProperties": {
+ "description": "input variable value",
+ "oneOf": [{ "type": "string" }]
+ },
+ "description": "Variables from the parent step that are provided to the child pipeline.",
+ "example": {
+ "VAR_1": "VALUE_1",
+ "VAR_2": "${BITBUCKET_BRANCH}"
+ },
+ "maxProperties": 20,
+ "minProperties": 1,
+ "title": "Input Variables",
+ "type": "object"
+ },
+ "max-time": {
+ "$ref": "#/components/schemas/max_time",
+ "title": "Step Maximum Time"
+ },
+ "name": {
+ "description": "The name of the step.",
+ "example": "Build and test",
+ "title": "Step Name",
+ "type": "string"
+ },
+ "oidc": {
+ "description": "Enables the use of OpenID Connect to connect a pipeline step to a resource server.",
+ "type": "boolean"
+ },
+ "runs-on": { "$ref": "#/components/schemas/runs_on" },
+ "runtime": { "$ref": "#/components/schemas/runtime" },
+ "script": {
+ "$ref": "#/components/schemas/script",
+ "description": "List of commands that are executed in sequence.",
+ "title": "Step Script"
+ },
+ "services": {
+ "description": "Services enabled for the step.",
+ "items": {
+ "description": "Reference to a service defined under global definitions.",
+ "title": "Service Name",
+ "type": "string"
+ },
+ "maxItems": 5,
+ "minItems": 1,
+ "title": "Step Services",
+ "type": "array"
+ },
+ "size": { "$ref": "#/components/schemas/size" },
+ "trigger": {
+ "$ref": "#/components/schemas/trigger",
+ "description": "The trigger used for the pipeline step.",
+ "title": "Step Trigger"
+ },
+ "type": {
+ "default": "shared",
+ "description": "The type of the step.",
+ "enum": ["inline", "pipeline"],
+ "title": "Step Type",
+ "type": "string"
+ }
+ },
+ "title": "Pipeline Step",
+ "type": "object"
+ },
+ "step_item": {
+ "additionalProperties": false,
+ "properties": {
+ "step": { "$ref": "#/components/schemas/step" }
+ },
+ "type": "object"
+ },
+ "storage_aws_auth": {
+ "description": "Amazon web services self hosted storage",
+ "oneOf": [
+ { "required": ["access-key", "secret-key"] },
+ { "required": ["oidc-role"] }
+ ],
+ "properties": {
+ "access-key": {
+ "description": "The AWS access key",
+ "type": "string"
+ },
+ "bucket": {
+ "description": "The name of the S3 bucket",
+ "type": "string"
+ },
+ "oidc-role": {
+ "description": "The OIDC role to assume",
+ "type": "string"
+ },
+ "region": {
+ "description": "The AWS region",
+ "type": "string"
+ },
+ "secret-key": {
+ "description": "The AWS secret key",
+ "type": "string"
+ }
+ },
+ "required": ["bucket", "region"],
+ "title": "Custom aws self hosted storage",
+ "type": "object"
+ },
+ "storage_gcp_auth": {
+ "description": "Google Cloud Platform self hosted storage",
+ "properties": {
+ "bucket": {
+ "description": "The name of the GCP bucket",
+ "type": "string"
+ },
+ "key-file": {
+ "description": "The GCP key file contents encoded in Base64 format",
+ "type": "string"
+ }
+ },
+ "required": ["bucket", "key-file"],
+ "title": "Custom GCP self hosted storage",
+ "type": "object"
+ },
+ "trigger": {
+ "default": "automatic",
+ "enum": ["automatic", "manual"],
+ "type": "string"
+ },
+ "trigger_configuration": {
+ "description": "Configuration that defines when and which pipelines to trigger.",
+ "properties": {
+ "condition": {
+ "description": "Boolean expression that determines whether the trigger should execute.",
+ "example": "BITBUCKET_BRANCH == \"main\"",
+ "title": "Trigger Condition",
+ "type": "string"
+ },
+ "pipelines": {
+ "description": "List of pipeline names to trigger when the condition is met. Can reference pipelines from the custom section.",
+ "items": {
+ "description": "Name of a pipeline defined in the custom pipelines section.",
+ "title": "Pipeline Name",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Pipeline Names",
+ "type": "array"
+ }
+ },
+ "required": ["condition", "pipelines"],
+ "title": "Trigger Configuration",
+ "type": "object"
+ },
+ "trigger_configuration_list": {
+ "description": "List of trigger configurations for a specific trigger type.",
+ "items": {
+ "$ref": "#/components/schemas/trigger_configuration"
+ },
+ "minItems": 1,
+ "title": "Trigger Configuration List",
+ "type": "array"
+ },
+ "trigger_context": {
+ "description": "Context of the trigger that started the pipeline. Only returned for pipelines triggered by a parent step.",
+ "properties": {
+ "parent_pipeline_run_uuid": {
+ "description": "The UUID of the pipeline run that contains the parent step that triggered this pipeline.",
+ "example": "{00000000-0000-0000-0000-000000000000}",
+ "title": "Parent Pipeline Run UUID",
+ "type": "string"
+ },
+ "parent_pipeline_uuid": {
+ "description": "The UUID of the pipeline that contains the parent step that triggered this pipeline.",
+ "example": "{00000000-0000-0000-0000-000000000000}",
+ "title": "Parent Pipeline UUID",
+ "type": "string"
+ },
+ "parent_step_uuid": {
+ "description": "The UUID of the parent step that triggered this pipeline.",
+ "example": "{00000000-0000-0000-0000-000000000000}",
+ "title": "Parent Step UUID",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of trigger that started the pipeline.",
+ "enum": ["parent_step"],
+ "title": "Pipeline Trigger",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "variables_item": {
+ "additionalProperties": false,
+ "properties": {
+ "variables": {
+ "description": "List of variables for the custom pipeline.",
+ "items": {
+ "description": "Settings for the custom variable.",
+ "properties": {
+ "allowed-values": {
+ "description": "A list of values that are allowed for the variable.",
+ "items": {
+ "title": "Allowed Variable Value",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Allowed Variable Values",
+ "type": "array"
+ },
+ "default": {
+ "title": "Default Variable Value",
+ "type": "string"
+ },
+ "description": {
+ "title": "Variable Description",
+ "type": "string"
+ },
+ "name": {
+ "title": "Variable Name",
+ "type": "string"
+ }
+ },
+ "required": ["name"],
+ "title": "Custom Pipeline Variable",
+ "type": "object"
+ },
+ "minItems": 1,
+ "title": "Custom Pipeline Variables",
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+}
diff --git a/nvim/lua/config/lsp.lua b/nvim/lua/config/lsp.lua
index 3a5d6b6..b12b10d 100644
--- a/nvim/lua/config/lsp.lua
+++ b/nvim/lua/config/lsp.lua
@@ -19,16 +19,29 @@ vim.lsp.config('jsonls', {
-- requires bash-language-server, shellcheck is a nice optional addition
vim.lsp.enable('bashls')
+-- dymanic path to bitbucket config schema
+local bb_schema_path = vim.fn.stdpath("config") .. "/bitbucket-pipelines.json"
+
-- npm i -g yaml-language-server
-vim.lsp.enable('yamlls', {
+vim.lsp.enable('yamlls')
+vim.lsp.config('yamlls', {
settings = {
yaml = {
- schemas = require('schemastore').yaml.schemas(),
- validate = { enable = true },
+ schemas = require('schemastore').yaml.schemas {
+ replace = {
+ ['bitbucket-pipelines'] = {
+ description = 'Patched pipelines schema',
+ name = 'bitbucket-pipelines',
+ fileMatch = 'bitbucket-pipelines.yml',
+ url = 'file://' .. bb_schema_path,
+ }
+ }
+ },
}
}
})
+-- requires clang installed
vim.lsp.enable('clangd')
vim.lsp.enable('eslint')
vim.lsp.enable('cssls')