Skip to content

shadowsky 评论区 #90

shadowsky 评论区

shadowsky 评论区 #90

Workflow file for this run

name: HAR_Process
on:
workflow_dispatch: {}
issues:
types: [edited, labeled]
env:
TZ: Asia/Shanghai
REPO_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
jobs:
extract-issue-body:
runs-on: ubuntu-latest
# Only run if the issue is not a PR and is labeled by har
if: github.event.issue.pull_request == null && contains(github.event.issue.labels.*.name, 'har')
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- uses: stefanbuck/github-issue-parser@v3
id: issue-parser
with:
template-path: .github/ISSUE_TEMPLATE/process_har.yaml
- name: Echo issue body
run: |
cat ${HOME}/issue-parser-result.json
- name: Obtain HARNAME
env:
ISSUE_JSON: ${{ steps.issue-parser.outputs.jsonString }}
id: harname
run: |
harname=$(python3 -c """
import json
import os
issue_json:dict = json.loads(os.getenv('ISSUE_JSON','{}'))
if len(issue_json) > 0 and 'name' in issue_json:
print(issue_json['name'])
else:
print('')
""")
echo "harname=${harname}" >> $GITHUB_OUTPUT
- name: Judge HAR is update
env:
ISSUE_JSON: ${{ steps.issue-parser.outputs.jsonString }}
id: isupdate
run: |
isupdate=$(python3 -c """
import json
import os
with open('tpls_history.json', 'r', encoding='utf8') as f:
hfile = json.loads(f.read())
issue_json:dict = json.loads(os.getenv('ISSUE_JSON','{}'))
if len(issue_json) > 0 and 'name' in issue_json:
if (issue_json['name'] in hfile['har']):
print('Update')
else:
print('Add')
else:
print('Add')
""")
echo "isupdate=${isupdate}" >> $GITHUB_OUTPUT
- name: Extract issue to json
env:
ISSUE_JSON: ${{ steps.issue-parser.outputs.jsonString }}
ISSUE_URL: ${{ github.event.issue.html_url }}
REPO_FULL_NAME: ${{ github.repository }}
run: |
python .github/src/extract_issue_body.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "${{ steps.isupdate.outputs.isupdate }} HAR: ${{ steps.harname.outputs.harname }}"
title: "${{ steps.isupdate.outputs.isupdate }} HAR: ${{ steps.harname.outputs.harname }}"
body: "Auto create pull request by HAR_Process action.\n\nIssue: ${{ github.event.issue.html_url }}\n\nAuthor: @${{ github.event.issue.user.login }}"
branch: process-har-${{ github.event.issue.number }}
delete-branch: true
base: ${{ env.REPO_DEFAULT_BRANCH }}
delete-invalid-har:
runs-on: ubuntu-latest
# Only run if the issue is not a PR and is labeled by har
if: github.event.issue.pull_request == null && contains(github.event.issue.labels.*.name, 'invalid')
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- uses: stefanbuck/github-issue-parser@v3
id: issue-parser
with:
template-path: .github/ISSUE_TEMPLATE/process_har.yaml
- name: Echo issue body
run: |
cat ${HOME}/issue-parser-result.json
- name: Obtain HARNAME
env:
ISSUE_JSON: ${{ steps.issue-parser.outputs.jsonString }}
id: harname
run: |
harname=$(python3 -c """
import json
import os
issue_json:dict = json.loads(os.getenv('ISSUE_JSON','{}'))
if len(issue_json) > 0 and 'name' in issue_json:
print(issue_json['name'])
else:
print('')
""")
echo "harname=${harname}" >> $GITHUB_OUTPUT
- name: Delete HAR by harname
env:
ISSUE_JSON: ${{ steps.issue-parser.outputs.jsonString }}
run: |
existed=$(python3 .github/src/delete_har.py)
if [ "${existed}" == "True" ]; then
echo "Delete HAR: ${{ steps.harname.outputs.harname }}"
else
echo "HAR: ${{ steps.harname.outputs.harname }} not existed"
fi
- name: Creat Pull Request
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "Delete HAR: ${{ steps.harname.outputs.harname }}"
title: "Delete HAR: ${{ steps.harname.outputs.harname }}"
body: "Auto create pull request by HAR_Process action.\n\nIssue: ${{ github.event.issue.html_url }}\n\nAuthor: @${{ github.event.issue.user.login }}"
branch: process-har-${{ github.event.issue.number }}
delete-branch: true
base: ${{ env.REPO_DEFAULT_BRANCH }}
- name: Close issue
uses: peter-evans/close-issue@v3
with:
issue-number: ${{ github.event.issue.number }}
comment: "HAR: ${{ steps.harname.outputs.harname }} is invalid, close it."