Publisher dedup check + run.py skip display
- Skip skills already in skills/ directory (no duplicate PRs) - Run.py shows SKIP status with reason - Fixed: was re-publishing same 5 skills every run
This commit is contained in:
@@ -52,6 +52,18 @@ def publish_skill(review_result, config):
|
|||||||
subprocess.run(["git", "config", "user.email", "hermes@agent.local"], cwd=repo_dir)
|
subprocess.run(["git", "config", "user.email", "hermes@agent.local"], cwd=repo_dir)
|
||||||
subprocess.run(["git", "config", "user.name", "Hermes Pipeline"], cwd=repo_dir)
|
subprocess.run(["git", "config", "user.name", "Hermes Pipeline"], cwd=repo_dir)
|
||||||
|
|
||||||
|
# Check for duplicates in skills/ directory
|
||||||
|
skills_dir = os.path.join(repo_dir, "skills")
|
||||||
|
existing_skills = []
|
||||||
|
if os.path.isdir(skills_dir):
|
||||||
|
existing_skills = [d for d in os.listdir(skills_dir) if os.path.isdir(os.path.join(skills_dir, d))]
|
||||||
|
|
||||||
|
if skill_name in existing_skills:
|
||||||
|
return {
|
||||||
|
"status": "SKIP",
|
||||||
|
"reason": f"Skill '{skill_name}' already exists in skills/ directory",
|
||||||
|
}
|
||||||
|
|
||||||
# Create skill directory
|
# Create skill directory
|
||||||
skill_dir = os.path.join(repo_dir, "skills", skill_name)
|
skill_dir = os.path.join(repo_dir, "skills", skill_name)
|
||||||
os.makedirs(skill_dir, exist_ok=True)
|
os.makedirs(skill_dir, exist_ok=True)
|
||||||
|
|||||||
@@ -137,6 +137,8 @@ def main():
|
|||||||
if publish_output.get("status") == "PUBLISHED":
|
if publish_output.get("status") == "PUBLISHED":
|
||||||
print(f" ✓ Published! PR: {publish_output.get('pr_url', '')}")
|
print(f" ✓ Published! PR: {publish_output.get('pr_url', '')}")
|
||||||
results["published"] += 1
|
results["published"] += 1
|
||||||
|
elif publish_output.get("status") == "SKIP":
|
||||||
|
print(f" ⏸ Skipped: {publish_output.get('reason', '')}")
|
||||||
else:
|
else:
|
||||||
print(f" ! {publish_output.get('status', '?')}: {publish_output.get('message', publish_output.get('error', ''))[:100]}")
|
print(f" ! {publish_output.get('status', '?')}: {publish_output.get('message', publish_output.get('error', ''))[:100]}")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user