Add action to merge on local changes

In theory this fixes #43
pull/44/head
Tim Cappalli 2024-03-27 22:13:50 -04:00 committed by GitHub
parent fd2c324697
commit c423dff4b1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 90 additions and 0 deletions

View File

@ -0,0 +1,90 @@
name: Update Combined for Local Changes
on:
push:
paths:
- aaguid.json
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
tags:
description: 'Test scenario tags'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install python packages
run: |
python -m pip install --upgrade pip
pip install requests
- uses: jannekem/run-python-script-action@v1
id: script
with:
fail-on-error: false
script: |
import os
import requests
import base64
import json
# Download MDS blob from FIDO endpoint
response = requests.get("https://mds.fidoalliance.org/")
mdstocjwt = response.content.decode('ascii')
# Parse out MDS data from JWT
jwt_payload = mdstocjwt.split('.')[1].replace('-', '+').replace('_', '/')
while len(jwt_payload) % 4:
jwt_payload += "="
mds_bytes = base64.b64decode(jwt_payload)
mds_strings = mds_bytes.decode('utf-8')
mds_data = json.loads(mds_strings)
# Build commit msg and export to environment variable
mds_number = mds_data['no']
mds_next = mds_data['nextUpdate']
commit_msg=f'COMMIT_MSG=from MDS file version {mds_number}, next update expected {mds_next}.'
env_file = os.getenv('GITHUB_ENV')
with open(env_file, "a") as myfile:
myfile.write(commit_msg)
# Extract FIDO2 statements with non-null aaguid and required properties
fido2_statements = [
entry['metadataStatement']
for entry in mds_data['entries']
if entry.get('aaguid') is not None
]
# Create a dictionary with the desired structure
result_dict = {}
for statement in fido2_statements:
result_dict[statement['aaguid']] = {
"name": statement['description'],
"icon_light": statement.get('icon', None),
"icon_dark": statement.get('icon', None)
}
# import custom aaguid.json
with open('aaguid.json', 'r') as aaguid_file:
aaguid = json.load(aaguid_file)
# Combine custom aaguid.json with data from MDS
result = {**result_dict, **aaguid}
# Write combined result to file
with open('combined_aaguid.json', 'w') as output_file:
json.dump(result, output_file)
- name: Commit files and push
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add -A
timestamp=$(date -u -I)
git commit -m "bot: Updated ${timestamp}, ${{ env.COMMIT_MSG }}" -a || exit 0
git push