Skip to content

Update files from cciListXml2json script and new formatting #17

Update files from cciListXml2json script and new formatting

Update files from cciListXml2json script and new formatting #17

name: Convert CCI List XML to JSON
on:
push:
# branches: ['master']
branches: ['add-convert-cci-list-workflow']
# Run this workflow on the 1st day at 00:00 every month
# schedule:
# - cron: '0 0 1 * *'
env:
# This URL is super brittle with how links constantly get changed.
CCI_LIST_ZIP_URL: https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip/U_CCI_List.zip
jobs:
convert-cci-list:
runs-on: ubuntu-22.04
steps:
- name: Checkout the code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
check-latest: true
cache: 'yarn'
- name: Install project dependencies
run: yarn install --frozen-lockfile
- name: Download CCI List
run: |
curl -o U_CCI_List.zip $CCI_LIST_ZIP_URL && unzip U_CCI_List.zip
- name: Get publish date of CCI List
id: publish-date
uses: mavrosxristoforos/[email protected]
with:
xml-file: 'U_CCI_List.xml'
xpath: '/*[local-name()="cci_list"]/*[local-name()="metadata"]/*[local-name()="publishdate"]'
namespaces: '{"ns": "http://iase.disa.mil/cci"}'
- name: Set root directory path for produced XML file
run: echo "ROOT_DIRECTORY=$(pwd)" >> $GITHUB_ENV
- name: Convert CCI List XML to two JSON files
run: yarn workspace @mitre/hdf-converters cciListXml2json $ROOT_DIRECTORY/U_CCI_List.xml $ROOT_DIRECTORY/U_CCI_List.nist.json $ROOT_DIRECTORY/U_CCI_List.defs.json $ROOT_DIRECTORY/U_CCI_List.cci.json
- name: Update CCI to NIST and CCI to Definition mappings
run: |
mv $ROOT_DIRECTORY/U_CCI_List.nist.json $ROOT_DIRECTORY/libs/hdf-converters/src/mappings/
mv $ROOT_DIRECTORY/U_CCI_List.defs.json $ROOT_DIRECTORY/libs/hdf-converters/src/mappings/
mv $ROOT_DIRECTORY/U_CCI_List.cci.json $ROOT_DIRECTORY/libs/hdf-converters/src/mappings/
- name: Commit changes to CciNistMappingData.ts
# run: |
# git config --local user.email "[email protected]"
# git config --local user.name "MITRE SAF Automation"
# git add $ROOT_DIRECTORY/U_CCI_List.nist.json $ROOT_DIRECTORY/U_CCI_List.defs.json $ROOT_DIRECTORY/U_CCI_List.cci.json
# git commit -sm "Update CCI List to the current NIST and definition mappings as of $DATETIME"
# git push
run: echo $DATETIME && git status
env:
DATETIME: ${{steps.publish-date.outputs.info}}