Loading kicker-aggregated.json 0 → 100644 +1 −0 File added.Preview size limit exceeded, changes collapsed. Show changes process-templates.sh +21 −8 Original line number Diff line number Diff line Loading @@ -54,13 +54,17 @@ function maybe_process_template() { project_name=$(echo "$project_json" | jq -r .path) project_path=$(echo "$project_json" | jq -r .path_with_namespace) # get latest tag tag=$(curl -sSf -H "$AUTH_HEADER" "$API_URL/projects/$project_id/repository/tags?per_page=1" | jq -r '.[0].name') # get tags (latest first, oldest last) all_tags=$(curl -sSf -H "$AUTH_HEADER" "$API_URL/projects/$project_id/repository/tags?per_page=100" | jq -r '.[].name') # filter tags matching preferred pattern, or all tags if none matches matching_tags=$(echo "$all_tags" | grep -E "$PREF_TAG_PATTERN" || echo "$all_tags") tag=$(echo "$matching_tags" | head -n 1) if [[ -n "$tag" ]] && [[ "$tag" != "null" ]] then project_path_enc=${project_path//\//%2f} web_url=$(echo "$project_json" | jq -r .web_url) add_info_json="{extension_id: $extension_json, project: {tag: \"$tag\", name: \"$project_name\", path: \"$project_path\", web_url: \"$web_url\"}}" tags_array_json=$(echo "$all_tags" | jq --raw-input -c . | jq --slurp -c .) add_info_json="{extension_id: $extension_json, project: {tag: \"$tag\", tags: $tags_array_json, name: \"$project_name\", path: \"$project_path\", web_url: \"$web_url\"}}" # get kicker.json file from latest tag if template_json=$(curl -sf -H "$AUTH_HEADER" "$API_URL/projects/$project_id/repository/files/kicker.json/raw?ref=$tag") Loading Loading @@ -196,7 +200,7 @@ function build_aggregated_json() { fi # 3: assemble jq -s '.' ${tmp_dir}/*/template-final.json | jq "{extensions: $extensions_array_json, presets: $presets_array_json, templates: .}" > "$JSON_OUT" jq -s -c '.' ${tmp_dir}/*/template-final.json | jq -c "{extensions: $extensions_array_json, presets: $presets_array_json, templates: .}" > "$JSON_OUT" } function build_aggregated_toc() { Loading Loading @@ -244,6 +248,9 @@ DOC_OUT=./docs KICKER_RESOURCE_GROUPS=${KICKER_RESOURCE_GROUPS:-'[{"path": "to-be-continuous", "visibility": "public"}]'} # preferred tag pattern to include: minor version alias by default (X.Y) PREF_TAG_PATTERN='^v?[0-9]+\.[0-9]+$' log_info parse params # parse arguments Loading Loading @@ -312,6 +319,11 @@ case $key in shift # past argument shift # past value ;; --tag-pattern) PREF_TAG_PATTERN="$2" shift # past argument shift # past value ;; *) # unknown option POSITIONAL+=("$1") # save it in an array for later shift # past argument Loading @@ -328,6 +340,7 @@ log_info "- GitLab API url (--api) : \\e[33;1m${API_URL}\\e[0m" log_info "- kicker output file (--json-out) : \\e[33;1m${JSON_OUT}\\e[0m" log_info "- readme output dir (--doc-out) : \\e[33;1m${DOC_OUT}\\e[0m" log_info "- groups to process (--groups) : \\e[33;1m${KICKER_RESOURCE_GROUPS}\\e[0m" log_info "- pref. tag pattern (--tag-pattern): \\e[33;1m${PREF_TAG_PATTERN}\\e[0m" # create a temporary directory to download individual kicker files tmp_dir=$(mktemp -d) Loading Loading
kicker-aggregated.json 0 → 100644 +1 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
process-templates.sh +21 −8 Original line number Diff line number Diff line Loading @@ -54,13 +54,17 @@ function maybe_process_template() { project_name=$(echo "$project_json" | jq -r .path) project_path=$(echo "$project_json" | jq -r .path_with_namespace) # get latest tag tag=$(curl -sSf -H "$AUTH_HEADER" "$API_URL/projects/$project_id/repository/tags?per_page=1" | jq -r '.[0].name') # get tags (latest first, oldest last) all_tags=$(curl -sSf -H "$AUTH_HEADER" "$API_URL/projects/$project_id/repository/tags?per_page=100" | jq -r '.[].name') # filter tags matching preferred pattern, or all tags if none matches matching_tags=$(echo "$all_tags" | grep -E "$PREF_TAG_PATTERN" || echo "$all_tags") tag=$(echo "$matching_tags" | head -n 1) if [[ -n "$tag" ]] && [[ "$tag" != "null" ]] then project_path_enc=${project_path//\//%2f} web_url=$(echo "$project_json" | jq -r .web_url) add_info_json="{extension_id: $extension_json, project: {tag: \"$tag\", name: \"$project_name\", path: \"$project_path\", web_url: \"$web_url\"}}" tags_array_json=$(echo "$all_tags" | jq --raw-input -c . | jq --slurp -c .) add_info_json="{extension_id: $extension_json, project: {tag: \"$tag\", tags: $tags_array_json, name: \"$project_name\", path: \"$project_path\", web_url: \"$web_url\"}}" # get kicker.json file from latest tag if template_json=$(curl -sf -H "$AUTH_HEADER" "$API_URL/projects/$project_id/repository/files/kicker.json/raw?ref=$tag") Loading Loading @@ -196,7 +200,7 @@ function build_aggregated_json() { fi # 3: assemble jq -s '.' ${tmp_dir}/*/template-final.json | jq "{extensions: $extensions_array_json, presets: $presets_array_json, templates: .}" > "$JSON_OUT" jq -s -c '.' ${tmp_dir}/*/template-final.json | jq -c "{extensions: $extensions_array_json, presets: $presets_array_json, templates: .}" > "$JSON_OUT" } function build_aggregated_toc() { Loading Loading @@ -244,6 +248,9 @@ DOC_OUT=./docs KICKER_RESOURCE_GROUPS=${KICKER_RESOURCE_GROUPS:-'[{"path": "to-be-continuous", "visibility": "public"}]'} # preferred tag pattern to include: minor version alias by default (X.Y) PREF_TAG_PATTERN='^v?[0-9]+\.[0-9]+$' log_info parse params # parse arguments Loading Loading @@ -312,6 +319,11 @@ case $key in shift # past argument shift # past value ;; --tag-pattern) PREF_TAG_PATTERN="$2" shift # past argument shift # past value ;; *) # unknown option POSITIONAL+=("$1") # save it in an array for later shift # past argument Loading @@ -328,6 +340,7 @@ log_info "- GitLab API url (--api) : \\e[33;1m${API_URL}\\e[0m" log_info "- kicker output file (--json-out) : \\e[33;1m${JSON_OUT}\\e[0m" log_info "- readme output dir (--doc-out) : \\e[33;1m${DOC_OUT}\\e[0m" log_info "- groups to process (--groups) : \\e[33;1m${KICKER_RESOURCE_GROUPS}\\e[0m" log_info "- pref. tag pattern (--tag-pattern): \\e[33;1m${PREF_TAG_PATTERN}\\e[0m" # create a temporary directory to download individual kicker files tmp_dir=$(mktemp -d) Loading