From adc4fae328e86569377872203809b1d661407267 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 26 May 2023 14:44:18 +0530 Subject: [PATCH 01/20] migrate json to yaml --- Maintainers.yaml | 439 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 439 insertions(+) create mode 100644 Maintainers.yaml diff --git a/Maintainers.yaml b/Maintainers.yaml new file mode 100644 index 000000000..2fd32a8c9 --- /dev/null +++ b/Maintainers.yaml @@ -0,0 +1,439 @@ +--- +- name: Aayush Sahu + github: aayushmau5 + linkedin: aayushmau5 + slack: U01QRHR1ABH + twitter: aayushmau5 + availableForHire: false + repos: + - diff +- name: Abir Pal + linkedin: imabp + slack: U01S8EQ9LQ2 + twitter: imabptweets + github: imabp + availableForHire: false + repos: + - problem +- name: Akshat Nema + github: akshatnema + linkedin: akshat-nema + slack: U02TAMG2VKN + twitter: AksNema + availableForHire: true + repos: + - website +- name: Anand Sunderraman + github: anandsunderraman + linkedin: anand-sunderraman-a6b7a131 + slack: U0231F9KXNK + availableForHire: false + repos: + - go-watermill-template +- name: Arjun Garg + github: arjungarg07 + linkedin: arjungarg17 + slack: U01QX79S734 + twitter: ArjunGarg07 + availableForHire: true + repos: + - cupid +- name: Cameron Rushton + github: CameronRushton + slack: U01DVKKAV5K + availableForHire: false + company: Solace + repos: + - java-spring-cloud-stream-template + - python-paho-template + - bindings +- name: Dale Lane + github: dalelane + linkedin: dalelane + slack: U01EYAFR5BR + twitter: dalelane + availableForHire: false + company: IBM + repos: + - avro-schema-parser + - bindings + - java-template +- name: Emiliano Zublena + github: emilianozublena + linkedin: emilianozublena + slack: U01LYC8PW0M + availableForHire: false + repos: + - asyncapi-php-template +- name: Fran Méndez + github: fmvilas + slack: U34F2JRRS + availableForHire: false + company: Postman + linkedin: fmvilas + repos: + - raml-dt-schema-parser + - avro-schema-parser + - openapi-schema-parser + - asyncapi-react + - glee + - generator + - nodejs-template + - nodejs-ws-template + - parser-js + - playground + - spec + - spec-json-schemas + - website + - bindings +- name: Gerald Loeffler + github: GeraldLoeffler + linkedin: geraldloeffler + slack: U01P5QDLP0X + availableForHire: false + company: Salesforce + repos: + - bindings +- name: Jonas Lagoni + github: jonaslagoni + linkedin: jonaslagoni + slack: UQ2ANBG1E + availableForHire: false + company: Postman + repos: + - dotnet-nats-template + - ts-nats-template + - generator-react-sdk + - generator + - modelina + - parser-js + - parser-api + - simulator +- name: Khuda Dad Nomani + github: KhudaDad414 + twitter: KhudaDadNomani + linkedin: khudadadnomani + slack: U01RVRD1TCL + availableForHire: false + company: Postman + repos: + - optimizer + - bindings + - glee + - ".github" +- name: Laurent Broudoux + github: lbroudoux + twitter: lbroudoux + linkedin: laurentbroudoux + slack: U018NLDV5E1 + availableForHire: false + repos: + - bindings +- name: Ludovic Dussart + github: m3lkior + linkedin: ludovic-dussart-846a8063 + slack: U01BM49KL3Z + twitter: ldussart + availableForHire: false + company: Ineat + repos: + - avro-schema-parser +- name: Lukasz Gornicki + github: derberg + linkedin: lukasz-gornicki-a621914 + slack: UD698Q5LM + twitter: derberq + availableForHire: false + company: Postman + repos: + - avro-schema-parser + - openapi-schema-parser + - chatbot + - diff + - cli + - generator-filters + - generator-hooks + - github-action-for-generator + - generator + - nodejs-template + - nodejs-ws-template + - parser-js + - playground + - spec + - spec-json-schemas + - template-for-generator-templates + - website + - bundler +- name: Maciej Urbańczyk + github: magicmatatjahu + availableForHire: false + linkedin: maciej-urbańczyk-909547164 + slack: U01EB02BP7A + company: Postman + repos: + - asyncapi-react + - chatbot + - cli + - converter-go + - event-gateway + - generator-react-sdk + - generator + - html-template + - markdown-template + - modelina + - parser-js + - parser-go + - playground + - server-api + - template-for-go-projects + - website +- name: Azeez Elegbede + linkedin: acebuild + github: AceTheCreator + twitter: _acebuild + slack: U01RWDD69PZ + company: Postman + availableForHire: false + repos: + - chatbot +- name: Michael Davis + github: damaru-inc + availableForHire: false + slack: UH3B166TD + company: Solace + repos: + - java-spring-cloud-stream-template + - python-paho-template + - bindings +- name: Missy Turco + github: mcturco + twitter: missyturco + slack: U02JVEQ6S9W + linkedin: missy-turco-a476a6126 + availableForHire: false + company: Postman + repos: + - brand + - design-system + - studio + - website +- name: Nektarios Fifes + github: NektariosFifes + linkedin: nektarios-fifes-372740220 + slack: U01SE93Q48N + availableForHire: true + repos: + - simulator +- name: Pavel Bodiachevskii + github: Pakisan + slack: U0132LQU8C9 + twitter: pbodiachevskii + availableForHire: false + repos: + - jasyncapi +- name: Philip Schlesinger + github: theschles + slack: U054UUYBNLF + twitter: philschlesinger + availableForHire: false + repos: + - jasyncapi-idea-plugin +- name: Pratik Haldankar + github: pratik2315 + slack: U03ADC8FD2S + linkedin: pratik-haldankar-1b237a205 + twitter: PratikHaldankr + availableForHire: true + repos: + - generator +- name: Richard Coppen + github: rcoppen + linkedin: richard-coppen + slack: U01L3FH3BUH + availableForHire: false + company: IBM + repos: + - bindings +- name: Sergio Moya + github: smoya + linkedin: smoya + slack: UN22ZTLHG + twitter: smoyac + availableForHire: false + company: Postman + repos: + - bindings + - converter-go + - event-gateway + - go-watermill-template + - infra + - parser-api + - parser-go + - server-api + - spec + - spec-json-schemas + - template-for-go-projects +- name: Souvik De + github: Souvikns + slack: U01SGCZMJKW + twitter: souvik_ns + linkedin: souvik-de-a2b941169 + availableForHire: false + company: Postman + repos: + - cli + - bundler + - glee +- name: Alejandra Quetzalli + github: alequetzalli + twitter: QuetzalliAle + slack: U02AKC14WAJ + linkedin: alejandra-quetzalli + availableForHire: false + company: Postman + repos: + - website + - training + - community +- name: David Pereira + github: BOLT04 + twitter: BOLT2938 + slack: U02EC8BT0TX + linkedin: josé-david-pereira-13ba5315a + availableForHire: false + company: Create IT + repos: + - server-api +- name: Daniel Raper + github: dan-r + slack: U02FP8WBFQE + linkedin: danielr + availableForHire: false + company: IBM + repos: + - java-template +- name: Kieran Murphy + github: KieranM1999 + linkedin: kieran-murphy-175b0412b + availableForHire: false + slack: U02FT2TKM37 + company: IBM + repos: + - java-template +- name: Tom Jefferson + github: JEFFLUFC + linkedin: t-jefferson + slack: U02FPPCEH6H + availableForHire: false + company: IBM + repos: + - java-template +- name: Lewis Relph + github: lewis-relph + availableForHire: false + slack: U02G8MDDEF3 + company: IBM + repos: + - java-template +- name: David Boyne + github: boyney123 + twitter: boyney123 + slack: U020GN9C6FM + availableForHire: false + company: AWS + repos: + - studio + - cli +- name: Semen Tenishchev + github: Tenischev + linkedin: semen-tenishchev + availableForHire: true + slack: U011D1DAU6S + repos: + - java-spring-template +- name: Samridhi Agrawal + github: Samridhi-98 + slack: U02T2MY9W5T + linkedin: samridhi-agrawal-1713201ab + availableForHire: false + company: ThoughtWorks + repos: + - modelina +- name: Debajyoti Halder + github: ron-debajyoti + twitter: rondebajyoti + slack: U02UK9RUPGQ + linkedin: rondebajyoti + availableForHire: false + company: Narvar + repos: + - modelina +- name: Ivan Garcia Sainz-Aja + github: ivangsa + linkedin: ivangarciasainzaja + slack: UTCN3ET4M + availableForHire: false + company: SNGULAR + repos: + - vs-asyncapi-preview +- name: Florence Njeri + github: Florence-Njeri + linkedin: florencenjeri + slack: U03D18YKX2M + twitter: njericodes + availableForHire: true + repos: + - generator +- name: Jeremy Whitlock + github: whitlockjc + linkedin: whitlockjc + slack: U03HBC08EBB + twitter: whitlockjc + availableForHire: false + company: Google + repos: + - bindings +- name: Vladimír Gorej + github: char0n + linkedin: vladimirgorej + slack: U03NV5L4S49 + twitter: vladimirgorej + availableForHire: false + company: SmartBear + repos: + - bindings + - spec + - spec-json-schemas +- name: Alexander Wichmann + github: VisualBean + linkedin: alexcarlsen + slack: U04C58GB8TF + availableForHire: false + company: The LEGO Group + repos: + - bindings +- name: Barbaño González + linkedin: barbano-gonzalez-moreno + twitter: BarbanoGonzalez + github: Barbanio + slack: U01J42QDSLU + availableForHire: false + company: Postman + repos: + - training + - community +- name: Kenneth Aasan + github: kennethaasan + slack: U037S2HK4TS + twitter: kennethaasan + availableForHire: false + company: Sportradar + repos: + - modelina +- name: Heiko Henning + github: GreenRover + slack: U03AC4G51H8 + availableForHire: false + company: mtrail GmbH + repos: + - protobuf-schema-parser From fe788341f0a847913dfa0d37a7be39ea8717a322 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 15 Jun 2023 20:12:39 +0530 Subject: [PATCH 02/20] made changes in update website workflow with yaml file --- .github/workflows/update-website-tsc.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/update-website-tsc.yml b/.github/workflows/update-website-tsc.yml index 655ab5d80..2b900c1f7 100644 --- a/.github/workflows/update-website-tsc.yml +++ b/.github/workflows/update-website-tsc.yml @@ -1,12 +1,11 @@ #This action update the list of TSC members in the website repository. List of all TSC members is later rendered in the asyncapi.com website. name: Update list of TSC members in the website repo - on: push: branches: - - 'master' + - "master" paths: - - 'TSC_MEMBERS.json' + - "Maintainers.yaml" jobs: update-website: @@ -29,10 +28,10 @@ jobs: run: | git config --global user.name asyncapi-bot git config --global user.email info@asyncapi.io - - name: Create branch - working-directory: ./website + - name: Convert YAML to JSON + working-directory: ./community run: | - git checkout -b update-tscmembers-${{ github.head_ref }} + cat Maintainers.yaml | yaml2json > TSC_MEMBERS.json - name: Copy tsc members file from Current Repo to Another working-directory: ./website run: | From 41b49b9d34accee269e36e239722d63ca73b4a97 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 12:27:56 +0530 Subject: [PATCH 03/20] updated file name --- .github/workflows/update-website-tsc.yml | 6 +++--- Maintainers.yaml => MAINTAINERS.yaml | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename Maintainers.yaml => MAINTAINERS.yaml (100%) diff --git a/.github/workflows/update-website-tsc.yml b/.github/workflows/update-website-tsc.yml index 2b900c1f7..3193b8458 100644 --- a/.github/workflows/update-website-tsc.yml +++ b/.github/workflows/update-website-tsc.yml @@ -5,7 +5,7 @@ on: branches: - "master" paths: - - "Maintainers.yaml" + - "MAINTAINERS.yaml" jobs: update-website: @@ -31,11 +31,11 @@ jobs: - name: Convert YAML to JSON working-directory: ./community run: | - cat Maintainers.yaml | yaml2json > TSC_MEMBERS.json + cat Maintainers.yaml | yaml2json > MAINTAINERS.json - name: Copy tsc members file from Current Repo to Another working-directory: ./website run: | - cp ../community/TSC_MEMBERS.json ./config/TSC_MEMBERS.json + cp ../community/MAINTAINERS.json ./config/MAINTAINERS.json - name: Commit and push working-directory: ./website run: | diff --git a/Maintainers.yaml b/MAINTAINERS.yaml similarity index 100% rename from Maintainers.yaml rename to MAINTAINERS.yaml From 9357aadf2ced23907d204a4cab5bae73d56e9eba Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 22 Jun 2023 17:55:12 +0530 Subject: [PATCH 04/20] added isTscMember key in maintainer.yaml file --- MAINTAINERS.yaml | 306 +++++++++++++++++++++++++++-------------------- 1 file changed, 175 insertions(+), 131 deletions(-) diff --git a/MAINTAINERS.yaml b/MAINTAINERS.yaml index 2fd32a8c9..090520021 100644 --- a/MAINTAINERS.yaml +++ b/MAINTAINERS.yaml @@ -5,110 +5,121 @@ slack: U01QRHR1ABH twitter: aayushmau5 availableForHire: false + isTscMember: true repos: - - diff + - diff - name: Abir Pal linkedin: imabp slack: U01S8EQ9LQ2 twitter: imabptweets github: imabp availableForHire: false + isTscMember: true repos: - - problem + - problem - name: Akshat Nema github: akshatnema linkedin: akshat-nema slack: U02TAMG2VKN twitter: AksNema availableForHire: true + isTscMember: true repos: - - website + - website - name: Anand Sunderraman github: anandsunderraman linkedin: anand-sunderraman-a6b7a131 slack: U0231F9KXNK availableForHire: false + isTscMember: true repos: - - go-watermill-template + - go-watermill-template - name: Arjun Garg github: arjungarg07 linkedin: arjungarg17 slack: U01QX79S734 twitter: ArjunGarg07 availableForHire: true + isTscMember: true repos: - - cupid + - cupid - name: Cameron Rushton github: CameronRushton slack: U01DVKKAV5K availableForHire: false company: Solace + isTscMember: true repos: - - java-spring-cloud-stream-template - - python-paho-template - - bindings + - java-spring-cloud-stream-template + - python-paho-template + - bindings - name: Dale Lane github: dalelane linkedin: dalelane slack: U01EYAFR5BR twitter: dalelane availableForHire: false + isTscMember: true company: IBM repos: - - avro-schema-parser - - bindings - - java-template + - avro-schema-parser + - bindings + - java-template - name: Emiliano Zublena github: emilianozublena linkedin: emilianozublena slack: U01LYC8PW0M availableForHire: false + isTscMember: true repos: - - asyncapi-php-template + - asyncapi-php-template - name: Fran Méndez github: fmvilas slack: U34F2JRRS availableForHire: false company: Postman linkedin: fmvilas - repos: - - raml-dt-schema-parser - - avro-schema-parser - - openapi-schema-parser - - asyncapi-react - - glee - - generator - - nodejs-template - - nodejs-ws-template - - parser-js - - playground - - spec - - spec-json-schemas - - website - - bindings + isTscMember: true + repos: + - raml-dt-schema-parser + - avro-schema-parser + - openapi-schema-parser + - asyncapi-react + - glee + - generator + - nodejs-template + - nodejs-ws-template + - parser-js + - playground + - spec + - spec-json-schemas + - website + - bindings - name: Gerald Loeffler github: GeraldLoeffler linkedin: geraldloeffler slack: U01P5QDLP0X availableForHire: false company: Salesforce + isTscMember: true repos: - - bindings + - bindings - name: Jonas Lagoni github: jonaslagoni linkedin: jonaslagoni slack: UQ2ANBG1E availableForHire: false company: Postman - repos: - - dotnet-nats-template - - ts-nats-template - - generator-react-sdk - - generator - - modelina - - parser-js - - parser-api - - simulator + isTscMember: true + repos: + - dotnet-nats-template + - ts-nats-template + - generator-react-sdk + - generator + - modelina + - parser-js + - parser-api + - simulator - name: Khuda Dad Nomani github: KhudaDad414 twitter: KhudaDadNomani @@ -116,19 +127,21 @@ slack: U01RVRD1TCL availableForHire: false company: Postman + isTscMember: true repos: - - optimizer - - bindings - - glee - - ".github" + - optimizer + - bindings + - glee + - ".github" - name: Laurent Broudoux github: lbroudoux twitter: lbroudoux linkedin: laurentbroudoux slack: U018NLDV5E1 availableForHire: false + isTscMember: true repos: - - bindings + - bindings - name: Ludovic Dussart github: m3lkior linkedin: ludovic-dussart-846a8063 @@ -136,8 +149,9 @@ twitter: ldussart availableForHire: false company: Ineat + isTscMember: true repos: - - avro-schema-parser + - avro-schema-parser - name: Lukasz Gornicki github: derberg linkedin: lukasz-gornicki-a621914 @@ -145,48 +159,50 @@ twitter: derberq availableForHire: false company: Postman - repos: - - avro-schema-parser - - openapi-schema-parser - - chatbot - - diff - - cli - - generator-filters - - generator-hooks - - github-action-for-generator - - generator - - nodejs-template - - nodejs-ws-template - - parser-js - - playground - - spec - - spec-json-schemas - - template-for-generator-templates - - website - - bundler + isTscMember: true + repos: + - avro-schema-parser + - openapi-schema-parser + - chatbot + - diff + - cli + - generator-filters + - generator-hooks + - github-action-for-generator + - generator + - nodejs-template + - nodejs-ws-template + - parser-js + - playground + - spec + - spec-json-schemas + - template-for-generator-templates + - website + - bundler - name: Maciej Urbańczyk github: magicmatatjahu availableForHire: false linkedin: maciej-urbańczyk-909547164 slack: U01EB02BP7A company: Postman - repos: - - asyncapi-react - - chatbot - - cli - - converter-go - - event-gateway - - generator-react-sdk - - generator - - html-template - - markdown-template - - modelina - - parser-js - - parser-go - - playground - - server-api - - template-for-go-projects - - website + isTscMember: true + repos: + - asyncapi-react + - chatbot + - cli + - converter-go + - event-gateway + - generator-react-sdk + - generator + - html-template + - markdown-template + - modelina + - parser-js + - parser-go + - playground + - server-api + - template-for-go-projects + - website - name: Azeez Elegbede linkedin: acebuild github: AceTheCreator @@ -194,17 +210,19 @@ slack: U01RWDD69PZ company: Postman availableForHire: false + isTscMember: true repos: - - chatbot + - chatbot - name: Michael Davis github: damaru-inc availableForHire: false slack: UH3B166TD company: Solace + isTscMember: true repos: - - java-spring-cloud-stream-template - - python-paho-template - - bindings + - java-spring-cloud-stream-template + - python-paho-template + - bindings - name: Missy Turco github: mcturco twitter: missyturco @@ -212,48 +230,54 @@ linkedin: missy-turco-a476a6126 availableForHire: false company: Postman + isTscMember: true repos: - - brand - - design-system - - studio - - website + - brand + - design-system + - studio + - website - name: Nektarios Fifes github: NektariosFifes linkedin: nektarios-fifes-372740220 slack: U01SE93Q48N availableForHire: true + isTscMember: true repos: - - simulator + - simulator - name: Pavel Bodiachevskii github: Pakisan slack: U0132LQU8C9 twitter: pbodiachevskii availableForHire: false + isTscMember: true repos: - - jasyncapi + - jasyncapi - name: Philip Schlesinger github: theschles slack: U054UUYBNLF twitter: philschlesinger availableForHire: false + isTscMember: true repos: - - jasyncapi-idea-plugin + - jasyncapi-idea-plugin - name: Pratik Haldankar github: pratik2315 slack: U03ADC8FD2S linkedin: pratik-haldankar-1b237a205 twitter: PratikHaldankr availableForHire: true + isTscMember: true repos: - - generator + - generator - name: Richard Coppen github: rcoppen linkedin: richard-coppen slack: U01L3FH3BUH availableForHire: false company: IBM + isTscMember: true repos: - - bindings + - bindings - name: Sergio Moya github: smoya linkedin: smoya @@ -261,18 +285,19 @@ twitter: smoyac availableForHire: false company: Postman - repos: - - bindings - - converter-go - - event-gateway - - go-watermill-template - - infra - - parser-api - - parser-go - - server-api - - spec - - spec-json-schemas - - template-for-go-projects + isTscMember: true + repos: + - bindings + - converter-go + - event-gateway + - go-watermill-template + - infra + - parser-api + - parser-go + - server-api + - spec + - spec-json-schemas + - template-for-go-projects - name: Souvik De github: Souvikns slack: U01SGCZMJKW @@ -280,10 +305,11 @@ linkedin: souvik-de-a2b941169 availableForHire: false company: Postman + isTscMember: true repos: - - cli - - bundler - - glee + - cli + - bundler + - glee - name: Alejandra Quetzalli github: alequetzalli twitter: QuetzalliAle @@ -291,10 +317,11 @@ linkedin: alejandra-quetzalli availableForHire: false company: Postman + isTscMember: true repos: - - website - - training - - community + - website + - training + - community - name: David Pereira github: BOLT04 twitter: BOLT2938 @@ -302,63 +329,71 @@ linkedin: josé-david-pereira-13ba5315a availableForHire: false company: Create IT + isTscMember: true repos: - - server-api + - server-api - name: Daniel Raper github: dan-r slack: U02FP8WBFQE linkedin: danielr availableForHire: false company: IBM + isTscMember: true repos: - - java-template + - java-template - name: Kieran Murphy github: KieranM1999 linkedin: kieran-murphy-175b0412b availableForHire: false slack: U02FT2TKM37 company: IBM + isTscMember: true repos: - - java-template + - java-template - name: Tom Jefferson github: JEFFLUFC linkedin: t-jefferson slack: U02FPPCEH6H availableForHire: false company: IBM + isTscMember: true repos: - - java-template + - java-template - name: Lewis Relph github: lewis-relph availableForHire: false slack: U02G8MDDEF3 company: IBM + isTscMember: true repos: - - java-template + - java-template - name: David Boyne github: boyney123 twitter: boyney123 slack: U020GN9C6FM availableForHire: false company: AWS + isTscMember: true repos: - - studio - - cli + - studio + - cli - name: Semen Tenishchev github: Tenischev linkedin: semen-tenishchev availableForHire: true slack: U011D1DAU6S + isTscMember: true repos: - - java-spring-template + - java-spring-template - name: Samridhi Agrawal github: Samridhi-98 slack: U02T2MY9W5T linkedin: samridhi-agrawal-1713201ab availableForHire: false company: ThoughtWorks + isTscMember: true repos: - - modelina + - modelina - name: Debajyoti Halder github: ron-debajyoti twitter: rondebajyoti @@ -366,24 +401,27 @@ linkedin: rondebajyoti availableForHire: false company: Narvar + isTscMember: true repos: - - modelina + - modelina - name: Ivan Garcia Sainz-Aja github: ivangsa linkedin: ivangarciasainzaja slack: UTCN3ET4M availableForHire: false company: SNGULAR + isTscMember: true repos: - - vs-asyncapi-preview + - vs-asyncapi-preview - name: Florence Njeri github: Florence-Njeri linkedin: florencenjeri slack: U03D18YKX2M twitter: njericodes availableForHire: true + isTscMember: true repos: - - generator + - generator - name: Jeremy Whitlock github: whitlockjc linkedin: whitlockjc @@ -391,8 +429,9 @@ twitter: whitlockjc availableForHire: false company: Google + isTscMember: true repos: - - bindings + - bindings - name: Vladimír Gorej github: char0n linkedin: vladimirgorej @@ -400,18 +439,20 @@ twitter: vladimirgorej availableForHire: false company: SmartBear + isTscMember: true repos: - - bindings - - spec - - spec-json-schemas + - bindings + - spec + - spec-json-schemas - name: Alexander Wichmann github: VisualBean linkedin: alexcarlsen slack: U04C58GB8TF availableForHire: false company: The LEGO Group + isTscMember: true repos: - - bindings + - bindings - name: Barbaño González linkedin: barbano-gonzalez-moreno twitter: BarbanoGonzalez @@ -419,21 +460,24 @@ slack: U01J42QDSLU availableForHire: false company: Postman + isTscMember: true repos: - - training - - community + - training + - community - name: Kenneth Aasan github: kennethaasan slack: U037S2HK4TS twitter: kennethaasan availableForHire: false company: Sportradar + isTscMember: true repos: - - modelina + - modelina - name: Heiko Henning github: GreenRover slack: U03AC4G51H8 availableForHire: false company: mtrail GmbH + isTscMember: true repos: - - protobuf-schema-parser + - protobuf-schema-parser From 9bcf445758dfd16f5ccbe8ce873fef14fe1b0b32 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 27 Jun 2023 20:04:06 +0530 Subject: [PATCH 05/20] changed quote minor fix --- .github/workflows/update-website-tsc.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-website-tsc.yml b/.github/workflows/update-website-tsc.yml index 3193b8458..7c8c8ebd9 100644 --- a/.github/workflows/update-website-tsc.yml +++ b/.github/workflows/update-website-tsc.yml @@ -3,9 +3,9 @@ name: Update list of TSC members in the website repo on: push: branches: - - "master" + - 'master' paths: - - "MAINTAINERS.yaml" + - 'MAINTAINERS.yaml' jobs: update-website: From dcae6910b6dcc7f4dbc471c7511972471df6c872 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 30 Jun 2023 15:24:36 +0530 Subject: [PATCH 06/20] added new method to convert yaml to jason --- .github/workflows/update-website-tsc.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/update-website-tsc.yml b/.github/workflows/update-website-tsc.yml index 7c8c8ebd9..b37cba7b3 100644 --- a/.github/workflows/update-website-tsc.yml +++ b/.github/workflows/update-website-tsc.yml @@ -3,10 +3,9 @@ name: Update list of TSC members in the website repo on: push: branches: - - 'master' + - "master" paths: - - 'MAINTAINERS.yaml' - + - "MAINTAINERS.yaml" jobs: update-website: name: Make PR on website repository with updated tsc members list @@ -28,10 +27,10 @@ jobs: run: | git config --global user.name asyncapi-bot git config --global user.email info@asyncapi.io - - name: Convert YAML to JSON + - name: Convert YAML to JSON using Python working-directory: ./community run: | - cat Maintainers.yaml | yaml2json > MAINTAINERS.json + python -c 'import sys, yaml, json; json.dump(yaml.safe_load(sys.stdin), sys.stdout, indent=4)' < MAINTAINERS.yaml > MAINTAINERS.json - name: Copy tsc members file from Current Repo to Another working-directory: ./website run: | From dd1d44d771bb8cbf70fd6501f7b9603ec9edfcd6 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 3 Jul 2023 19:42:25 +0530 Subject: [PATCH 07/20] updated maintainers.yaml file --- MAINTAINERS.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/MAINTAINERS.yaml b/MAINTAINERS.yaml index 090520021..d58703ac7 100644 --- a/MAINTAINERS.yaml +++ b/MAINTAINERS.yaml @@ -481,3 +481,11 @@ isTscMember: true repos: - protobuf-schema-parser +- name: connil + github: connil + slack: U03A51H8 + availableForHire: false + company: GmbH + isTscMember: false + repos: + - dotnet-rabbitmq-template From a70e9b446c8965397b07230cf1de522cafc92a64 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 3 Jul 2023 19:46:45 +0530 Subject: [PATCH 08/20] minor fix removed tsc with maintainers --- .github/workflows/update-website-tsc.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/update-website-tsc.yml b/.github/workflows/update-website-tsc.yml index b37cba7b3..4b9a6987e 100644 --- a/.github/workflows/update-website-tsc.yml +++ b/.github/workflows/update-website-tsc.yml @@ -1,5 +1,5 @@ -#This action update the list of TSC members in the website repository. List of all TSC members is later rendered in the asyncapi.com website. -name: Update list of TSC members in the website repo +#This action update the list of TSC members in the website repository. List of all Maintainers is later rendered in the asyncapi.com website. +name: Update list of Maintainers in the website repo on: push: branches: @@ -8,7 +8,7 @@ on: - "MAINTAINERS.yaml" jobs: update-website: - name: Make PR on website repository with updated tsc members list + name: Make PR on website repository with updated maintainers list runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} @@ -31,7 +31,7 @@ jobs: working-directory: ./community run: | python -c 'import sys, yaml, json; json.dump(yaml.safe_load(sys.stdin), sys.stdout, indent=4)' < MAINTAINERS.yaml > MAINTAINERS.json - - name: Copy tsc members file from Current Repo to Another + - name: Copy maintainers file from Current Repo to Another working-directory: ./website run: | cp ../community/MAINTAINERS.json ./config/MAINTAINERS.json @@ -39,9 +39,9 @@ jobs: working-directory: ./website run: | git add . - git commit -m "docs(community): update latest tsc members list" + git commit -m "docs(community): update latest maintainers list" git push https://${{ env.GITHUB_TOKEN }}@github.com/asyncapi/website - name: Create PR working-directory: ./website run: | - gh pr create --title "docs(community): update latest tsc members list" --body "Updated TSC members list is available and this PR introduces changes with latest information about TSC members" --head "update-tscmembers-${{ github.head_ref }}" + gh pr create --title "docs(community): update latest maintainers list" --body "Updated Maintainers list is available and this PR introduces changes with latest information about Maintainers" --head "update-tscmembers-${{ github.head_ref }}" From 23acd8f8fff09ea190fc4ba9b16fd1cb21f2c4cc Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 3 Jul 2023 20:45:19 +0530 Subject: [PATCH 09/20] extended the workflow with slack notification when it is failed --- .github/workflows/update-website-tsc.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/update-website-tsc.yml b/.github/workflows/update-website-tsc.yml index 4b9a6987e..21c9379e8 100644 --- a/.github/workflows/update-website-tsc.yml +++ b/.github/workflows/update-website-tsc.yml @@ -45,3 +45,12 @@ jobs: working-directory: ./website run: | gh pr create --title "docs(community): update latest maintainers list" --body "Updated Maintainers list is available and this PR introduces changes with latest information about Maintainers" --head "update-tscmembers-${{ github.head_ref }}" + + - name: Report workflow run status to Slack + if: failure() # Only, on failure, send a message on the slack channel + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_CI_FAIL_NOTIFY }} + SLACK_TITLE: 🚨 Update maintainers list action failed 🚨 + SLACK_MESSAGE: Failed to update the maintainers list in the website repository. + MSG_MINIMAL: true From e502fceb4640d3b0f7a0c4d371b74df81d83a91a Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 3 Jul 2023 21:59:06 +0530 Subject: [PATCH 10/20] updated welcome new contributor workflow --- .../workflows/msg-to-new-member-pr-merged.yml | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/.github/workflows/msg-to-new-member-pr-merged.yml b/.github/workflows/msg-to-new-member-pr-merged.yml index 042937864..d945233e9 100644 --- a/.github/workflows/msg-to-new-member-pr-merged.yml +++ b/.github/workflows/msg-to-new-member-pr-merged.yml @@ -4,7 +4,7 @@ on: pull_request: types: [closed] paths: - - 'TSC_MEMBERS.json' + - 'MAINTAINERS.yaml' jobs: welcome: @@ -27,14 +27,18 @@ jobs: - name: List of directory run: ls -la - run: cd community && git checkout HEAD^ + - name: Install dependencies + run: npm install js-yaml - name: Compare files id: compare-files uses: actions/github-script@v6 with: script: | const fs = require("fs"); - const main_file = require('./community-main/TSC_MEMBERS.json'); - const pr_file = require('./community/TSC_MEMBERS.json'); + const yaml = require('js-yaml'); + + const main_file = yaml.load('./community-main/MAINTAINERS.yaml', 'utf8'); + const pr_file = yaml.load('./community/MAINTAINERS.yaml', 'utf8'); const removed = pr_file.filter( (newObj) => !main_file.some((oldObj) => oldObj.github === newObj.github) ); @@ -42,36 +46,37 @@ jobs: (oldObj) => !pr_file.some((newObj) => newObj.github === oldObj.github) ); if(added.length > 0) { - core.info(`Added Contributors : ${JSON.stringify(added, null, 2)}`) + core.info(`Added Contributors:\n${yaml.dump(added)}`); core.setOutput("newContributors", added.map((obj) => obj.github).join(",")); } if(removed.length > 0) { - core.info(`Removed Contributors : ${JSON.stringify(removed, null, 2)}`) + core.info(`Removed Contributors:\n${yaml.dump(removed)}`); core.setOutput("removed", "true"); } - core.info('TSC members in main branch:'); - core.info(JSON.stringify(main_file, null, 2)); - core.info('Location of TSC members in main branch:'); - core.info(fs.realpathSync('./community-main/TSC_MEMBERS.json')); - core.info('TSC members in PR branch:'); - core.info(JSON.stringify(pr_file, null, 2)); - core.info('Location of TSC members in PR branch:'); - core.info(fs.realpathSync('./community/TSC_MEMBERS.json')); + core.info('Maintainers in main branch:\n' + yaml.dump(main_file)); + core.info('Location of Maintainers in main branch:'); + core.info(fs.realpathSync('./community-main/MAINTAINERS.yaml')); + core.info('Maintainers in PR branch:\n' + yaml.dump(pr_file)); + core.info('Location of Maintainers in PR branch:'); + core.info(fs.realpathSync('./community/MAINTAINERS.yaml')); + - name: Debug newMaintainers output + run: | + echo "newMaintainers = ${{ steps.compare-files.outputs.newMaintainers }}" - name: Display welcome message - if: ${{steps.compare-files.outputs.newContributors != ''}} + if: steps.compare-files.outputs.newMaintainers != '' uses: actions/github-script@v6 with: - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.BOT_TOKEN }} script: | - const newContributors = `${{steps.compare-files.outputs.newContributors}}`.split(","); - const welcomeMessage = newContributors.map((contributor) => `@${contributor.trim().replace(/^@/, '')} Soon you will be invited to join the AsyncAPI GitHub organization and you will be added to the team that lists all TSC members. + const newMaintainers = "${{ steps.compare-files.outputs.newMaintainers }}".split(","); + const welcomeMessage = newMaintainers.map((maintainer) => `@${maintainer.trim().replace(/^@/, '')} I have invited you to join the AsyncAPI organization and you will soon be added to the team that lists all Maintainers. - We use this team to mention in different discussions in different places in GitHub where TSC opinion is needed or even voting on some topic. Once TSC is mentioned: + We use this team to mention in different discussions in different places in GitHub where Maintainer's opinion is needed or even voting on some topic. Once Maintainers are mentioned: - You get GitHub notification - - We also drop notification in our slack in #95_bot-tsc-members-mentioned channel - - We drop an email to people that subscribed to TSC news here https://www.asyncapi.com/community/tsc + - We also drop notification in our slack in #95_bot-maintainers-mentioned channel + - We drop an email to people that subscribed to Maintainer news here https://www.asyncapi.com/community/maintainers Pick the channel for notifications that you prefer. Welcome aboard! We are excited to have you as part of the team.`).join("\n"); @@ -84,5 +89,5 @@ jobs: env: SLACK_WEBHOOK: ${{secrets.SLACK_CI_FAIL_NOTIFY}} SLACK_TITLE: 🚨 Welcome new contributor action failed 🚨 - SLACK_MESSAGE: Failed to post a message to new TSC member + SLACK_MESSAGE: Failed to post a message to new Maintainer MSG_MINIMAL: true \ No newline at end of file From 6efca6d2d600fc717472d42bf207cfaee31fd3cc Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 3 Jul 2023 22:12:38 +0530 Subject: [PATCH 11/20] updated validate-tsc-member workflow --- .../tsc_members_validator/schema.json | 165 +++++++++--------- ...c-members.yml => validate-maintainers.yml} | 34 ++-- 2 files changed, 104 insertions(+), 95 deletions(-) rename .github/workflows/{validate-tsc-members.yml => validate-maintainers.yml} (59%) diff --git a/.github/workflows/tsc_members_validator/schema.json b/.github/workflows/tsc_members_validator/schema.json index 98e5a0b5d..d0ed85a87 100644 --- a/.github/workflows/tsc_members_validator/schema.json +++ b/.github/workflows/tsc_members_validator/schema.json @@ -1,84 +1,93 @@ { - "$id": "root", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "array", - "description": "List of all TSC members and information about them.", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "description": "Full name of the person, a nice human-readable name", - "examples": [ - "Lukasz Gornicki" - ] - }, - "github": { - "type": "string", - "minLength": 1, - "description": "In must be a valid GitHub handle. It is used to provide a link to person's profile on GitHub and display profile picture on the AsyncAPI website", - "examples": [ - "derberg" - ] - }, - "linkedin": { - "type": "string", - "minLength": 1, - "description": "Only LinkedIn profile name, everything you see after https://www.linkedin.com/in/ link. It is used on the AsyncAPI website to provide link to profile.", - "examples": [ - "lukasz-gornicki-a621914" - ] - }, - "twitter": { - "type": "string", - "minLength": 1, - "description": "Twitter profile name. It is used on the AsyncAPI website to provide link to profile.", - "examples": [ - "derberq" - ] - }, - "availableForHire": { - "type": "boolean", - "description": "It is not mandatory property as by default it is set to false. Nevertheless please add it, even if 'false' for better clarity. We use it on the AsyncAPI website to visually indicate that given person is available for hire.", - "default": false, - "examples": [ - true, - false - ] - }, - "company": { + "$id": "root", + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "List of all maintainers and information about them.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "description": "Full name of the person, a nice human-readable name", + "examples": [ + "Lukasz Gornicki" + ] + }, + "github": { + "type": "string", + "minLength": 1, + "description": "It must be a valid GitHub handle. It is used to provide a link to the person's profile on GitHub and display the profile picture on the AsyncAPI website", + "examples": [ + "derberg" + ] + }, + "linkedin": { + "type": "string", + "minLength": 1, + "description": "Only the LinkedIn profile name, everything you see after the https://www.linkedin.com/in/ link. It is used on the AsyncAPI website to provide a link to the profile.", + "examples": [ + "lukasz-gornicki-a621914" + ] + }, + "twitter": { + "type": "string", + "minLength": 1, + "description": "Twitter profile name. It is used on the AsyncAPI website to provide a link to the profile.", + "examples": [ + "derberq" + ] + }, + "availableForHire": { + "type": "boolean", + "description": "It is not a mandatory property as it is set to false by default. Nevertheless, please add it, even if 'false,' for better clarity. We use it on the AsyncAPI website to visually indicate whether the person is available for hire.", + "default": false, + "examples": [ + true, + false + ] + }, + "company": { + "type": "string", + "minLength": 1, + "description": "It must be clear if the maintainer is affiliated with a company. AsyncAPI's open governance model allows no more than 1/4 of maintainers to be from the same company. If you are an individual contributor, you do not have to provide this property. In the UI, we will mark you as an individual contributor if this property is missing.", + "examples": [ + "Postman" + ] + }, + "slack": { + "type": "string", + "description": "It must be a valid Slack ID. It is the ID of the person's profile in Slack", + "examples": [ + "U01QPAP1QWE" + ] + }, + "repos": { + "type": "array", + "minItems": 1, + "items": { "type": "string", - "minLength": 1, - "description": "It must be clear if given TSC member is affiliated with some company. AsyncAPI's open governance model allows no more than 1/4 of TSC representatives from the same company. In case you are an individual contributor, you do not have to provide this property. In the UI we will mark you as individual contributor if this property is missing.", + "description": "List of repository names that must match the GitHub name of the repository. It is used to provide a link to the repository on the AsyncAPI website", "examples": [ - "Postman" - ] - }, - "slack":{ - "type":"string", - "description": "It must be a valid slackID. It is the ID of the slack of the person 's profile", - "examples":[ - "U01QPAP1QWE" + "avro-schema-parser" ] - }, - "repos": { - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "description": "List of repositories names that must match the GitHub name of the repository. It is used to provide a link to the repository in AsyncAPI website", - "examples": [ - "avro-schema-parser" - ] - } } }, - "required": [ - "github", - "repos", - "slack" - ], - "additionalProperties": false - } - } \ No newline at end of file + "isTscMember": { + "type": "boolean", + "description": "Indicates whether the maintainer is a member of the technical steering committee", + "default": false, + "examples": [ + true, + false + ] + } + }, + "required": [ + "github", + "repos", + "slack" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/.github/workflows/validate-tsc-members.yml b/.github/workflows/validate-maintainers.yml similarity index 59% rename from .github/workflows/validate-tsc-members.yml rename to .github/workflows/validate-maintainers.yml index 13012efde..1afa70198 100644 --- a/.github/workflows/validate-tsc-members.yml +++ b/.github/workflows/validate-maintainers.yml @@ -1,16 +1,17 @@ -name: Validating the list of technical steering committee members +name: Validating the list of maintainers on: pull_request: types: [opened, reopened, synchronize, ready_for_review] paths: - - 'TSC_MEMBERS.json' + - 'MAINTAINERS.yaml' + jobs: - # make sure that changes in the TSC_MEMBERS file is not breaking the schema - # until we have TSC_MEMBERS.json updates automated we need to make sure we are not breaking things + # Make sure that changes in the MAINTAINERS.yaml file do not break the schema + # Until we have MAINTAINERS.yaml updates automated, we need to ensure we are not breaking things validate_schema: if: github.event.pull_request.draft == false - name: Validate JSON Schema for TSC_MEMBERS list + name: Validate JSON Schema for MAINTAINERS list runs-on: ubuntu-latest steps: - name: Checkout repository @@ -24,24 +25,24 @@ jobs: const fs = require('fs').promises; const schema = await fs.readFile('.github/workflows/tsc_members_validator/schema.json', 'utf8'); - const members = await fs.readFile('TSC_MEMBERS.json', 'utf8'); + const members = await fs.readFile('MAINTAINERS.yaml', 'utf8'); const ajv = new Ajv(); const validator = ajv.compile(JSON.parse(schema)); - const valid = validator(JSON.parse(members)); + const valid = validator(yaml.load(members)); if (!valid) { - core.error(`Validation of members file failed with the following errors:`); + core.error(`Validation of maintainers file failed with the following errors:`); core.error(validator.errors); } else { - core.info(`TSC members file is valid`); + core.info(`MAINTAINERS file is valid`); } - # open governance model doesn't allow more than 1/4 TSC members affiliated with a single company + # Open governance model doesn't allow more than 1/4 maintainers affiliated with a single company calculate_companies: if: github.event.pull_request.draft == false - name: Calculate TSC members affiliation + name: Calculate maintainers affiliation runs-on: ubuntu-latest steps: - name: Checkout repository @@ -50,18 +51,17 @@ jobs: uses: actions/github-script@v4 with: script: | - const members = require('./TSC_MEMBERS.json'); + const members = yaml.load(fs.readFileSync('./MAINTAINERS.yaml', 'utf8')); const allMembers = members.length; - const allowedMemberPerCompany = (allMembers/4).toFixed(0) + const allowedMemberPerCompany = (allMembers/4).toFixed(0); const numberOfMemByCompany = members.reduce((acc, m) => { const company = m.company && m.company.toLowerCase(); - if (company) acc.has(company) ? acc.set(company,acc.get(company)+1) : acc.set(company,1); + if (company) acc.has(company) ? acc.set(company, acc.get(company) + 1) : acc.set(company, 1); return acc; - }, new Map()) + }, new Map()); numberOfMemByCompany.forEach((numberOfRepresentatives, companyName) => { - if (numberOfRepresentatives > allowedMemberPerCompany) core.setFailed(`There are to many members affiliated with ${companyName} and it violates open governance model. ${numberOfRepresentatives} is more that 1/4 of ${allMembers}`) + if (numberOfRepresentatives > allowedMemberPerCompany) core.setFailed(`There are too many members affiliated with ${companyName} and it violates the open governance model. ${numberOfRepresentatives} is more than 1/4 of ${allMembers}`); }) - From 4a8e4e8bad764fd85076fe7c58a7c6590337fc9d Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 4 Jul 2023 11:43:05 +0530 Subject: [PATCH 12/20] fixed yaml error --- .github/workflows/validate-maintainers.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/validate-maintainers.yml b/.github/workflows/validate-maintainers.yml index 1afa70198..680d14157 100644 --- a/.github/workflows/validate-maintainers.yml +++ b/.github/workflows/validate-maintainers.yml @@ -17,12 +17,15 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - run: npm install ajv@6.12.6 + - name: Install dependencies + run: npm install js-yaml - name: Validate list with schema uses: actions/github-script@v4 with: script: | const Ajv = require("ajv"); const fs = require('fs').promises; + const yaml = require('js-yaml'); const schema = await fs.readFile('.github/workflows/tsc_members_validator/schema.json', 'utf8'); const members = await fs.readFile('MAINTAINERS.yaml', 'utf8'); @@ -47,10 +50,15 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v2 + - name: Install dependencies + run: npm install js-yaml - name: Calculate uses: actions/github-script@v4 with: script: | + const fs = require('fs'); + const yaml = require('js-yaml'); + const members = yaml.load(fs.readFileSync('./MAINTAINERS.yaml', 'utf8')); const allMembers = members.length; @@ -63,5 +71,7 @@ jobs: }, new Map()); numberOfMemByCompany.forEach((numberOfRepresentatives, companyName) => { - if (numberOfRepresentatives > allowedMemberPerCompany) core.setFailed(`There are too many members affiliated with ${companyName} and it violates the open governance model. ${numberOfRepresentatives} is more than 1/4 of ${allMembers}`); + if (numberOfRepresentatives > allowedMemberPerCompany) { + core.setFailed(`There are too many members affiliated with ${companyName} and it violates the open governance model. ${numberOfRepresentatives} is more than 1/4 of ${allMembers}`); + } }) From cba0b3f2a8764cecf6cbf71b7c4548498f3222da Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 4 Jul 2023 19:26:40 +0530 Subject: [PATCH 13/20] updated echo statement --- .../workflows/msg-to-new-member-pr-merged.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/msg-to-new-member-pr-merged.yml b/.github/workflows/msg-to-new-member-pr-merged.yml index d945233e9..3566fba14 100644 --- a/.github/workflows/msg-to-new-member-pr-merged.yml +++ b/.github/workflows/msg-to-new-member-pr-merged.yml @@ -59,27 +59,25 @@ jobs: core.info('Maintainers in PR branch:\n' + yaml.dump(pr_file)); core.info('Location of Maintainers in PR branch:'); core.info(fs.realpathSync('./community/MAINTAINERS.yaml')); + + - name: Set newMaintainers as environment variable + run: echo "newMaintainers=${{ steps.compare-files.outputs.newMaintainers }}" >> $GITHUB_ENV - name: Debug newMaintainers output run: | - echo "newMaintainers = ${{ steps.compare-files.outputs.newMaintainers }}" - + echo "newMaintainers = $newMaintainers" - name: Display welcome message - if: steps.compare-files.outputs.newMaintainers != '' + if: env.newMaintainers != '' uses: actions/github-script@v6 with: - github-token: ${{ secrets.BOT_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | - const newMaintainers = "${{ steps.compare-files.outputs.newMaintainers }}".split(","); + const newMaintainers = process.env.newMaintainers.split(","); const welcomeMessage = newMaintainers.map((maintainer) => `@${maintainer.trim().replace(/^@/, '')} I have invited you to join the AsyncAPI organization and you will soon be added to the team that lists all Maintainers. - We use this team to mention in different discussions in different places in GitHub where Maintainer's opinion is needed or even voting on some topic. Once Maintainers are mentioned: - - You get GitHub notification - We also drop notification in our slack in #95_bot-maintainers-mentioned channel - We drop an email to people that subscribed to Maintainer news here https://www.asyncapi.com/community/maintainers - Pick the channel for notifications that you prefer. Welcome aboard! We are excited to have you as part of the team.`).join("\n"); - const { owner, repo } = context.repo; const { number: issue_number } = context.issue; return github.rest.issues.createComment({ owner, repo, issue_number, body: welcomeMessage }); From 593e41990455006e3fc185043cc84e741d6b2b74 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 4 Jul 2023 19:38:07 +0530 Subject: [PATCH 14/20] updated teh script of validate maintainer workflow --- .github/workflows/validate-maintainers.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/validate-maintainers.yml b/.github/workflows/validate-maintainers.yml index 680d14157..7f6f7ed04 100644 --- a/.github/workflows/validate-maintainers.yml +++ b/.github/workflows/validate-maintainers.yml @@ -58,20 +58,21 @@ jobs: script: | const fs = require('fs'); const yaml = require('js-yaml'); - const members = yaml.load(fs.readFileSync('./MAINTAINERS.yaml', 'utf8')); - const allMembers = members.length; - - const allowedMemberPerCompany = (allMembers/4).toFixed(0); - const numberOfMemByCompany = members.reduce((acc, m) => { + // Filter in the members who are part of the TSC + const tscMembers = members.filter(member => member.isTscMember); + + const allTscMembers = tscMembers.length; + + const allowedMemberPerCompany = Math.floor(allTscMembers / 4); + const numberOfMemByCompany = tscMembers.reduce((acc, m) => { const company = m.company && m.company.toLowerCase(); - if (company) acc.has(company) ? acc.set(company, acc.get(company) + 1) : acc.set(company, 1); return acc; }, new Map()); numberOfMemByCompany.forEach((numberOfRepresentatives, companyName) => { if (numberOfRepresentatives > allowedMemberPerCompany) { - core.setFailed(`There are too many members affiliated with ${companyName} and it violates the open governance model. ${numberOfRepresentatives} is more than 1/4 of ${allMembers}`); + core.setFailed(`There are too many TSC members affiliated with ${companyName} and it violates the open governance model. ${numberOfRepresentatives} is more than 1/4 of ${allTscMembers}`); } - }) + }); From 2a6515f61bc2b7fef9a54a369547bc411a9967b4 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 4 Jul 2023 19:41:32 +0530 Subject: [PATCH 15/20] removed slack from required field --- .github/workflows/tsc_members_validator/schema.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tsc_members_validator/schema.json b/.github/workflows/tsc_members_validator/schema.json index d0ed85a87..63408c53a 100644 --- a/.github/workflows/tsc_members_validator/schema.json +++ b/.github/workflows/tsc_members_validator/schema.json @@ -85,8 +85,7 @@ }, "required": [ "github", - "repos", - "slack" + "repos" ], "additionalProperties": false } From d6e1b2c141c5834a52f89225e0832439d439468d Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 5 Jul 2023 14:37:06 +0530 Subject: [PATCH 16/20] added nuno to maintainers file --- MAINTAINERS.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/MAINTAINERS.yaml b/MAINTAINERS.yaml index d58703ac7..a2e4039c9 100644 --- a/MAINTAINERS.yaml +++ b/MAINTAINERS.yaml @@ -489,3 +489,11 @@ isTscMember: false repos: - dotnet-rabbitmq-template +- name: mr-nuno + github: mr-nuno + slack: U03A5345 + availableForHire: false + company: GmbH + isTscMember: false + repos: + - dotnet-rabbitmq-template From 4b4d91d84af409c2cdf56465143619d669985623 Mon Sep 17 00:00:00 2001 From: Richa <41283476+14Richa@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:37:57 +0530 Subject: [PATCH 17/20] Update .github/workflows/validate-maintainers.yml Co-authored-by: Lukasz Gornicki --- .github/workflows/validate-maintainers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validate-maintainers.yml b/.github/workflows/validate-maintainers.yml index 7f6f7ed04..d7179f777 100644 --- a/.github/workflows/validate-maintainers.yml +++ b/.github/workflows/validate-maintainers.yml @@ -45,7 +45,7 @@ jobs: # Open governance model doesn't allow more than 1/4 maintainers affiliated with a single company calculate_companies: if: github.event.pull_request.draft == false - name: Calculate maintainers affiliation + name: Calculate TSC members affiliation runs-on: ubuntu-latest steps: - name: Checkout repository From 7a9a0698b1299a7a4e6ab9d9b8a71dc7045ffe4e Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 5 Jul 2023 16:12:09 +0530 Subject: [PATCH 18/20] added thulie in maintainers.yaml --- MAINTAINERS.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/MAINTAINERS.yaml b/MAINTAINERS.yaml index a2e4039c9..26eaf29e8 100644 --- a/MAINTAINERS.yaml +++ b/MAINTAINERS.yaml @@ -497,3 +497,14 @@ isTscMember: false repos: - dotnet-rabbitmq-template +- name: Thulisile Sibanda + github: thulieblack + linkedin: v-thulisile-sibanda + twitter: thulieblack + slack: U03CNJPMT7C + availableForHire: false + company: AsyncAPI Initiative + isTscMember: true + repos: + - website + - community \ No newline at end of file From 1147ec3013f158afc6cb944f5ecc3548c4722cf9 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 5 Jul 2023 17:54:45 +0530 Subject: [PATCH 19/20] added js-yaml version --- .github/workflows/msg-to-new-member-pr-merged.yml | 2 +- .github/workflows/validate-maintainers.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/msg-to-new-member-pr-merged.yml b/.github/workflows/msg-to-new-member-pr-merged.yml index 3566fba14..1d24c861e 100644 --- a/.github/workflows/msg-to-new-member-pr-merged.yml +++ b/.github/workflows/msg-to-new-member-pr-merged.yml @@ -28,7 +28,7 @@ jobs: run: ls -la - run: cd community && git checkout HEAD^ - name: Install dependencies - run: npm install js-yaml + run: npm install js-yaml@4.1.0 - name: Compare files id: compare-files uses: actions/github-script@v6 diff --git a/.github/workflows/validate-maintainers.yml b/.github/workflows/validate-maintainers.yml index d7179f777..b7378e484 100644 --- a/.github/workflows/validate-maintainers.yml +++ b/.github/workflows/validate-maintainers.yml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@v2 - run: npm install ajv@6.12.6 - name: Install dependencies - run: npm install js-yaml + run: npm install js-yaml@4.1.0 - name: Validate list with schema uses: actions/github-script@v4 with: From a98dfda74e329db83d7967225b9c1c47c8f8203f Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 5 Jul 2023 18:04:54 +0530 Subject: [PATCH 20/20] added version --- .github/workflows/validate-maintainers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validate-maintainers.yml b/.github/workflows/validate-maintainers.yml index b7378e484..7890c4632 100644 --- a/.github/workflows/validate-maintainers.yml +++ b/.github/workflows/validate-maintainers.yml @@ -51,7 +51,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - name: Install dependencies - run: npm install js-yaml + run: npm install js-yaml@4.1.0 - name: Calculate uses: actions/github-script@v4 with: