Component Definitions Create #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Component Definitions Create | |
on: | |
workflow_dispatch: | |
inputs: | |
import_name: | |
required: true | |
description: Name of profile in trestle workspace to be imported | |
output: | |
required: true | |
description: Name of the component definition to create | |
component_name: | |
required: true | |
description: Name of the component in the generated component definition | |
component_description: | |
required: true | |
description: Description of the component in the generated component definition | |
jobs: | |
create-component: | |
name: Create component definition | |
runs-on: ubuntu-latest | |
steps: | |
- name: Generate app token | |
uses: tibdex/github-app-token@v1 | |
id: get_installation_token | |
with: | |
app_id: ${{ secrets.APP_ID }} | |
private_key: ${{ secrets.PRIVATE_KEY }} | |
permissions: >- | |
{"contents": "write", "pull_requests": "write"} | |
- name: Clone | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ steps.get_installation_token.outputs.token }} | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Install dependencies | |
run: make trestlebot-install | |
- name: Create new component definition with imports | |
run: | | |
python3 scripts/set_default_comp.py --profile_name "${IMPORT_NAME}" \ | |
--compdef_name "${OUTPUT}" --comp_title "${COMP_NAME}" --comp_description "${COMP_DESCRIPTION}" --trestle_root . | |
env: | |
OUTPUT: ${{ github.event.inputs.output }} | |
IMPORT_NAME: ${{ github.event.inputs.import_name }} | |
COMP_NAME: ${{ github.event.inputs.component_name }} | |
COMP_DESCRIPTION: ${{ github.event.inputs.component_description }} | |
- name: Generate and PR new component definition | |
id: generate-cd | |
uses: RedHatProductSecurity/trestle-bot/actions/[email protected] | |
with: | |
markdown_path: "markdown/components" | |
oscal_model: "compdef" | |
branch: "component-create-${{ github.run_id }}" | |
target_branch: "main" | |
file_pattern: "*.json,markdown/*" | |
skip_assemble: true | |
commit_user_name: "trestle-bot[bot]" | |
commit_user_email: "136850459+trestle-bot[bot]@users.noreply.github.com" | |
commit_message: "adds ${{ github.event.inputs.component_name }} component to ${{ github.event.inputs.output }} component definition" | |
pull_request_title: "Add ${{ github.event.inputs.component_name }} component to ${{ github.event.inputs.output }} component definition" | |
github_token: ${{ steps.get_installation_token.outputs.token }} |