diff --git a/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java b/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java index bd7d8ca7a..fdf0c9103 100644 --- a/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java +++ b/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java @@ -568,12 +568,16 @@ public class PipelineYmlSchema implements YamlSchema { AbstractType get = f.ybean("GitGetParams"); addProp(get, "depth", t_pos_integer); + addProp(get, "fetch_tags", t_boolean); addProp(get, "submodules", f.yany("GitSubmodules").addHints("all", "none")); addProp(get, "submodule_recursive", t_boolean); addProp(get, "submodule_remote", t_boolean); addProp(get, "disable_git_lfs", t_boolean); addProp(get, "clean_tags", t_boolean); addProp(get, "fetch", t_strings).isDeprecated(true); //Warning: t_strings is just a guess. This property is undocumented. The example I've seen seem to use list of git branch/tag names. + addProp(get, "short_ref_format", t_ne_string); + addProp(get, "timestamp_format", t_ne_string); + addProp(get, "describe_ref_options", t_ne_string); AbstractType put = f.ybean("GitPutParams"); addProp(put, "repository", t_ne_string).isPrimary(true); diff --git a/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/describe_ref_options.md b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/describe_ref_options.md new file mode 100644 index 000000000..a4de7d89d --- /dev/null +++ b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/describe_ref_options.md @@ -0,0 +1 @@ +*Optional.* When populating `.git/describe_ref` use these options to call [`git describe`](https://git-scm.com/docs/git-describe). Defaults to `--always --dirty --broken`. \ No newline at end of file diff --git a/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/fetch_tags.md b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/fetch_tags.md new file mode 100644 index 000000000..c294e2d0f --- /dev/null +++ b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/fetch_tags.md @@ -0,0 +1,4 @@ +*Optional.* If `true` the flag `--tags` will be used to +fetch all tags in the repository. If `false` no tags will be fetched. + +Will override `fetch_tags` source configuration if defined. \ No newline at end of file diff --git a/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/short_ref_format.md b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/short_ref_format.md new file mode 100644 index 000000000..0059ae749 --- /dev/null +++ b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/short_ref_format.md @@ -0,0 +1 @@ +*Optional.* When populating `.git/short_ref` use this `printf` format. Defaults to `%s`. \ No newline at end of file diff --git a/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/timestamp_format.md b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/timestamp_format.md new file mode 100644 index 000000000..24d9e1b4a --- /dev/null +++ b/headless-services/concourse-language-server/src/main/resources/desc/GitGetParams/timestamp_format.md @@ -0,0 +1 @@ +*Optional.* When populating `.git/commit_timestamp` use this options to pass to [`git log --date`](https://git-scm.com/docs/git-log#Documentation/git-log.txt---dateltformatgt). Defaults to `iso8601`. \ No newline at end of file diff --git a/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java b/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java index 3c90a7421..539237193 100644 --- a/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java +++ b/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java @@ -1780,8 +1780,14 @@ public class ConcourseEditorTest { , "depth: <*>" , + "describe_ref_options: <*>" + , "disable_git_lfs: <*>" , + "fetch_tags: <*>" + , + "short_ref_format: <*>" + , "submodule_recursive: <*>" , "submodule_remote: <*>" @@ -1789,6 +1795,8 @@ public class ConcourseEditorTest { "submodules:\n"+ " <*>" , + "timestamp_format: <*>" + , "fetch:\n" + // Deprecated, so suggested last " - <*>" ); @@ -1817,19 +1825,26 @@ public class ConcourseEditorTest { " - get: my-git\n" + " params:\n" + " depth: -1\n" + + " fetch_tags: is-fetch\n" + " submodules: none\n" + " disable_git_lfs: not-bool-a\n" + " submodule_recursive: not-bool-b\n" + " submodule_remote: not-bool-c\n" + - " clean_tags: not-bool-d\n" + " clean_tags: not-bool-d\n" + + " short_ref_format: '%s'\n" + + " timestamp_format: iso8601\n" + + " describe_ref_options: '--allways --broken'" ); editor.assertHoverContains("depth", "using the `--depth` option"); + editor.assertHoverContains("fetch_tags", "fetch all tags in the repository"); editor.assertHoverContains("submodules", "If `none`, submodules will not be fetched"); editor.assertHoverContains("submodule_recursive", "If `false`, a flat submodules checkout is performed"); editor.assertHoverContains("submodule_remote", "If `true`, the submodules are checked out for"); editor.assertHoverContains("disable_git_lfs", "will not fetch Git LFS files"); editor.assertHoverContains("clean_tags", "If `true` all incoming tags will be deleted"); + editor.assertHoverContains("short_ref_format", "`.git/short_ref` use this `printf` format"); + editor.assertHoverContains("describe_ref_options", "When populating `.git/describe_ref` use these options"); } @Test public void gitResourceGetParamsReconcile() throws Exception { @@ -1843,17 +1858,22 @@ public class ConcourseEditorTest { " - get: my-git\n" + " params:\n" + " depth: -1\n" + - " disable_git_lfs: not-bool-a\n" + - " submodule_recursive: not-bool-b\n" + - " submodule_remote: not-bool-c\n" + - " clean_tags: not-bool-d\n" + " fetch_tags: not-bool-a\n" + + " disable_git_lfs: not-bool-b\n" + + " submodule_recursive: not-bool-c\n" + + " submodule_remote: not-bool-d\n" + + " clean_tags: not-bool-e\n" + + " short_ref_format: goo%s\n" + + " timestamp_format: iso8601\n" + + " describe_ref_options: whatever\n" ); editor.assertProblems( "-1|must be at least 0", "not-bool-a|'boolean'", "not-bool-b|'boolean'", "not-bool-c|'boolean'", - "not-bool-d|'boolean'" + "not-bool-d|'boolean'", + "not-bool-e|'boolean'" ); }