From 646f675200fb87763b77b2e597d78b121001abe8 Mon Sep 17 00:00:00 2001 From: mahula Date: Wed, 25 Jan 2023 20:23:20 +0100 Subject: [PATCH 1/6] fix some typos in profile --- docs/people/ulf-gebhardt.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/people/ulf-gebhardt.md b/docs/people/ulf-gebhardt.md index 5829b4d..eece7ef 100644 --- a/docs/people/ulf-gebhardt.md +++ b/docs/people/ulf-gebhardt.md @@ -2,7 +2,7 @@ ![Ulf Gebhardt](~@images/portrait/ulf-gebhardt.jpg) -Ulf is a software developer through and through. He started to program when he was 12 and kept going with it. He knows about the possibilities soft- and hardware has to offer and is the person to turn to when it’s time to include a new library or implement an algorithm. He is known to use the "Holzhammer-Methode" (brute-force approach) when it comes to solve conflicts within the team. +Ulf is a software developer through and through. He started to program when he was 12 and kept going with it. He knows about the possibilities software and hardware have to offer and is the person to turn to when it’s time to include a new library or implement an algorithm. He is known to use the "Holzhammer-Methode" (brute-force approach) when it comes to solve conflicts within the team. In his free time he programs as every good programmer does and travels the world by foot when it’s time to leave the screen for a while. @@ -68,7 +68,7 @@ here is a quick overview over the computer languages, frameworks and technologie ### Computer languages -Ulf has worked with the following Programming languages: +Ulf has worked with the following programming languages: - [Javascript](https://www.javascript.com/) - [PHP](https://www.php.net/) @@ -87,7 +87,7 @@ Ulf has worked with the following Programming languages: ### Frameworks & Technologies -As IT grows more complex it’s important with which frameworks is familiar. The following represents an incomplete list of Ulf’s framework and technology knowledge: +As IT grows more complex it’s important which frameworks one is familiar with. The following represents an incomplete list of Ulf’s framework and technology knowledge: #### For Javascript: - [Node](https://github.com/nodejs/node) @@ -144,6 +144,6 @@ As IT grows more complex it’s important with which frameworks is familiar. The - [Gitlab](https://about.gitlab.com/) - [Gogs](https://gogs.io/) - [Github Workflows](https://docs.github.com/en/rest/actions/workflows) -- [Kanaban](https://en.wikipedia.org/wiki/Kanban) +- [Kanban](https://en.wikipedia.org/wiki/Kanban) - [Zenhub](https://www.zenhub.com/) - [Agile software development](https://en.wikipedia.org/wiki/Agile_software_development) From 4fa3a93bf7c1e45dafbe17ec28cc745691a66817 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 29 Jan 2023 18:39:47 +0100 Subject: [PATCH 2/6] architecture graphic --- docs/images/docs/architecture.drawio | 138 +++++++++++++++++++++++++++ docs/images/docs/architecture.png | Bin 0 -> 64617 bytes 2 files changed, 138 insertions(+) create mode 100644 docs/images/docs/architecture.drawio create mode 100644 docs/images/docs/architecture.png diff --git a/docs/images/docs/architecture.drawio b/docs/images/docs/architecture.drawio new file mode 100644 index 0000000..2f8f71e --- /dev/null +++ b/docs/images/docs/architecture.drawio @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/images/docs/architecture.png b/docs/images/docs/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..39a962e01dd704649d9c0df04b382df094142350 GIT binary patch literal 64617 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 literal 0 HcmV?d00001 From a4db3ccabe0368ea9c2326f7576eea18cd81de46 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 29 Jan 2023 18:40:07 +0100 Subject: [PATCH 3/6] added architecture graphic to readme --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 711a13b..e867559 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ This package requires: This package uses: - [vuepress](https://github.com/vuejs/vuepress) - [vuepress-theme-book](https://github.com/cyrilf/vuepress-theme-book) - +- [vuepress-deploy](https://github.com/jenkey2011/vuepress-deploy) ## Usage @@ -40,4 +40,10 @@ Run the tests to ensure everything is working as expected ``` npm test -``` \ No newline at end of file +``` + +## How it works + +This repository utilizes `vuepress-deploy` to automatically deploy the current master branch to github pages. + +![repo-architecture](./docs/images/docs/architecture.png) \ No newline at end of file From 80acd8a341312ec49785f8224108b3be42ba6625 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 29 Jan 2023 18:45:01 +0100 Subject: [PATCH 4/6] more details on readme architecture workflow --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e867559..6554e3a 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ npm test ## How it works -This repository utilizes `vuepress-deploy` to automatically deploy the current master branch to github pages. +This repository utilizes `vuepress-deploy` to automatically deploy the current `master` branch to github pages. -![repo-architecture](./docs/images/docs/architecture.png) \ No newline at end of file +![repo-architecture](./docs/images/docs/architecture.png) + +A Pullrequest-Review-Workflow is applied to get changes into the `master`. From there on an automatic github workflow script utilizing `vuepress-deploy` is taking over. The vuepress page is built and force-pushed to the `gh-pages` branch, which in turn is then deployed on the github pages infrastructure and bound to the web address [IT4C.dev](https://www.it4c.dev). From 932981254e0c0090baff71c13e04440dcb67b8e3 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 29 Jan 2023 22:06:00 +0100 Subject: [PATCH 5/6] lint-pr workflow --- .github/workflows/lint_pr.yml | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/lint_pr.yml diff --git a/.github/workflows/lint_pr.yml b/.github/workflows/lint_pr.yml new file mode 100644 index 0000000..50bd18c --- /dev/null +++ b/.github/workflows/lint_pr.yml @@ -0,0 +1,69 @@ +name: "gradido lint pull request CI" + +on: + #pull_request: + pull_request_target: + types: + - opened + - edited + - synchronize + +jobs: + main: + name: Validate PR title + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # Configure which types are allowed (newline delimited). + # Default: https://github.com/commitizen/conventional-commit-types + #types: | + # fix + # feat + # Configure which scopes are allowed (newline delimited). + scopes: | + content + workflow + other + # Configure that a scope must always be provided. + requireScope: true + # Configure which scopes (newline delimited) are disallowed in PR + # titles. For instance by setting # the value below, `chore(release): + # ...` and `ci(e2e,release): ...` will be rejected. + #disallowScopes: | + # release + # Configure additional validation for the subject based on a regex. + # This example ensures the subject doesn't start with an uppercase character. + subjectPattern: ^(?![A-Z]).+$ + # If `subjectPattern` is configured, you can use this property to override + # the default error message that is shown when the pattern doesn't match. + # The variables `subject` and `title` can be used within the message. + subjectPatternError: | + The subject "{subject}" found in the pull request title "{title}" + didn't match the configured pattern. Please ensure that the subject + doesn't start with an uppercase character. + # If you use GitHub Enterprise, you can set this to the URL of your server + #githubBaseUrl: https://github.myorg.com/api/v3 + # If the PR contains one of these labels (newline delimited), the + # validation is skipped. + # If you want to rerun the validation when labels change, you might want + # to use the `labeled` and `unlabeled` event triggers in your workflow. + #ignoreLabels: | + # bot + # ignore-semantic-pull-request + # If you're using a format for the PR title that differs from the traditional Conventional + # Commits spec, you can use these options to customize the parsing of the type, scope and + # subject. The `headerPattern` should contain a regex where the capturing groups in parentheses + # correspond to the parts listed in `headerPatternCorrespondence`. + # See: https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-commits-parser#headerpattern + headerPattern: '^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$' + headerPatternCorrespondence: type, scope, subject + # For work-in-progress PRs you can typically use draft pull requests + # from GitHub. However, private repositories on the free plan don't have + # this option and therefore this action allows you to opt-in to using the + # special "[WIP]" prefix to indicate this state. This will avoid the + # validation of the PR title and the pull request checks remain pending. + # Note that a second check will be reported if this is enabled. + wip: true From bf6aedc9ca391bdf707047abb7090162af117581 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 29 Jan 2023 22:08:00 +0100 Subject: [PATCH 6/6] corrected workflow name --- .github/workflows/lint_pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint_pr.yml b/.github/workflows/lint_pr.yml index 50bd18c..cdcac20 100644 --- a/.github/workflows/lint_pr.yml +++ b/.github/workflows/lint_pr.yml @@ -1,4 +1,4 @@ -name: "gradido lint pull request CI" +name: "lint pull request CI" on: #pull_request: