Можем ли мы установить значения по умолчанию для входных данных по требованию в вашем наборе файлов рабочего процесса для Github?

Ниже приведены мои действия на 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

Однако невозможно комментировать входные данные, как вы можете видеть ниже:

Пожалуйста, предложите.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В своем сценарии вы создаете объект 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

Другие вопросы по теме