diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml new file mode 100644 index 0000000..c80a707 --- /dev/null +++ b/.forgejo/workflows/ci.yml @@ -0,0 +1,24 @@ +--- +on: [push] # yamllint disable-line rule:truthy + +jobs: + static-analysis: + name: Static analysis + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Yaml formatting + run: pipx run yamllint . + - name: Python formatting + run: pipx run black . --check + dynamic-analysis: + name: Dynamic analysis + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + run: | + pip install -r ./requirements.txt + pip install pylint + - name: Python linting + run: pylint **/*.py diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 0000000..f764383 --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,6 @@ +--- +extends: default + +rules: + line-length: + max: 120 diff --git a/action.yml b/action.yml index de000d9..15191da 100644 --- a/action.yml +++ b/action.yml @@ -1,3 +1,4 @@ +--- name: Post build status to Discord inputs: diff --git a/main.py b/main.py index a664bec..ceb6bc1 100644 --- a/main.py +++ b/main.py @@ -1,3 +1,10 @@ +""" +Push status to Discord action + +Pushes provided build status data to Discord as a new message or as +an edit to an existing message. +""" + import sys import typing import datetime @@ -13,12 +20,22 @@ COLORS = { class EmbedField(typing.TypedDict): + """ + Single embedded field + See: https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure + """ + name: str value: str inline: bool class Embed(typing.TypedDict): + """ + Single message embed + See: https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure + """ + color: str title: str fields: list[EmbedField] @@ -37,10 +54,6 @@ class MessageState(typing.TypedDict): embeds: list[Embed] -class Context(typing.TypedDict): - message: MessageState - - if __name__ == "__main__": ( webhook_url,