diff --git a/api/repo_api.py b/api/repo_api.py index e77b7e8..0835e55 100644 --- a/api/repo_api.py +++ b/api/repo_api.py @@ -2798,7 +2798,17 @@ def git_create_tag(repo): journal.send(f"Can't create tag. Already found in repository {repo}", PRIORITY=journal.LOG_ERR, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG") return jsonify({"error": "Tag already exists"}), 409 - git_repo.create_tag(tag, ref = data["commit"], message = commit_message) + try: + git_repo.create_tag(tag, ref = data["commit"], message = commit_message) + except git.exc.GitCommandError as ge: + if "not a valid tag name" in ge.stderr: + journal.send(f"Tag name {tag} is invalid", PRIORITY=journal.LOG_ERR, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG") + return jsonify({"error" : "Invalid tag name"}), 400 + else: + journal.send(f"Git error {ge}", PRIORITY=journal.LOG_ERR, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG") + return jsonify({"error" : "Error when performing git command"}), 500 + + journal.send(f"Tag {tag} created in repo {repo}", PRIORITY=journal.LOG_ERR, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG") return jsonify({"status": "created"}), 200