refactor : refact payload structure and environment variables in main.go and action.yml to remove unused fields and utilize branch reference for task ID extraction
This commit is contained in:
parent
51bd525a4f
commit
9918062492
@ -14,20 +14,14 @@ The action builds a JSON array with a single object from the issue event:
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"task_id": 123,
|
"task_id": 123,
|
||||||
"title": "Issue Title",
|
|
||||||
"body": "Issue body/description",
|
|
||||||
"state": "open",
|
"state": "open",
|
||||||
"author": "jdoe",
|
|
||||||
"assignees": ["alice", "bob"],
|
"assignees": ["alice", "bob"],
|
||||||
"labels": ["bug", "backend"],
|
|
||||||
"date_deadline": "2025-05-06"
|
"date_deadline": "2025-05-06"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
- `task_id`: from `${{ gitea.event.issue.number }}`
|
- `task_id`: from `${{ gitea.event.issue.number }}`
|
||||||
- `title`: from `${{ gitea.event.issue.title }}`
|
|
||||||
- `body`: from `${{ gitea.event.issue.body }}`
|
|
||||||
- `state`: from `${{ gitea.event.issue.state }}` ("open" or "closed")
|
- `state`: from `${{ gitea.event.issue.state }}` ("open" or "closed")
|
||||||
- `author`: from `${{ gitea.event.issue.user.login }}`
|
- `author`: from `${{ gitea.event.issue.user.login }}`
|
||||||
- `assignees`: from `${{ join(gitea.event.issue.assignees.*.login, ',') }}` (expanded and split)
|
- `assignees`: from `${{ join(gitea.event.issue.assignees.*.login, ',') }}` (expanded and split)
|
||||||
|
|||||||
@ -16,11 +16,7 @@ runs:
|
|||||||
image: 'Dockerfile'
|
image: 'Dockerfile'
|
||||||
env:
|
env:
|
||||||
BASE_URL: ${{ inputs.base_url }}
|
BASE_URL: ${{ inputs.base_url }}
|
||||||
ISSUE_NUMBER: ${{ gitea.event.issue.number }}
|
BRANCH_REF: ${{ gitea.event.issue.ref }}
|
||||||
ISSUE_TITLE: ${{ gitea.event.issue.title }}
|
|
||||||
ISSUE_BODY: ${{ gitea.event.issue.body }}
|
|
||||||
ISSUE_STATE: ${{ gitea.event.issue.state }}
|
ISSUE_STATE: ${{ gitea.event.issue.state }}
|
||||||
ISSUE_AUTHOR: ${{ gitea.event.issue.user.login }}
|
|
||||||
ISSUE_ASSIGNEES: ${{ join(gitea.event.issue.assignees.*.login, ',') }}
|
ISSUE_ASSIGNEES: ${{ join(gitea.event.issue.assignees.*.login, ',') }}
|
||||||
ISSUE_LABELS: ${{ join(gitea.event.issue.labels.*.name, ',') }}
|
|
||||||
ISSUE_DUE_DATE: ${{ gitea.event.issue.due_date }}
|
ISSUE_DUE_DATE: ${{ gitea.event.issue.due_date }}
|
||||||
|
|||||||
31
main.go
31
main.go
@ -13,12 +13,8 @@ import (
|
|||||||
|
|
||||||
type Payload struct {
|
type Payload struct {
|
||||||
TaskID int64 `json:"task_id"`
|
TaskID int64 `json:"task_id"`
|
||||||
Title string `json:"title"`
|
|
||||||
Body string `json:"body"`
|
|
||||||
State string `json:"state"`
|
State string `json:"state"`
|
||||||
Author string `json:"author"`
|
|
||||||
Assignees []string `json:"assignees"`
|
Assignees []string `json:"assignees"`
|
||||||
Labels []string `json:"labels"`
|
|
||||||
DueDate string `json:"date_deadline,omitempty"`
|
DueDate string `json:"date_deadline,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,29 +50,28 @@ func main() {
|
|||||||
logger := log.New(io.MultiWriter(os.Stdout, logFile), "", log.LstdFlags)
|
logger := log.New(io.MultiWriter(os.Stdout, logFile), "", log.LstdFlags)
|
||||||
|
|
||||||
// Build payload from env
|
// Build payload from env
|
||||||
issueNumber := os.Getenv("ISSUE_NUMBER")
|
|
||||||
issueTitle := os.Getenv("ISSUE_TITLE")
|
|
||||||
issueBody := os.Getenv("ISSUE_BODY")
|
|
||||||
issueState := os.Getenv("ISSUE_STATE")
|
issueState := os.Getenv("ISSUE_STATE")
|
||||||
issueAuthor := os.Getenv("ISSUE_AUTHOR")
|
|
||||||
issueAssignees := splitCSV(os.Getenv("ISSUE_ASSIGNEES"))
|
issueAssignees := splitCSV(os.Getenv("ISSUE_ASSIGNEES"))
|
||||||
issueLabels := splitCSV(os.Getenv("ISSUE_LABELS"))
|
|
||||||
issueDueDate := os.Getenv("ISSUE_DUE_DATE")
|
issueDueDate := os.Getenv("ISSUE_DUE_DATE")
|
||||||
|
branchRef := os.Getenv("BRANCH_REF")
|
||||||
|
|
||||||
var taskID int64
|
var odooTicketNumber int64
|
||||||
if issueNumber != "" {
|
if branchRef != "" {
|
||||||
// Best-effort parse; if it fails, taskID remains 0
|
// Expect format: <prefix>/ticket-OdooTicketNumber
|
||||||
fmt.Sscanf(issueNumber, "%d", &taskID)
|
parts := strings.Split(branchRef, "/")
|
||||||
|
for _, part := range parts {
|
||||||
|
if strings.HasPrefix(part, "ticket-") {
|
||||||
|
ticketStr := strings.TrimPrefix(part, "ticket-")
|
||||||
|
fmt.Sscanf(ticketStr, "%d", &odooTicketNumber)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
payload := Payload{
|
payload := Payload{
|
||||||
TaskID: taskID,
|
TaskID: odooTicketNumber,
|
||||||
Title: issueTitle,
|
|
||||||
Body: issueBody,
|
|
||||||
State: issueState,
|
State: issueState,
|
||||||
Author: issueAuthor,
|
|
||||||
Assignees: issueAssignees,
|
Assignees: issueAssignees,
|
||||||
Labels: issueLabels,
|
|
||||||
DueDate: issueDueDate,
|
DueDate: issueDueDate,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user