Mandresy RABENJAHARISON 827d5e7e24 initial commit
2025-08-11 16:34:00 +03:00

67 lines
1.6 KiB
Markdown

# Create Odoo Timesheet (Gitea Action)
Create a new Odoo timesheet entry via a FastAPI middleware whenever time is added on a Gitea Issue.
The action reads time-tracking details directly from the issue event context and POSTs the following JSON to your FastAPI endpoint:
```json
{
"date": "2025-05-06",
"description": "/",
"gitea_username": "Tom",
"hour_spent": 1.3,
"task_id": 1
}
```
---
## Inputs
- `base_url` (required): Base URL of the FastAPI server, e.g. `https://fastapi.example.com`.
---
## Event context used
- `${{ gitea.event.issue.number }}``task_id`
- `${{ gitea.event.issue.title }}` → description fallback
- `${{ gitea.event.sender.login }}``gitea_username`
- `${{ gitea.event.tracked_time.time }}` → seconds spent (converted to hours)
- `${{ gitea.event.tracked_time.created }}` → ISO timestamp (date extracted)
- `${{ gitea.event.action }}` → filtered to time-related actions
No Gitea API or tokens are required; all data comes from the event payload.
---
## Usage
Trigger on the Gitea issues event when time is added. If your instance emits a generic `issues: edited` event for time tracking, include it as shown:
```yaml
name: Create Odoo Timesheet
on:
issues:
types: [edited]
jobs:
timesheet:
runs-on: ubuntu-latest
steps:
- name: Create timesheet in Odoo
uses: https://gitea.ethumada.com/gitea/create-odoo-timesheet
with:
base_url: ${{ vars.FASTAPI_BASE_URL }}
```
---
## Endpoint contract (FastAPI)
- Method: POST
- URL: `{base_url}/api/v1/account_analytic_gitea_odoo/`
- Body: JSON object with fields as shown above
- 2xx indicates success; response body is logged