diff --git a/.github/workflows/test_and_curl.yaml b/.github/workflows/test_and_curl.yaml
index 69d10f4..b697310 100644
--- a/.github/workflows/test_and_curl.yaml
+++ b/.github/workflows/test_and_curl.yaml
@@ -44,7 +44,7 @@ jobs:
- name: POST payload to your API
run: |
- curl -sS -X POST 'https://tu-api.example.com/hooks/github-release' \
+ curl -sS -X POST 'https://cacell16-pruebas-2025-12-08-26348625.dev.odoo.com/github/release-webhook' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token_de_prueba_123' \
--data-binary @payload.json \
diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..0fc6cc7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+*.project
+*.pydevproject
+*.settings
+*.pyc
+/.idea/
+/.classpath
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..13bb971
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,4 @@
+{
+ "xml.symbols.enabled": false,
+ "python.languageServer": "None"
+}
\ No newline at end of file
diff --git a/trescloud_github_release/__init__.py b/trescloud_github_release/__init__.py
deleted file mode 100644
index 724cd13..0000000
--- a/trescloud_github_release/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# -*- coding: utf-8 -*-
-from . import models
-from . import controllers
\ No newline at end of file
diff --git a/trescloud_github_release/__manifest__.py b/trescloud_github_release/__manifest__.py
deleted file mode 100644
index 62b3a67..0000000
--- a/trescloud_github_release/__manifest__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 -*-
-{
- "name": "Trescloud - GitHub Release Webhook",
- "summary": "Endpoint para recibir webhook de GitHub y registrar payloads",
- "version": "16.0.1.0.0",
- "author": "Trescloud",
- "license": "LGPL-3",
- "depends": ["base"],
- "data": [
- "security/security.xml",
- "security/ir.model.access.csv",
- "views/github_webhook_log_views.xml",
- ],
- "application": False,
- "installable": True,
-}
\ No newline at end of file
diff --git a/trescloud_github_release/controllers/__init__.py b/trescloud_github_release/controllers/__init__.py
deleted file mode 100644
index daeb001..0000000
--- a/trescloud_github_release/controllers/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# -*- coding: utf-8 -*-
-from . import webhook
\ No newline at end of file
diff --git a/trescloud_github_release/controllers/webhook.py b/trescloud_github_release/controllers/webhook.py
deleted file mode 100644
index e957709..0000000
--- a/trescloud_github_release/controllers/webhook.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# -*- coding: utf-8 -*-
-import json
-from datetime import datetime
-from odoo import http
-from odoo.http import request
-
-class GithubReleaseWebhookController(http.Controller):
-
- @http.route('/github/release-webhook', type='http', auth='public', methods=['POST'], csrf=False)
- def github_release_webhook(self, **kwargs):
- """Endpoint mínimo para recibir el JSON del workflow de GitHub.
- Crea un registro en github.webhook.log con los campos más útiles.
- """
- # Lee el cuerpo como bytes y parsea JSON
- try:
- raw = request.httprequest.data
- payload = json.loads(raw.decode('utf-8')) if raw else (request.jsonrequest or {})
- except Exception:
- payload = request.jsonrequest or {}
- raw = json.dumps(payload).encode("utf-8")
-
- # Extrae campos esperados (según tu workflow)
- repo = payload.get("repository")
- repo_owner = payload.get("repo_owner")
- pr_number = payload.get("pr_number")
- title = payload.get("title")
- body = payload.get("body")
- html_url = payload.get("html_url")
- state = payload.get("state")
- merged = payload.get("merged")
- merged_at = payload.get("merged_at")
- merged_by = payload.get("merged_by")
- base_branch = payload.get("base_branch")
- head_branch = payload.get("head_branch")
- merge_commit_sha = payload.get("merge_commit_sha")
- labels = payload.get("labels")
- assignees = payload.get("assignees")
- requested_reviewers = payload.get("requested_reviewers")
-
- # Convert merged_at si viene como string ISO
- merged_at_dt = False
- if isinstance(merged_at, str):
- try:
- merged_at_dt = datetime.fromisoformat(merged_at.replace('Z', '+00:00')).replace(tzinfo=None)
- except Exception:
- merged_at_dt = False
-
- # Crea el registro
- rec = request.env["github.webhook.log"].sudo().create({
- "name": title,
- "repository": repo,
- "repo_owner": repo_owner,
- "pr_number": pr_number or 0,
- "html_url": html_url,
- "state": state,
- "merged": bool(merged),
- "merged_at": merged_at_dt or False,
- "merged_by": merged_by,
- "base_branch": base_branch,
- "head_branch": head_branch,
- "merge_commit_sha": merge_commit_sha,
- "labels": json.dumps(labels, ensure_ascii=False) if labels is not None else False,
- "assignees": json.dumps(assignees, ensure_ascii=False) if assignees is not None else False,
- "requested_reviewers": json.dumps(requested_reviewers, ensure_ascii=False) if requested_reviewers is not None else False,
- "body": body,
- "raw_payload": raw.decode('utf-8') if isinstance(raw, (bytes, bytearray)) else json.dumps(payload, ensure_ascii=False),
- })
-
- # Devuelve un JSON mínimo
- headers = [('Content-Type', 'application/json; charset=utf-8')]
- return request.make_response(
- json.dumps({"ok": True, "id": rec.id}),
- headers=headers,
- status=200,
- )
\ No newline at end of file
diff --git a/trescloud_github_release/models/__init__.py b/trescloud_github_release/models/__init__.py
deleted file mode 100644
index fa26015..0000000
--- a/trescloud_github_release/models/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# -*- coding: utf-8 -*-
-from . import github_webhook_log
\ No newline at end of file
diff --git a/trescloud_github_release/models/github_webhook_log.py b/trescloud_github_release/models/github_webhook_log.py
deleted file mode 100644
index 2199bd2..0000000
--- a/trescloud_github_release/models/github_webhook_log.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-from odoo import fields, models
-
-class GithubWebhookLog(models.Model):
- _name = "github.webhook.log"
- _description = "GitHub Webhook Log"
- _order = "create_date desc"
-
- name = fields.Char("Título", index=True)
- repository = fields.Char("Repositorio")
- repo_owner = fields.Char("Owner")
- pr_number = fields.Integer("PR #")
- html_url = fields.Char("URL del PR")
- state = fields.Char("Estado")
- merged = fields.Boolean("Merged")
- merged_at = fields.Datetime("Merged At", help="Fecha/hora enviada por GitHub")
- merged_by = fields.Char("Merged by")
- base_branch = fields.Char("Base branch")
- head_branch = fields.Char("Head branch")
- merge_commit_sha = fields.Char("Merge commit SHA")
- labels = fields.Char("Labels (JSON)")
- assignees = fields.Char("Assignees (JSON)")
- requested_reviewers = fields.Char("Requested Reviewers (JSON)")
-
- body = fields.Text("Descripción (PR body)")
- raw_payload = fields.Text("Payload crudo (JSON)")
\ No newline at end of file
diff --git a/trescloud_github_release/security/ir.model.access.csv b/trescloud_github_release/security/ir.model.access.csv
deleted file mode 100644
index 0b182f3..0000000
--- a/trescloud_github_release/security/ir.model.access.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_github_webhook_log_user,access_github_webhook_log_user,model_github_webhook_log,base.group_system,1,1,1,1
-access_github_webhook_log_readonly,access_github_webhook_log_readonly,model_github_webhook_log,trescloud_github_release.group_github_webhook_user,1,0,0,0
\ No newline at end of file
diff --git a/trescloud_github_release/security/security.xml b/trescloud_github_release/security/security.xml
deleted file mode 100644
index 4e50bea..0000000
--- a/trescloud_github_release/security/security.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- GitHub Webhook User
-
-
-
\ No newline at end of file
diff --git a/trescloud_github_release/views/github_webhook_log_views.xml b/trescloud_github_release/views/github_webhook_log_views.xml
deleted file mode 100644
index 7605639..0000000
--- a/trescloud_github_release/views/github_webhook_log_views.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
- github.webhook.log.tree
- github.webhook.log
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- github.webhook.log.form
- github.webhook.log
-
-
-
-
-
-
- GitHub Webhooks
- github.webhook.log
- tree,form
-
-
-
-
-
\ No newline at end of file