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,
|
||||
"title": "Issue Title",
|
||||
"body": "Issue body/description",
|
||||
"state": "open",
|
||||
"author": "jdoe",
|
||||
"assignees": ["alice", "bob"],
|
||||
"labels": ["bug", "backend"],
|
||||
"date_deadline": "2025-05-06"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
- `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")
|
||||
- `author`: from `${{ gitea.event.issue.user.login }}`
|
||||
- `assignees`: from `${{ join(gitea.event.issue.assignees.*.login, ',') }}` (expanded and split)
|
||||
|
||||
@ -16,11 +16,7 @@ runs:
|
||||
image: 'Dockerfile'
|
||||
env:
|
||||
BASE_URL: ${{ inputs.base_url }}
|
||||
ISSUE_NUMBER: ${{ gitea.event.issue.number }}
|
||||
ISSUE_TITLE: ${{ gitea.event.issue.title }}
|
||||
ISSUE_BODY: ${{ gitea.event.issue.body }}
|
||||
BRANCH_REF: ${{ gitea.event.issue.ref }}
|
||||
ISSUE_STATE: ${{ gitea.event.issue.state }}
|
||||
ISSUE_AUTHOR: ${{ gitea.event.issue.user.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 }}
|
||||
|
||||
31
main.go
31
main.go
@ -13,12 +13,8 @@ import (
|
||||
|
||||
type Payload struct {
|
||||
TaskID int64 `json:"task_id"`
|
||||
Title string `json:"title"`
|
||||
Body string `json:"body"`
|
||||
State string `json:"state"`
|
||||
Author string `json:"author"`
|
||||
Assignees []string `json:"assignees"`
|
||||
Labels []string `json:"labels"`
|
||||
DueDate string `json:"date_deadline,omitempty"`
|
||||
}
|
||||
|
||||
@ -54,29 +50,28 @@ func main() {
|
||||
logger := log.New(io.MultiWriter(os.Stdout, logFile), "", log.LstdFlags)
|
||||
|
||||
// Build payload from env
|
||||
issueNumber := os.Getenv("ISSUE_NUMBER")
|
||||
issueTitle := os.Getenv("ISSUE_TITLE")
|
||||
issueBody := os.Getenv("ISSUE_BODY")
|
||||
issueState := os.Getenv("ISSUE_STATE")
|
||||
issueAuthor := os.Getenv("ISSUE_AUTHOR")
|
||||
issueAssignees := splitCSV(os.Getenv("ISSUE_ASSIGNEES"))
|
||||
issueLabels := splitCSV(os.Getenv("ISSUE_LABELS"))
|
||||
issueDueDate := os.Getenv("ISSUE_DUE_DATE")
|
||||
branchRef := os.Getenv("BRANCH_REF")
|
||||
|
||||
var taskID int64
|
||||
if issueNumber != "" {
|
||||
// Best-effort parse; if it fails, taskID remains 0
|
||||
fmt.Sscanf(issueNumber, "%d", &taskID)
|
||||
var odooTicketNumber int64
|
||||
if branchRef != "" {
|
||||
// Expect format: <prefix>/ticket-OdooTicketNumber
|
||||
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{
|
||||
TaskID: taskID,
|
||||
Title: issueTitle,
|
||||
Body: issueBody,
|
||||
TaskID: odooTicketNumber,
|
||||
State: issueState,
|
||||
Author: issueAuthor,
|
||||
Assignees: issueAssignees,
|
||||
Labels: issueLabels,
|
||||
DueDate: issueDueDate,
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user