aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@users.noreply.github.com>2024-07-22 19:56:58 -0400
committerGitHub <noreply@github.com>2024-07-22 19:56:58 -0400
commitb506bb73be5e4c8dde16c5c8bd613c00b3d75565 (patch)
tree983eb884ba6f4e9413506020e62520e87272f4ee /include
parent9489d31f6314322d26ec43196284b94069d6cd3a (diff)
downloadstasis-b506bb73be5e4c8dde16c5c8bd613c00b3d75565.tar.gz
Check release (#14)
* Add jfrog_cli_rt_search() and JFRT_Search structure * Ensure authentication arguments are written before a subsystem task's arguments * When artifactory is enabled check if the release is already present. * When artifactory is disabled the check will be made against the local filesystem.
Diffstat (limited to 'include')
-rw-r--r--include/artifactory.h42
1 files changed, 40 insertions, 2 deletions
diff --git a/include/artifactory.h b/include/artifactory.h
index 6880d17..c6e5c2b 100644
--- a/include/artifactory.h
+++ b/include/artifactory.h
@@ -88,6 +88,31 @@ struct JFRT_Download {
bool validate_symlinks;
};
+struct JFRT_Search {
+ char *bundle;
+ bool count;
+ char *sort_by;
+ char *sort_order;
+ int limit;
+ int offset;
+ char *spec;
+ char *spec_vars;
+ char *props;
+ bool recursive;
+ char *build;
+ bool fail_no_op;
+ char *exclusions;
+ char *exclude_artifacts;
+ char *exclude_patterns;
+ char *exclude_props;
+ char *archive_entries;
+ char *include;
+ char *include_deps;
+ char *include_dirs;
+ char *project;
+ char *transitive;
+};
+
/**
* Download the JFrog CLI tool from jfrog.com
* ```c
@@ -135,17 +160,19 @@ int artifactory_download_cli(char *dest,
* auth_ctx.url = strdup("https://myserver.tld/artifactory");
* jfrt_auth_init(&auth_ctx);
*
- * if (jfrog_cli(&auth_ctx, "ping") {
+ * if (jfrog_cli(&auth_ctx, "rt", "ping", NULL) {
* fprintf(stderr, "Failed to ping artifactory server: %s\n", auth_ctx.url);
* exit(1);
* }
* ```
*
* @param auth JFRT_Auth structure
+ * @param subsystem "jf" tool subsystem (i.e. "rt")
+ * @param task "jf" tool task "upload", "download", etc
* @param args Command line arguments to pass to "jf" tool
* @return exit code from "jf"
*/
-int jfrog_cli(struct JFRT_Auth *auth, char *args);
+int jfrog_cli(struct JFRT_Auth *auth, const char *subsystem, const char *task, char *args);
/**
* Issue an Artifactory server ping
@@ -225,6 +252,17 @@ int jfrog_cli_rt_upload(struct JFRT_Auth *auth, struct JFRT_Upload *ctx, char *s
int jfrog_cli_rt_download(struct JFRT_Auth *auth, struct JFRT_Download *ctx, char *repo_path, char *dest);
/**
+ * Search for files in an Artifactory repository
+ *
+ * @param auth JFRT_Auth structure
+ * @param ctx JFRT_Search structure
+ * @param repo_path Remote repository w/ file pattern
+ * @param dest Local destination path
+ * @return exit code from "jf"
+ */
+int jfrog_cli_rt_search(struct JFRT_Auth *auth, struct JFRT_Search *ctx, char *repo_path, char *pattern);
+
+/**
* Collect runtime data for Artifactory build object.
*
* ```c