Ниже приведены мои действия на GitHub ISSUE_TEMPLATE, которые запрашивают данные от пользователя.
name: GH Action details
description: GH Issue form
title: "GH Action details"
assignees:
- my-devops
labels:
- "gh inventory"
body:
- type: markdown
attributes:
value: |
### Want to add?
---
Please fill out the information below
- type: input
id: repository-name
attributes:
label: Repository Name
description: Provide the name of the repository
validations:
required: true
Ниже показано, как выглядит форма проблемы до и после комментариев пользователей.
Желаемый вывод, при котором пользовательский ввод считывается и отображается.
Я хочу отправить аналогичный комментарий по проблеме с помощью PowerShell. Попробовал следующее [Вы можете попробовать запустить в своей системе с помощью ISE, powershell]: Код Powershell ниже:
$Token = "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"
$RepoOwner = "knowyrtech"
$RepoName = "mongomaskwinvslinux"
$IssueTitle = "GH Action Onboard inventory details"
# Create a hashtable for the input values
$inputValues = @{
"ref" = "main"
"inputs" = @{
"repository-name" = "YourRepositoryName"
}
}
# Convert the hashtable to JSON
$inputJson = $inputValues | ConvertTo-Json
$ApiUrl = "https://api.github.com/repos/$RepoOwner/$RepoName/issues"
$IssueData = @{
title = $IssueTitle
body = $inputJson
} | ConvertTo-Json
$response = Invoke-RestMethod -Uri $ApiUrl -Method Post -Headers @{
"Authorization" = "token $Token"
"Accept" = "application/vnd.github.v3+json"
} -ContentType "application/json" -Body $IssueData
$response
При этом создается комментарий, но не тот выходной снимок, который был показан выше.
я тоже попробовал
$inputValues = @{
"ref" = "main"
"inputs" = @{
"repository-name" = @{
"default" = 'wowo'
}
}
}
$inputJson = $inputValues | ConvertTo-Json
Однако невозможно комментировать входные данные, как вы можете видеть ниже:
Пожалуйста, предложите.
В своем сценарии вы создаете объект JSON, представляющий то, что кажется входными данными для рабочего процесса действия, и используете этот объект JSON непосредственно в качестве тела задачи GitHub:
$inputValues = @{
"ref" = "main"
"inputs" = @{
"repository-name" = "YourRepositoryName"
}
}
$inputJson = $inputValues | ConvertTo-Json
...
$IssueData = @{
title = $IssueTitle
body = $inputJson
} | ConvertTo-Json
Поскольку задачи GitHub, созданные через API , изначально не поддерживают прямое заполнение полей формы задач таким образом. Формы задач GitHub и API GitHub работают отдельно; API не предоставляет функции для непосредственного заполнения полей форм задач.
Вместо того, чтобы пытаться использовать объект JSON для представления тела задачи, вы можете попробовать использовать строку в формате Markdown для представления тела задачи, которая включает значения по умолчанию, которые вы хотите включить в структурированном виде, который визуально напоминает вашу форму задачи GitHub:
$IssueBody = @"
### Want to add?
---
Please fill out the information below
**Repository Name**
$RepositoryName
"@
...
$IssueData = @{
title = $IssueTitle
body = $IssueBody
} | ConvertTo-Json
Переменная $IssueBody
содержит строку в формате Markdown, которая структурирует информацию аналогично вашей форме задачи GitHub при просмотре на платформе GitHub.
Полный сценарий:
$Token = "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"
$RepoOwner = "knowyrtech"
$RepoName = "mongomaskwinvslinux"
$IssueTitle = "GH Action Onboard inventory details"
# Define the repository name (or any other values you want to set as default)
$RepositoryName = "YourRepositoryName"
# Create a Markdown formatted string that represents the issue body
$IssueBody = @"
### Want to add?
---
Please fill out the information below
**Repository Name**
$RepositoryName
"@
$ApiUrl = "https://api.github.com/repos/$RepoOwner/$RepoName/issues"
$IssueData = @{
title = $IssueTitle
body = $IssueBody
} | ConvertTo-Json
$response = Invoke-RestMethod -Uri $ApiUrl -Method Post -Headers @{
"Authorization" = "token $Token"
"Accept" = "application/vnd.github.v3+json"
} -ContentType "application/json" -Body $IssueData
$response