From 2fa7dc3654715ed59cc0543aad05380b6db07279 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 24 May 2023 18:58:40 +0530 Subject: [PATCH 01/47] added readme file for flowchart of gsoc project --- .../2023/workflowautomation/README.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 mentorship/summerofcode/2023/workflowautomation/README.md diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md new file mode 100644 index 000000000..d072a4521 --- /dev/null +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -0,0 +1,68 @@ +### Automate paper work around project governance + + This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. + + +The flowchart describes three subgraphs related to the maintenance of Maintainers.yaml, onboarding of new maintainers, and updates to Emeritus.yaml file. + +The first subgraph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle the new format, automating the updating of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a CODEOWNERS update workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. + + +```mermaid +graph LR; + subgraph Automate the updation of Maintainers.yaml + + A[Migrate to YAML] --> B[Update website code]; + B --> C[Automate Maintainers.yaml updation]; + C --> D[Create validation workflow]; + C --> E[Create CODEOWNERS update workflow]; + C --> F[Allow humans to update social info and TSC member property]; + C --> G[Create aggregation workflow]; + D --> H[Block PR if record added/removed by human]; + E --> I[Update Maintainers.yaml]; + G --> I; + end; +``` + + +The second subgraph outlines the steps for onboarding new maintainers. This involves creating an invitation workflow, creating a TSC member change workflow, and creating a notification workflow to inform existing members about the new addition. + +```mermaid +graph LR; + J[New Maintainer Onboarding] --> K[Create invitation workflow]; + J --> L[Create TSC member change workflow]; + K --> M[Create notification workflow]; + L --> M; +``` + +The third subgraph outlines the steps for updating the Emeritus.yaml file. This involves creating a removal workflow to remove members from the organization/team, and creating a pull request review workflow to ensure that changes are reviewed by a human before merging. + +```mermaid +graph LR; + N[Updates to Emeritus.yaml file] --> O[Create removal workflow]; + O --> P[Remove from organization/team]; + O --> Q[Create PR review workflow]; +``` + + +Overall, these subgraphs represent a comprehensive approach to maintaining and updating the YAML files related to maintainers and TSC members, ensuring that new maintainers are onboarded effectively, and keeping the Emeritus.yaml file up to date. This approach involves a range of workflows and automated processes to streamline these tasks and ensure they are completed efficiently andaccurately. By implementing this approach, the team can manage these tasks more effectively and focus on other important aspects of software development and website maintenance. + + + +### Create validation workflow + + + +```mermaid +graph LR; + A[Create validation workflow] --> B[Parse Maintainers.yaml file]; + B --> C[Check for new records]; + C -- Yes --> D[Check for removal of records]; + C -- No --> E[Check for removal of records]; + D --> F[Fail if removals detected]; + E --> G[Check for bot authorship]; + G -- Yes --> H[Check for record validity]; + G -- No --> I[Warn if not authored by bot]; + H --> J[Fail if record is invalid]; + I --> J; +``` \ No newline at end of file From 7cf8553bb9ae30f8ba1fbaeddab96e75e42fba4b Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 25 May 2023 12:10:45 +0530 Subject: [PATCH 02/47] fix in heading --- mentorship/summerofcode/2023/workflowautomation/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index d072a4521..b8c70a78c 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -49,8 +49,7 @@ Overall, these subgraphs represent a comprehensive approach to maintaining and u -### Create validation workflow - +### Validation Workflow ```mermaid From a625758551b3aa8c09c6a81592f8557ab8833ccd Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 30 May 2023 11:33:33 +0530 Subject: [PATCH 03/47] added new flowchart --- .../2023/workflowautomation/README.md | 113 ++++++++++++++++-- 1 file changed, 102 insertions(+), 11 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index b8c70a78c..5c5590579 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -48,20 +48,111 @@ graph LR; Overall, these subgraphs represent a comprehensive approach to maintaining and updating the YAML files related to maintainers and TSC members, ensuring that new maintainers are onboarded effectively, and keeping the Emeritus.yaml file up to date. This approach involves a range of workflows and automated processes to streamline these tasks and ensure they are completed efficiently andaccurately. By implementing this approach, the team can manage these tasks more effectively and focus on other important aspects of software development and website maintenance. +### Workflows -### Validation Workflow +### validate-maintainers.yaml +This workflow listens for changes to the Maintainers.yaml file and validates whether the changes were made by the bot or a human. If a human made the changes, the workflow blocks the pull request and notifies the user with a proper message. ```mermaid graph LR; - A[Create validation workflow] --> B[Parse Maintainers.yaml file]; - B --> C[Check for new records]; - C -- Yes --> D[Check for removal of records]; - C -- No --> E[Check for removal of records]; - D --> F[Fail if removals detected]; - E --> G[Check for bot authorship]; - G -- Yes --> H[Check for record validity]; - G -- No --> I[Warn if not authored by bot]; - H --> J[Fail if record is invalid]; - I --> J; +A[New record added to Maintainers.yaml?] --> |Yes| B[Validate record and block if added by human]; +B --> C[Notify user with proper message]; +C --> D[End]; +A --> |No| D[End]; +``` + +### update-maintainers.yaml + +This workflow listens for changes to the CODEOWNERS file and updates the Maintainers.yaml file accordingly. It also picks up the GitHub username, Twitter handle, and the name of the maintained repository from the API and notifies the affected users. + +```mermaid +graph TD; +A[Changes made to CODEOWNERS file?] --> |Yes| B[Update Maintainers.yaml]; +B --> C[Pick up GitHub username, Twitter handle, and repository name from API]; +C --> D[Notify affected users]; +D --> E[End]; +A --> |No| E[End]; +``` + +### allow-updates.yaml + +This workflow allows humans to update social info or the tsc_member property in the Maintainers.yaml file. + +```mermaid +graph TD; +A[User updates social info or tsc_member value?] --> |Yes| B[Allow update]; +B --> C[End]; +A --> |No| D[Block update and notify user]; +D --> E[End]; +``` + +### invite-maintainers.yaml + +This workflow is triggered when a new maintainer is added. It calls the GitHub API to invite the maintainer to the AsyncAPI organization and creates a new team for the maintainers. The workflow also adds the newmaintainer to the Maintainers GitHub team. + +```mermaid +graph TD; +A[New maintainer added?] --> |Yes| B[Call GitHub API to invite maintainer]; +B --> C[Create new team and add maintainer to it]; +C --> D[Update Maintainers.yaml]; +D --> E[End]; +A --> |No| E[End]; +``` + +### update-tsc-team.yaml + +This workflow is triggered when there is a change to the tsc_member property. It adds or removes the member from the TSC team based on the value of the property. + +```mermaid +graph TD; +A[tsc_member value change?] --> |Yes| B[Add or remove member from tsc team]; +B --> C[Notify affected users]; +C --> D[End]; +A --> |No| D[End]; +``` + +### notify-tsc-members.yaml + +This workflow is triggered when a new member is added to the TSC. It notifies the new member about ways to get notified when TSC members are called out and notifies other TSC members by mentioning the GitHub team. + +```mermaid +graph TD; +A[PR modifies tsc_member to true?] --> |Yes| B[Notify new member about ways to get notified]; +B --> C[Notify TSC members about new member]; +C --> D[End]; +A --> |No| D[End]; +``` + +### update-emeritus.yaml + +This workflow is triggered when someone is removed from the Maintainers.yaml file because they no longer maintain any repository. It updates the Emeritus.yaml file with the list of people that left the project. + +```mermaid +graph TD; +A[Someone removed from Maintainers.yaml?] --> |Yes| B[Update Emeritus.yaml]; +B --> C[End]; +A --> |No| C[End]; +``` + +### remove-from-organization.yaml + +This workflow is triggered when someone is removed from the Maintainers.yaml file. It removes the person from the AsyncAPI organization and the proper teams. + +```mermaid +graph TD; +A[Someone removed from Maintainers.yaml?] --> |Yes| B[Remove person from organization and teams]; +B --> C[End]; +A --> |No| C[End]; +``` + +#### review-emeritus-pr.yaml + +This workflow is triggered when a PR modifies the `Emeritus.yamlfile. It reviews and merges the PR only after it has been reviewed by a human. + +```mermaid +graph TD; +A[PR modifies Emeritus.yaml file?] --> |Yes| B[Review and merge PR]; +B --> C[End]; +A --> |No| C[End]; ``` \ No newline at end of file From 07fce451f1be511fc3fcca6f297a74820742c422 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 30 May 2023 13:22:16 +0530 Subject: [PATCH 04/47] minor fixes flowchart --- .../summerofcode/2023/workflowautomation/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 5c5590579..4e6de1001 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -12,12 +12,12 @@ The first subgraph outlines the steps to automate the updating of Maintainers.ya graph LR; subgraph Automate the updation of Maintainers.yaml - A[Migrate to YAML] --> B[Update website code]; - B --> C[Automate Maintainers.yaml updation]; - C --> D[Create validation workflow]; - C --> E[Create CODEOWNERS update workflow]; + A[Migrate TSC_MEMBERS.JSON to TSC_MEMBERS.YAML] --> B[Update website code to handle YAML format]; + B --> C[Automate Maintainers.yaml update]; + C --> D[Validation workflow]; + C --> E[CODEOWNERS update workflow]; C --> F[Allow humans to update social info and TSC member property]; - C --> G[Create aggregation workflow]; + C --> G[Aggregation workflow]; D --> H[Block PR if record added/removed by human]; E --> I[Update Maintainers.yaml]; G --> I; From fcc949e3aa4e04dacaf3d52d456b0537dc3235fd Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 30 May 2023 13:31:31 +0530 Subject: [PATCH 05/47] minor fix --- mentorship/summerofcode/2023/workflowautomation/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 4e6de1001..7255e653a 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -5,7 +5,7 @@ The flowchart describes three subgraphs related to the maintenance of Maintainers.yaml, onboarding of new maintainers, and updates to Emeritus.yaml file. -The first subgraph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle the new format, automating the updating of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a CODEOWNERS update workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. +The first subgraph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a CODEOWNERS update workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. ```mermaid @@ -45,7 +45,7 @@ graph LR; ``` -Overall, these subgraphs represent a comprehensive approach to maintaining and updating the YAML files related to maintainers and TSC members, ensuring that new maintainers are onboarded effectively, and keeping the Emeritus.yaml file up to date. This approach involves a range of workflows and automated processes to streamline these tasks and ensure they are completed efficiently andaccurately. By implementing this approach, the team can manage these tasks more effectively and focus on other important aspects of software development and website maintenance. +Overall, these subgraphs represent a comprehensive approach to maintaining and updating the YAML files related to maintainers and TSC members, ensuring that new maintainers are onboarded effectively, and keeping the Emeritus.yaml file up to date. This approach involves a range of workflows and automated processes to streamline these tasks. ### Workflows From f1ba782de664f8e0878ed30107503a9821f7e106 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 30 May 2023 13:33:19 +0530 Subject: [PATCH 06/47] minor fix --- mentorship/summerofcode/2023/workflowautomation/README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 7255e653a..c5707ac02 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -3,9 +3,7 @@ This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. -The flowchart describes three subgraphs related to the maintenance of Maintainers.yaml, onboarding of new maintainers, and updates to Emeritus.yaml file. - -The first subgraph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a CODEOWNERS update workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. +The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a CODEOWNERS update workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. ```mermaid @@ -25,7 +23,7 @@ graph LR; ``` -The second subgraph outlines the steps for onboarding new maintainers. This involves creating an invitation workflow, creating a TSC member change workflow, and creating a notification workflow to inform existing members about the new addition. +The second graph outlines the steps for onboarding new maintainers. This involves creating an invitation workflow, creating a TSC member change workflow, and creating a notification workflow to inform existing members about the new addition. ```mermaid graph LR; @@ -35,7 +33,7 @@ graph LR; L --> M; ``` -The third subgraph outlines the steps for updating the Emeritus.yaml file. This involves creating a removal workflow to remove members from the organization/team, and creating a pull request review workflow to ensure that changes are reviewed by a human before merging. +The third graph outlines the steps for updating the Emeritus.yaml file. This involves creating a removal workflow to remove members from the organization/team, and creating a pull request review workflow to ensure that changes are reviewed by a human before merging. ```mermaid graph LR; From f7c3bd843258a9b9c4592345c07315ba177eea37 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 1 Jun 2023 15:03:06 +0530 Subject: [PATCH 07/47] changed a flowchart of invite-maintainers.yaml --- mentorship/summerofcode/2023/workflowautomation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index c5707ac02..ac56b8046 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -92,7 +92,7 @@ This workflow is triggered when a new maintainer is added. It calls the GitHub A ```mermaid graph TD; A[New maintainer added?] --> |Yes| B[Call GitHub API to invite maintainer]; -B --> C[Create new team and add maintainer to it]; +B --> C[Add maintainer to existing team]; C --> D[Update Maintainers.yaml]; D --> E[End]; A --> |No| E[End]; From 4a89d9f4ad136089b5004242a81ea4332fdc7500 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 1 Jun 2023 22:19:04 +0530 Subject: [PATCH 08/47] added note label on locations of workflows --- .../2023/workflowautomation/README.md | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index ac56b8046..2b6fb429e 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -48,10 +48,12 @@ Overall, these subgraphs represent a comprehensive approach to maintaining and u ### Workflows -### validate-maintainers.yaml +### `validate-maintainers.yaml` This workflow listens for changes to the Maintainers.yaml file and validates whether the changes were made by the bot or a human. If a human made the changes, the workflow blocks the pull request and notifies the user with a proper message. +> Note: This workflow should be located in every repository. + ```mermaid graph LR; A[New record added to Maintainers.yaml?] --> |Yes| B[Validate record and block if added by human]; @@ -60,10 +62,12 @@ C --> D[End]; A --> |No| D[End]; ``` -### update-maintainers.yaml +### `update-maintainers.yaml` This workflow listens for changes to the CODEOWNERS file and updates the Maintainers.yaml file accordingly. It also picks up the GitHub username, Twitter handle, and the name of the maintained repository from the API and notifies the affected users. +> Note: This workflow should be located in every repository. + ```mermaid graph TD; A[Changes made to CODEOWNERS file?] --> |Yes| B[Update Maintainers.yaml]; @@ -73,10 +77,12 @@ D --> E[End]; A --> |No| E[End]; ``` -### allow-updates.yaml +### `allow-updates.yaml` This workflow allows humans to update social info or the tsc_member property in the Maintainers.yaml file. +> Note: This workflow should be located in every repository. + ```mermaid graph TD; A[User updates social info or tsc_member value?] --> |Yes| B[Allow update]; @@ -85,10 +91,12 @@ A --> |No| D[Block update and notify user]; D --> E[End]; ``` -### invite-maintainers.yaml +### `invite-maintainers.yaml` This workflow is triggered when a new maintainer is added. It calls the GitHub API to invite the maintainer to the AsyncAPI organization and creates a new team for the maintainers. The workflow also adds the newmaintainer to the Maintainers GitHub team. +> Note: This workflow should be located in the community repository. + ```mermaid graph TD; A[New maintainer added?] --> |Yes| B[Call GitHub API to invite maintainer]; @@ -98,10 +106,12 @@ D --> E[End]; A --> |No| E[End]; ``` -### update-tsc-team.yaml +### `update-tsc-team.yaml` This workflow is triggered when there is a change to the tsc_member property. It adds or removes the member from the TSC team based on the value of the property. +> Note: This workflow should be located in every repository. + ```mermaid graph TD; A[tsc_member value change?] --> |Yes| B[Add or remove member from tsc team]; @@ -110,10 +120,12 @@ C --> D[End]; A --> |No| D[End]; ``` -### notify-tsc-members.yaml +### `notify-tsc-members.yaml` This workflow is triggered when a new member is added to the TSC. It notifies the new member about ways to get notified when TSC members are called out and notifies other TSC members by mentioning the GitHub team. +> Note: This workflow should be located in the community repository. + ```mermaid graph TD; A[PR modifies tsc_member to true?] --> |Yes| B[Notify new member about ways to get notified]; @@ -122,10 +134,12 @@ C --> D[End]; A --> |No| D[End]; ``` -### update-emeritus.yaml +### `update-emeritus.yaml` This workflow is triggered when someone is removed from the Maintainers.yaml file because they no longer maintain any repository. It updates the Emeritus.yaml file with the list of people that left the project. +> Note: This workflow should be located in the community repository. + ```mermaid graph TD; A[Someone removed from Maintainers.yaml?] --> |Yes| B[Update Emeritus.yaml]; @@ -133,10 +147,12 @@ B --> C[End]; A --> |No| C[End]; ``` -### remove-from-organization.yaml +### `remove-from-organization.yaml` This workflow is triggered when someone is removed from the Maintainers.yaml file. It removes the person from the AsyncAPI organization and the proper teams. +> Note: This workflow should be located in the community repository. + ```mermaid graph TD; A[Someone removed from Maintainers.yaml?] --> |Yes| B[Remove person from organization and teams]; @@ -144,10 +160,12 @@ B --> C[End]; A --> |No| C[End]; ``` -#### review-emeritus-pr.yaml +#### `review-emeritus-pr.yaml` This workflow is triggered when a PR modifies the `Emeritus.yamlfile. It reviews and merges the PR only after it has been reviewed by a human. +> Note: This workflow should be located in the community repository. + ```mermaid graph TD; A[PR modifies Emeritus.yaml file?] --> |Yes| B[Review and merge PR]; From 6f25dcca81b4e2f5214c15e4117760c962792db4 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 1 Jun 2023 22:49:57 +0530 Subject: [PATCH 09/47] minor fixes --- mentorship/summerofcode/2023/workflowautomation/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 2b6fb429e..13b08c3ac 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -3,7 +3,7 @@ This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. -The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a CODEOWNERS update workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. +The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a update-maintainers workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. ```mermaid @@ -13,7 +13,7 @@ graph LR; A[Migrate TSC_MEMBERS.JSON to TSC_MEMBERS.YAML] --> B[Update website code to handle YAML format]; B --> C[Automate Maintainers.yaml update]; C --> D[Validation workflow]; - C --> E[CODEOWNERS update workflow]; + C --> E[update-maintainers workflow]; C --> F[Allow humans to update social info and TSC member property]; C --> G[Aggregation workflow]; D --> H[Block PR if record added/removed by human]; From ce6a1d115933f0755d8f417c5998533e612c4aaf Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 1 Jun 2023 22:55:56 +0530 Subject: [PATCH 10/47] added a note in first workflow --- mentorship/summerofcode/2023/workflowautomation/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 13b08c3ac..aff5abb08 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -22,6 +22,8 @@ graph LR; end; ``` +> Note: Please remember to set this workflow as required in the repository settings to prevent merging PRs if the workflow fails. + The second graph outlines the steps for onboarding new maintainers. This involves creating an invitation workflow, creating a TSC member change workflow, and creating a notification workflow to inform existing members about the new addition. From 8adbd86ed010d7f807ba29f9471b4d3ff73d0c70 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 2 Jun 2023 17:07:33 +0530 Subject: [PATCH 11/47] changed validation workflow --- .../summerofcode/2023/workflowautomation/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index aff5abb08..3c375fda6 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -58,10 +58,11 @@ This workflow listens for changes to the Maintainers.yaml file and validates whe ```mermaid graph LR; -A[New record added to Maintainers.yaml?] --> |Yes| B[Validate record and block if added by human]; -B --> C[Notify user with proper message]; -C --> D[End]; -A --> |No| D[End]; +A[New record added to Maintainers.yaml?] --> |Yes| B[Validate record]; +B --> |Validation failed| C[Block pull request]; +B --> |Validation passed| D[Continue with pull request]; +A --> |No| D[Continue with pull request]; + ``` ### `update-maintainers.yaml` From 9a59585f0fe38eca898352512799c6c9d3ebdb7d Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 2 Jun 2023 17:25:51 +0530 Subject: [PATCH 12/47] fixed update-maintainers workflow --- .../summerofcode/2023/workflowautomation/README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 3c375fda6..db382aae4 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -73,11 +73,16 @@ This workflow listens for changes to the CODEOWNERS file and updates the Maintai ```mermaid graph TD; -A[Changes made to CODEOWNERS file?] --> |Yes| B[Update Maintainers.yaml]; +A[Changes made to CODEOWNERS file?] --> |New maintainer added| B[Update Maintainers.yaml]; +A --> |Maintainer removed| F[Check if maintainer has other repositories]; B --> C[Pick up GitHub username, Twitter handle, and repository name from API]; C --> D[Notify affected users]; D --> E[End]; -A --> |No| E[End]; +F --> |Maintainer has other repositories| G[Do not remove from Maintainers.yaml]; +F --> |Maintainer has no other repositories| H[Remove from Maintainers.yaml]; +H --> I[Notify affected users]; +I --> E; + ``` ### `allow-updates.yaml` From 6de613973950f30825bdea8514adfea804105728 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 2 Jun 2023 17:43:07 +0530 Subject: [PATCH 13/47] minor fix --- mentorship/summerofcode/2023/workflowautomation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index db382aae4..49abcb992 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -101,7 +101,7 @@ D --> E[End]; ### `invite-maintainers.yaml` -This workflow is triggered when a new maintainer is added. It calls the GitHub API to invite the maintainer to the AsyncAPI organization and creates a new team for the maintainers. The workflow also adds the newmaintainer to the Maintainers GitHub team. +This workflow is triggered when a new maintainer is added. It calls the GitHub API to invite the maintainer to the AsyncAPI organization and adds to a existing team for the maintainers. The workflow also adds the new maintainer to the Maintainers GitHub team. > Note: This workflow should be located in the community repository. From ebe06146bf67894fc8cf92001d8703e0e1f2c0ab Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 2 Jun 2023 17:48:24 +0530 Subject: [PATCH 14/47] minor fix --- mentorship/summerofcode/2023/workflowautomation/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 49abcb992..a2c80dc58 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -22,8 +22,6 @@ graph LR; end; ``` -> Note: Please remember to set this workflow as required in the repository settings to prevent merging PRs if the workflow fails. - The second graph outlines the steps for onboarding new maintainers. This involves creating an invitation workflow, creating a TSC member change workflow, and creating a notification workflow to inform existing members about the new addition. @@ -54,7 +52,7 @@ Overall, these subgraphs represent a comprehensive approach to maintaining and u This workflow listens for changes to the Maintainers.yaml file and validates whether the changes were made by the bot or a human. If a human made the changes, the workflow blocks the pull request and notifies the user with a proper message. -> Note: This workflow should be located in every repository. +> Note: This workflow should be located in every repository and should be made a required status check in the repository settings, so if it fails, PR cannot be merged. ```mermaid graph LR; From d8eddd2cb5e8213cc80108b54eee322b8c0c18f8 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 2 Jun 2023 18:00:40 +0530 Subject: [PATCH 15/47] updated first graph --- .../2023/workflowautomation/README.md | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index a2c80dc58..5a75c2ef7 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -3,23 +3,32 @@ This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. -The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating a update-maintainers workflow, allowing humans to update social info and TSC member property, and creating an aggregation workflow to provide information on the number of TSC members, per company information, and the number of members that can be added by each company. +The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating an update-maintainers workflow, and allowing humans to update social info and TSC member property. ```mermaid graph LR; - subgraph Automate the updation of Maintainers.yaml - - A[Migrate TSC_MEMBERS.JSON to TSC_MEMBERS.YAML] --> B[Update website code to handle YAML format]; - B --> C[Automate Maintainers.yaml update]; - C --> D[Validation workflow]; - C --> E[update-maintainers workflow]; - C --> F[Allow humans to update social info and TSC member property]; - C --> G[Aggregation workflow]; - D --> H[Block PR if record added/removed by human]; - E --> I[Update Maintainers.yaml]; - G --> I; - end; + +subgraph Migrate TSC_MEMBERS.JSON to TSC_MEMBERS.YAML + A[Convert TSC_MEMBERS.JSON to TSC_MEMBERS.YAML] +end + +subgraph Update website code to handle YAML format + B[Update website code to handle YAML format] +end + +subgraph Automate Maintainers.yaml update + C[Automate Maintainers.yaml update] + D[Validation workflow] + E[update-maintainers workflow] + F[Allow humans to update social info and TSC member property] +end + +A --> B +B --> C +C --> D +C --> E +C --> F ``` From ffe2f0ab4b15d3e8723483497f8e3688d6f6bb6c Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 2 Jun 2023 18:09:57 +0530 Subject: [PATCH 16/47] changed some flowchart --- .../2023/workflowautomation/README.md | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 5a75c2ef7..e07fa7fd7 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -100,15 +100,20 @@ This workflow allows humans to update social info or the tsc_member property in ```mermaid graph TD; -A[User updates social info or tsc_member value?] --> |Yes| B[Allow update]; -B --> C[End]; -A --> |No| D[Block update and notify user]; -D --> E[End]; +subgraph Maintainers.yaml update workflow + A[User updates social info or tsc_member value?] --> |Yes| B[Allow update]; + B --> C[Update Maintainers.yaml]; + C --> D[Validate record]; + D --> |Validation failed| E[Block update and notify user]; + D --> |Validation passed| F[Notify affected users]; + E --> G[End]; + F --> G[End]; +end ``` ### `invite-maintainers.yaml` -This workflow is triggered when a new maintainer is added. It calls the GitHub API to invite the maintainer to the AsyncAPI organization and adds to a existing team for the maintainers. The workflow also adds the new maintainer to the Maintainers GitHub team. +This workflow is triggered when a new maintainer is added. It calls the GitHub API to invite the maintainer to the AsyncAPI organization and adds to an existing team for the maintainers. The workflow also adds the new maintainer to the Maintainers GitHub team. > Note: This workflow should be located in the community repository. @@ -129,10 +134,15 @@ This workflow is triggered when there is a change to the tsc_member property. It ```mermaid graph TD; -A[tsc_member value change?] --> |Yes| B[Add or remove member from tsc team]; -B --> C[Notify affected users]; -C --> D[End]; -A --> |No| D[End]; + A[tsc_member value change?] --> |Yes| B[Add or remove member from TSC team?]; + B --> |Add| C[Add member to TSC team]; + B --> |Remove| D[Remove member from TSC team]; + C --> E[Update TSC team membership]; + D --> E[Update TSC team membership]; + E --> F[Notify affected users]; + F --> G[End]; + A --> |No| G[End]; + ``` ### `notify-tsc-members.yaml` From d5eb1fd5efdddf899310ed49adc60f6c478a641e Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 5 Jun 2023 11:36:24 +0530 Subject: [PATCH 17/47] updated flowcharts --- .../2023/workflowautomation/README.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index e07fa7fd7..33f9446f0 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -100,15 +100,14 @@ This workflow allows humans to update social info or the tsc_member property in ```mermaid graph TD; -subgraph Maintainers.yaml update workflow - A[User updates social info or tsc_member value?] --> |Yes| B[Allow update]; + A[Is the user updating social info or the tsc_member property?] --> |Yes| B[Allow update]; B --> C[Update Maintainers.yaml]; - C --> D[Validate record]; - D --> |Validation failed| E[Block update and notify user]; - D --> |Validation passed| F[Notify affected users]; + C --> D[Validate the updated record]; + D --> |Record is invalid| E[Block update and notify the user]; + D --> |Record is valid| F[Notify affected users of the update]; E --> G[End]; F --> G[End]; -end + ``` ### `invite-maintainers.yaml` @@ -119,11 +118,13 @@ This workflow is triggered when a new maintainer is added. It calls the GitHub A ```mermaid graph TD; -A[New maintainer added?] --> |Yes| B[Call GitHub API to invite maintainer]; -B --> C[Add maintainer to existing team]; -C --> D[Update Maintainers.yaml]; -D --> E[End]; -A --> |No| E[End]; + A[Is a new maintainer added to the AsyncAPI community?] --> |Yes| B[Call GitHub API to invite maintainer to the organization]; + B --> C[Add maintainer to an existing team for maintainers]; + C --> D[Update Maintainers.yaml]; + D --> E[Add maintainer to the Maintainers GitHub team]; + E --> F[End]; + A --> |No| F[End]; + ``` ### `update-tsc-team.yaml` From a8af234cb36006104b92a4a423b4b3f362680100 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 6 Jun 2023 20:17:23 +0530 Subject: [PATCH 18/47] added new charts which shows connection in workflow --- .../2023/workflowautomation/README.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 33f9446f0..3c7d61329 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -197,4 +197,37 @@ graph TD; A[PR modifies Emeritus.yaml file?] --> |Yes| B[Review and merge PR]; B --> C[End]; A --> |No| C[End]; +``` + +#### Workflow Diagram: Interconnections between Workflows + +The following charts showcases the interconnections between different workflows that collectively automate the process of maintaining and updating the Maintainers.yaml file. + +First flowchart represents a process for handling changes to the CODEOWNERS file. If a new maintainer is added, the system updates the maintainers' information, allows further updates, and validates the changes. If the validation passes, the pull request is merged, and the new maintainer is invited to the TSC team. In case the validation fails, the pull request is blocked, and the user is notified of the error. + +```mermaid +graph TD; +A[Changes made to CODEOWNERS file?] --> |New maintainer added| B[update-maintainers.yaml] +B --> C[allow-updates.yaml] +C --> D[validate-maintainers.yaml] +D --> |Validation passed| E[PR gets merged] +E --> F[invite-maintainers.yaml] +F --> G[notify-tsc-members.yaml] +D --> |Validation failed| H[Block pull request] +H --> I[Notify user with error message] +``` + +Second flowchart manages the removal of a maintainer from the CODEOWNERS file. It updates the maintainers' information, validates the changes, and either blocks or merges the pull request accordingly. If the pull request is merged, the TSC team is updated and notified. If the removed maintainer no longer maintains any repository, they are added to the Emeritus list and removed from the organization and relevant teams. + +```mermaid +graph TD; +A[Changes made to CODEOWNERS file?] --> |Maintainer removed| H[update-maintainers.yaml] +H --> I[allow-updates.yaml] +I --> J[validate-maintainers.yaml] +J --> |Validation failed| K[Block pull request] +J --> |Validation passed| L[PR gets merged] +L --> M[update-tsc-team.yaml] +M --> N[notify-tsc-members.yaml] +N --> O[update-emeritus.yaml] +O --> P[remove-from-organization.yaml] ``` \ No newline at end of file From 4519cf24b1471b2d0287430c9d0c92d0ed48ce17 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Fri, 16 Jun 2023 10:46:38 +0530 Subject: [PATCH 19/47] minor fix --- .../2023/workflowautomation/README.md | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 3c7d61329..c086cdc48 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -1,11 +1,9 @@ ### Automate paper work around project governance - This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. - +This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating an update-maintainers workflow, and allowing humans to update social info and TSC member property. - ```mermaid graph LR; @@ -31,7 +29,6 @@ C --> E C --> F ``` - The second graph outlines the steps for onboarding new maintainers. This involves creating an invitation workflow, creating a TSC member change workflow, and creating a notification workflow to inform existing members about the new addition. ```mermaid @@ -39,29 +36,27 @@ graph LR; J[New Maintainer Onboarding] --> K[Create invitation workflow]; J --> L[Create TSC member change workflow]; K --> M[Create notification workflow]; - L --> M; + L --> M; ``` The third graph outlines the steps for updating the Emeritus.yaml file. This involves creating a removal workflow to remove members from the organization/team, and creating a pull request review workflow to ensure that changes are reviewed by a human before merging. -```mermaid +```mermaid graph LR; N[Updates to Emeritus.yaml file] --> O[Create removal workflow]; O --> P[Remove from organization/team]; O --> Q[Create PR review workflow]; ``` - Overall, these subgraphs represent a comprehensive approach to maintaining and updating the YAML files related to maintainers and TSC members, ensuring that new maintainers are onboarded effectively, and keeping the Emeritus.yaml file up to date. This approach involves a range of workflows and automated processes to streamline these tasks. - -### Workflows +### Workflows ### `validate-maintainers.yaml` This workflow listens for changes to the Maintainers.yaml file and validates whether the changes were made by the bot or a human. If a human made the changes, the workflow blocks the pull request and notifies the user with a proper message. -> Note: This workflow should be located in every repository and should be made a required status check in the repository settings, so if it fails, PR cannot be merged. +> Note: This workflow should be located only in the community repository and should be made a required status check in the repository settings, so if it fails, PR cannot be merged. ```mermaid graph LR; @@ -96,7 +91,7 @@ I --> E; This workflow allows humans to update social info or the tsc_member property in the Maintainers.yaml file. -> Note: This workflow should be located in every repository. +> Note: This workflow should be located only in the community repository. ```mermaid graph TD; @@ -131,7 +126,7 @@ graph TD; This workflow is triggered when there is a change to the tsc_member property. It adds or removes the member from the TSC team based on the value of the property. -> Note: This workflow should be located in every repository. +> Note: This workflow should be located only in the community repository. ```mermaid graph TD; @@ -192,7 +187,7 @@ This workflow is triggered when a PR modifies the `Emeritus.yamlfile. It reviews > Note: This workflow should be located in the community repository. -```mermaid +```mermaid graph TD; A[PR modifies Emeritus.yaml file?] --> |Yes| B[Review and merge PR]; B --> C[End]; @@ -205,7 +200,7 @@ The following charts showcases the interconnections between different workflows First flowchart represents a process for handling changes to the CODEOWNERS file. If a new maintainer is added, the system updates the maintainers' information, allows further updates, and validates the changes. If the validation passes, the pull request is merged, and the new maintainer is invited to the TSC team. In case the validation fails, the pull request is blocked, and the user is notified of the error. -```mermaid +```mermaid graph TD; A[Changes made to CODEOWNERS file?] --> |New maintainer added| B[update-maintainers.yaml] B --> C[allow-updates.yaml] @@ -229,5 +224,5 @@ J --> |Validation passed| L[PR gets merged] L --> M[update-tsc-team.yaml] M --> N[notify-tsc-members.yaml] N --> O[update-emeritus.yaml] -O --> P[remove-from-organization.yaml] -``` \ No newline at end of file +O --> P[remove-from-organization.yaml] +``` From 14115870696a310a1ad5d584bb70ac1dce66d402 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 19 Jun 2023 14:59:17 +0530 Subject: [PATCH 20/47] minor fix --- mentorship/summerofcode/2023/workflowautomation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index c086cdc48..12e36713b 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -71,7 +71,7 @@ A --> |No| D[Continue with pull request]; This workflow listens for changes to the CODEOWNERS file and updates the Maintainers.yaml file accordingly. It also picks up the GitHub username, Twitter handle, and the name of the maintained repository from the API and notifies the affected users. -> Note: This workflow should be located in every repository. +> Note: This workflow should be located in every repository. It should be configured with permissions to update the Maintainers.yaml file in the community repository. ```mermaid graph TD; From 3103f7b14739efd33c0ebeb6294904c1e07f9057 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 20 Jun 2023 22:53:56 +0530 Subject: [PATCH 21/47] minor fix in name of file --- mentorship/summerofcode/2023/workflowautomation/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 12e36713b..b73308a83 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -7,8 +7,8 @@ The first graph outlines the steps to automate the updating of Maintainers.yaml. ```mermaid graph LR; -subgraph Migrate TSC_MEMBERS.JSON to TSC_MEMBERS.YAML - A[Convert TSC_MEMBERS.JSON to TSC_MEMBERS.YAML] +subgraph Migrate TSC_MEMBERS.JSON to MAINTAINERS.yml + A[Convert TSC_MEMBERS.JSON to MAINTAINERS.yml] end subgraph Update website code to handle YAML format From 2ea9df548fc5b1554f4b27952e6b515130f1ac66 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 20 Jun 2023 23:29:29 +0530 Subject: [PATCH 22/47] minor fixes --- .../2023/workflowautomation/README.md | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index b73308a83..0726bd54d 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -5,7 +5,7 @@ This project aims to automate maintaining the Maintainers.yaml file which contai The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating an update-maintainers workflow, and allowing humans to update social info and TSC member property. ```mermaid -graph LR; +graph TD; subgraph Migrate TSC_MEMBERS.JSON to MAINTAINERS.yml A[Convert TSC_MEMBERS.JSON to MAINTAINERS.yml] @@ -32,7 +32,7 @@ C --> F The second graph outlines the steps for onboarding new maintainers. This involves creating an invitation workflow, creating a TSC member change workflow, and creating a notification workflow to inform existing members about the new addition. ```mermaid -graph LR; +graph TD; J[New Maintainer Onboarding] --> K[Create invitation workflow]; J --> L[Create TSC member change workflow]; K --> M[Create notification workflow]; @@ -59,7 +59,7 @@ This workflow listens for changes to the Maintainers.yaml file and validates whe > Note: This workflow should be located only in the community repository and should be made a required status check in the repository settings, so if it fails, PR cannot be merged. ```mermaid -graph LR; +graph TD; A[New record added to Maintainers.yaml?] --> |Yes| B[Validate record]; B --> |Validation failed| C[Block pull request]; B --> |Validation passed| D[Continue with pull request]; @@ -118,7 +118,14 @@ graph TD; C --> D[Update Maintainers.yaml]; D --> E[Add maintainer to the Maintainers GitHub team]; E --> F[End]; - A --> |No| F[End]; + A --> |No| G[Is a maintainer removed from the AsyncAPI community?]; + G --> |Yes| H[Call GitHub API to remove maintainer from the organization]; + H --> I[Remove maintainer from the existing team for maintainers]; + I --> J[Update Maintainers.yaml]; + J --> K[Remove maintainer from the Maintainers GitHub team]; + K --> F[End]; + G --> |No| F[End]; + ``` @@ -181,19 +188,6 @@ B --> C[End]; A --> |No| C[End]; ``` -#### `review-emeritus-pr.yaml` - -This workflow is triggered when a PR modifies the `Emeritus.yamlfile. It reviews and merges the PR only after it has been reviewed by a human. - -> Note: This workflow should be located in the community repository. - -```mermaid -graph TD; -A[PR modifies Emeritus.yaml file?] --> |Yes| B[Review and merge PR]; -B --> C[End]; -A --> |No| C[End]; -``` - #### Workflow Diagram: Interconnections between Workflows The following charts showcases the interconnections between different workflows that collectively automate the process of maintaining and updating the Maintainers.yaml file. From 655df248ba436c3e60314267906047eac784fbea Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 20 Jun 2023 23:39:41 +0530 Subject: [PATCH 23/47] changed the interconnection of workflow's flowchart --- .../2023/workflowautomation/README.md | 61 ++++++++++++------- 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 0726bd54d..fda274e2a 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -192,31 +192,48 @@ A --> |No| C[End]; The following charts showcases the interconnections between different workflows that collectively automate the process of maintaining and updating the Maintainers.yaml file. -First flowchart represents a process for handling changes to the CODEOWNERS file. If a new maintainer is added, the system updates the maintainers' information, allows further updates, and validates the changes. If the validation passes, the pull request is merged, and the new maintainer is invited to the TSC team. In case the validation fails, the pull request is blocked, and the user is notified of the error. +This flowchart illustrates the sequence of actions taken when changes are detected in the CODEOWNERS file. It depicts how the system responds to the addition or removal of a maintainer. When a change is detected, the Maintainers.yaml file is updated and additional updates to social info and TSC member properties are allowed. The validation workflow ensures the integrity of the changes. In case of validation failure, the pull request is blocked. If validation passes, the workflow diverges based on whether it’s an addition or removal. For additions, the new maintainer is invited, and TSC members are notified. For removals, the Emeritus.yaml file is updated and the maintainer is removed from the organization and teams. ```mermaid graph TD; -A[Changes made to CODEOWNERS file?] --> |New maintainer added| B[update-maintainers.yaml] -B --> C[allow-updates.yaml] -C --> D[validate-maintainers.yaml] -D --> |Validation passed| E[PR gets merged] -E --> F[invite-maintainers.yaml] -F --> G[notify-tsc-members.yaml] -D --> |Validation failed| H[Block pull request] -H --> I[Notify user with error message] -``` + A[CODEOWNERS file changes detected] + B{Is it an addition or removal of a maintainer?} -Second flowchart manages the removal of a maintainer from the CODEOWNERS file. It updates the maintainers' information, validates the changes, and either blocks or merges the pull request accordingly. If the pull request is merged, the TSC team is updated and notified. If the removed maintainer no longer maintains any repository, they are added to the Emeritus list and removed from the organization and relevant teams. + C1[Retrieve new maintainer information] + C2[Update Maintainers.yaml with new maintainer] + C3[Allow maintainer to update their social info and TSC member property] -```mermaid -graph TD; -A[Changes made to CODEOWNERS file?] --> |Maintainer removed| H[update-maintainers.yaml] -H --> I[allow-updates.yaml] -I --> J[validate-maintainers.yaml] -J --> |Validation failed| K[Block pull request] -J --> |Validation passed| L[PR gets merged] -L --> M[update-tsc-team.yaml] -M --> N[notify-tsc-members.yaml] -N --> O[update-emeritus.yaml] -O --> P[remove-from-organization.yaml] + D1[Retrieve removed maintainer information] + D2[Update Maintainers.yaml to remove maintainer] + + E[Validate changes to Maintainers.yaml] + F[Notify user and block Pull Request] + G[Pull Request continues] + + H[Send invitation to new maintainer] + I[Notify TSC Members of new addition] + + J1[Update Emeritus.yaml with removed maintainer's info] + J2[Remove maintainer from organization and teams] + J3[Notify TSC Members of removal] + + A --> B + B --> |Addition| C1 + C1 --> C2 + C2 --> C3 + C3 --> E + + B --> |Removal| D1 + D1 --> D2 + D2 --> E + + E --> |Validation failed| F + E --> |Validation passed| G + + G --> |Addition| H + H --> I + + G --> |Removal| J1 + J1 --> J2 + J2 --> J3 ``` From 4d5458df1750ebb113cb580c3680ba214a500f5e Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 20 Jun 2023 23:48:57 +0530 Subject: [PATCH 24/47] added the point about validation passes when --- mentorship/summerofcode/2023/workflowautomation/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index fda274e2a..f62b7c05d 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -56,6 +56,10 @@ Overall, these subgraphs represent a comprehensive approach to maintaining and u This workflow listens for changes to the Maintainers.yaml file and validates whether the changes were made by the bot or a human. If a human made the changes, the workflow blocks the pull request and notifies the user with a proper message. +The validation passes if: + +- The changes are made by the approved bot account. + > Note: This workflow should be located only in the community repository and should be made a required status check in the repository settings, so if it fails, PR cannot be merged. ```mermaid From f9d325067f8c1580844c9ecf04ab0080e7e92d4e Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 00:09:44 +0530 Subject: [PATCH 25/47] chnaged the flowchart and merged two flowchart --- .../2023/workflowautomation/README.md | 33 ++++++++----------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index f62b7c05d..46da0aada 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -152,18 +152,24 @@ graph TD; ``` -### `notify-tsc-members.yaml` +### `tsc-and-maintainers-update.yaml` -This workflow is triggered when a new member is added to the TSC. It notifies the new member about ways to get notified when TSC members are called out and notifies other TSC members by mentioning the GitHub team. +This workflow manages changes to the TSC team and the Maintainers list of a project. The workflow is triggered when someone is either added to or removed from the TSC team or when someone is removed from the "Maintainers.yaml" file. -> Note: This workflow should be located in the community repository. +If a new member is added to the TSC, the workflow notifies the new member about ways to get notified when TSC members are called out and notifies other TSC members by mentioning the GitHub team. + +If a maintainer is removed from the "Maintainers.yaml" file, the workflow removes that person from the AsyncAPI organization and teams. ```mermaid graph TD; -A[PR modifies tsc_member to true?] --> |Yes| B[Notify new member about ways to get notified]; -B --> C[Notify TSC members about new member]; -C --> D[End]; -A --> |No| D[End]; +A[PR modifies tsc_member to true or someone removed from Maintainers.yaml?] --> |Maintainer removed| B[Remove person from organization and teams]; +B --> C[End]; + +A --> |TSC member added| D[Notify new member about ways to get notified]; +D --> E[Notify TSC members about new member]; +E --> F[End]; + +A --> |No TSC member added or Maintainer removed| F[End]; ``` ### `update-emeritus.yaml` @@ -179,19 +185,6 @@ B --> C[End]; A --> |No| C[End]; ``` -### `remove-from-organization.yaml` - -This workflow is triggered when someone is removed from the Maintainers.yaml file. It removes the person from the AsyncAPI organization and the proper teams. - -> Note: This workflow should be located in the community repository. - -```mermaid -graph TD; -A[Someone removed from Maintainers.yaml?] --> |Yes| B[Remove person from organization and teams]; -B --> C[End]; -A --> |No| C[End]; -``` - #### Workflow Diagram: Interconnections between Workflows The following charts showcases the interconnections between different workflows that collectively automate the process of maintaining and updating the Maintainers.yaml file. From c3cdb2019383bbf8408f452dbd29cb4f9c280a90 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 00:15:17 +0530 Subject: [PATCH 26/47] minor fix --- .../2023/workflowautomation/README.md | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 46da0aada..86b556c98 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -133,43 +133,44 @@ graph TD; ``` -### `update-tsc-team.yaml` +### `tsc-and-maintainers-update.yaml` -This workflow is triggered when there is a change to the tsc_member property. It adds or removes the member from the TSC team based on the value of the property. +This workflow manages changes to the TSC team and the Maintainers list of a project. The workflow is triggered when there is a change to either the "tsc_member" property or the "Maintainers.yaml" file. -> Note: This workflow should be located only in the community repository. +If a maintainer is removed from the Maintainers list, the workflow removes that person from the organization and teams. + +If there is a change to the "tsc_member" property, the workflow adds or removes the member from the TSC team based on the value of the property. If a member is added to the TSC team, the workflow notifies affected users. + +If there are no changes made to the TSC team or the Maintainers list, the workflow ends. ```mermaid graph TD; - A[tsc_member value change?] --> |Yes| B[Add or remove member from TSC team?]; - B --> |Add| C[Add member to TSC team]; - B --> |Remove| D[Remove member from TSC team]; - C --> E[Update TSC team membership]; - D --> E[Update TSC team membership]; - E --> F[Notify affected users]; - F --> G[End]; - A --> |No| G[End]; +A[Change to tsc_member property or Maintainers.yaml?] --> |Maintainer removed| B[Remove person from organization and teams]; +A --> |No| D[End]; -``` +B --> E[End]; -### `tsc-and-maintainers-update.yaml` +A --> |tsc_member value change| F[Add or remove member from TSC team?]; +F --> |Add| G[Add member to TSC team]; +G --> H[Update TSC team membership]; +H --> I[Notify affected users]; +I --> J[End]; +F --> |Remove| K[Remove member from TSC team]; +K --> H; +``` -This workflow manages changes to the TSC team and the Maintainers list of a project. The workflow is triggered when someone is either added to or removed from the TSC team or when someone is removed from the "Maintainers.yaml" file. +### `notify-tsc-members.yaml` -If a new member is added to the TSC, the workflow notifies the new member about ways to get notified when TSC members are called out and notifies other TSC members by mentioning the GitHub team. +This workflow is triggered when a new member is added to the TSC. It notifies the new member about ways to get notified when TSC members are called out and notifies other TSC members by mentioning the GitHub team. -If a maintainer is removed from the "Maintainers.yaml" file, the workflow removes that person from the AsyncAPI organization and teams. +> Note: This workflow should be located in the community repository. ```mermaid graph TD; -A[PR modifies tsc_member to true or someone removed from Maintainers.yaml?] --> |Maintainer removed| B[Remove person from organization and teams]; -B --> C[End]; - -A --> |TSC member added| D[Notify new member about ways to get notified]; -D --> E[Notify TSC members about new member]; -E --> F[End]; - -A --> |No TSC member added or Maintainer removed| F[End]; +A[PR modifies tsc_member to true?] --> |Yes| B[Notify new member about ways to get notified]; +B --> C[Notify TSC members about new member]; +C --> D[End]; +A --> |No| D[End]; ``` ### `update-emeritus.yaml` From be007d2a20446a612b7b17c1135586c2e7e2bd5c Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 11:00:43 +0530 Subject: [PATCH 27/47] changed the connection flowchart --- .../2023/workflowautomation/README.md | 69 +++++++++---------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 86b556c98..cab76d028 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -190,48 +190,41 @@ A --> |No| C[End]; The following charts showcases the interconnections between different workflows that collectively automate the process of maintaining and updating the Maintainers.yaml file. -This flowchart illustrates the sequence of actions taken when changes are detected in the CODEOWNERS file. It depicts how the system responds to the addition or removal of a maintainer. When a change is detected, the Maintainers.yaml file is updated and additional updates to social info and TSC member properties are allowed. The validation workflow ensures the integrity of the changes. In case of validation failure, the pull request is blocked. If validation passes, the workflow diverges based on whether it’s an addition or removal. For additions, the new maintainer is invited, and TSC members are notified. For removals, the Emeritus.yaml file is updated and the maintainer is removed from the organization and teams. +#### CODEOWNER Add/Remove + +This flowchart illustrates the streamlined process for managing changes to a CODEOWNERS file. When changes are detected, the flowchart outlines steps for adding or removing a maintainer. For additions, it retrieves the new maintainer's information, updates Maintainers.yaml, validates changes, sends an invitation to the new maintainer, and notifies TSC members. For removals, it retrieves the removed maintainer's information, updates Maintainers.yaml, moves the removed maintainer's information to Emeritus.yaml, removes them from the organization, and notifies TSC members. ```mermaid graph TD; - A[CODEOWNERS file changes detected] - B{Is it an addition or removal of a maintainer?} - - C1[Retrieve new maintainer information] - C2[Update Maintainers.yaml with new maintainer] - C3[Allow maintainer to update their social info and TSC member property] - - D1[Retrieve removed maintainer information] - D2[Update Maintainers.yaml to remove maintainer] - - E[Validate changes to Maintainers.yaml] - F[Notify user and block Pull Request] - G[Pull Request continues] - - H[Send invitation to new maintainer] - I[Notify TSC Members of new addition] - - J1[Update Emeritus.yaml with removed maintainer's info] - J2[Remove maintainer from organization and teams] - J3[Notify TSC Members of removal] +A[CODEOWNERS file changes detected] --> B{Is it an addition or removal of a maintainer?}; +B --> |Addition| C1[Retrieve new maintainer information]; +B --> |Removal| D1[Retrieve removed maintainer information]; +C1 --> C2[Update Maintainers.yaml with new maintainer]; +C2 --> E[Validate changes to Maintainers.yaml]; +D1 --> D2[Update Maintainers.yaml to remove maintainer]; +D2 --> E; +E --> |Validation failed| F[Notify user and block Pull Request]; +E --> |Validation passed| G{Addition or Removal?}; +G --> |Addition| H[Send invitation to new maintainer]; +H --> I[Notify TSC Members of new addition]; +G --> |Removal| J1[Update Emeritus.yaml with removed maintainer's info]; +J1 --> J2[Remove maintainer from organization and teams]; +J2 --> J3[Notify TSC Members of removal]; +F --> K[End]; +J3 --> K; +I --> K; - A --> B - B --> |Addition| C1 - C1 --> C2 - C2 --> C3 - C3 --> E - - B --> |Removal| D1 - D1 --> D2 - D2 --> E - - E --> |Validation failed| F - E --> |Validation passed| G +``` - G --> |Addition| H - H --> I +Below flowchart also depicts an independent process for maintainers who wish to update their information through a separate pull request. It involves validating the changes and either updating the Maintainers.yaml file or blocking the pull request if validation fails. - G --> |Removal| J1 - J1 --> J2 - J2 --> J3 +```mermaid +graph TD; +L[PR raised where maintainer is modified] --> M{Allow maintainer to update their social info and TSC member property?} +M -->|Yes| N[Update Maintainers.yaml with maintainer changes]; +M -->|No| P[PR Ends]; +N --> O[Validate changes to Maintainers.yaml]; +O --> |Validation passed| P[PR Ends]; +O --> |Validation failed| Q[Notify user and block Pull Request]; +Q --> P; ``` From 9ebf23414b922122dca71cc2523262ee38786930 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 11:11:00 +0530 Subject: [PATCH 28/47] changed the update-maintainers flowchart --- .../summerofcode/2023/workflowautomation/README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index cab76d028..f6cec4fe5 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -84,10 +84,13 @@ A --> |Maintainer removed| F[Check if maintainer has other repositories]; B --> C[Pick up GitHub username, Twitter handle, and repository name from API]; C --> D[Notify affected users]; D --> E[End]; -F --> |Maintainer has other repositories| G[Do not remove from Maintainers.yaml]; -F --> |Maintainer has no other repositories| H[Remove from Maintainers.yaml]; -H --> I[Notify affected users]; -I --> E; +F --> |Maintainer has other repositories| G[Remove the given repository from the list of repositories the maintainer maintains]; +G --> H[Update Maintainers.yaml]; +F --> |Maintainer has no other repositories| I[Remove maintainer from Maintainers.yaml]; +H --> J[Notify affected users]; +I --> J; +J --> E; + ``` From fb28c9cfcd53f1c30371daf76c2af36e420b3548 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 11:22:04 +0530 Subject: [PATCH 29/47] updated the name of workflow --- mentorship/summerofcode/2023/workflowautomation/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index f6cec4fe5..20dbf99ef 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -162,11 +162,12 @@ F --> |Remove| K[Remove member from TSC team]; K --> H; ``` -### `notify-tsc-members.yaml` +### `msg-to-new-member-pr-merged.yml` This workflow is triggered when a new member is added to the TSC. It notifies the new member about ways to get notified when TSC members are called out and notifies other TSC members by mentioning the GitHub team. > Note: This workflow should be located in the community repository. +> This one is already present. ```mermaid graph TD; From 698b51c22446fb206eb6a78a19316790a101fdec Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 11:29:13 +0530 Subject: [PATCH 30/47] changed update-emeritus flowchart --- .../summerofcode/2023/workflowautomation/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 20dbf99ef..998aea827 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -179,15 +179,17 @@ A --> |No| D[End]; ### `update-emeritus.yaml` -This workflow is triggered when someone is removed from the Maintainers.yaml file because they no longer maintain any repository. It updates the Emeritus.yaml file with the list of people that left the project. +This workflow is triggered when a person is either removed from the Maintainers.yaml file or if their TSC member status is changed. It updates the Emeritus.yaml file with the information of ex-TSC members who left the project. Additionally, it should also be able to handle changes in TSC membership status. > Note: This workflow should be located in the community repository. ```mermaid graph TD; -A[Someone removed from Maintainers.yaml?] --> |Yes| B[Update Emeritus.yaml]; -B --> C[End]; -A --> |No| C[End]; +A[Change in Maintainers.yaml?] --> |Removal or TSC flag changed| B[Check if TSC member]; +B --> |Yes| C[Update Emeritus.yaml]; +C --> D[End]; +B --> |No| D[End]; +A --> |No change| D[End]; ``` #### Workflow Diagram: Interconnections between Workflows From df02903b0bdeb0cfbbde15a2b2d9b355ad18d09c Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 12:23:20 +0530 Subject: [PATCH 31/47] minor fix --- mentorship/summerofcode/2023/workflowautomation/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 998aea827..05fae39ba 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -219,7 +219,6 @@ J2 --> J3[Notify TSC Members of removal]; F --> K[End]; J3 --> K; I --> K; - ``` Below flowchart also depicts an independent process for maintainers who wish to update their information through a separate pull request. It involves validating the changes and either updating the Maintainers.yaml file or blocking the pull request if validation fails. From 978c6c52ef4add55c16d3a6efbd0f3076344d1c9 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 13:35:49 +0530 Subject: [PATCH 32/47] changed diamond shape --- mentorship/summerofcode/2023/workflowautomation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 05fae39ba..315e4d704 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -153,7 +153,7 @@ A --> |No| D[End]; B --> E[End]; -A --> |tsc_member value change| F[Add or remove member from TSC team?]; +A --> |tsc_member value change| F{Add or remove member from TSC team?}; F --> |Add| G[Add member to TSC team]; G --> H[Update TSC team membership]; H --> I[Notify affected users]; From 19c375fe5d4e61e0d667c06ff1dceff62f61c58d Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 15:39:46 +0530 Subject: [PATCH 33/47] updated the flowchart --- .../2023/workflowautomation/README.md | 47 ++++++++++++++++--- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 315e4d704..b9f27437a 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -225,11 +225,44 @@ Below flowchart also depicts an independent process for maintainers who wish to ```mermaid graph TD; -L[PR raised where maintainer is modified] --> M{Allow maintainer to update their social info and TSC member property?} -M -->|Yes| N[Update Maintainers.yaml with maintainer changes]; -M -->|No| P[PR Ends]; -N --> O[Validate changes to Maintainers.yaml]; -O --> |Validation passed| P[PR Ends]; -O --> |Validation failed| Q[Notify user and block Pull Request]; -Q --> P; + A[PR raised where Maintainers.yaml is modified] --> B{Are changes made by bot or human?}; + B -->|Bot| J[PR Ends]; + B -->|Human| C{Are social info and TSC membership being updated?}; + C -->|No| D[Validate Maintainers.yaml changes]; + D -->|Validation passed| E[PR Ends]; + D -->|Validation failed| F[Notify user and block Pull Request]; + C -->|Yes| G[Update Maintainers.yaml with maintainer changes]; + G --> H{Is the maintainer updating their TSC membership status?}; + H -->|No| I[Validate Maintainers.yaml changes]; + I -->|Validation passed| K[PR Ends]; + I -->|Validation failed| L[Notify user and block Pull Request]; + H -->|Yes| M{Is the maintainer listed in TSC team?}; + M -->|Yes| N[Update TSC team membership]; + M -->|No| O{Is the maintainer already an Emeritus?}; + O -->|Yes| P[Update Emeritus.yaml with maintainer info]; + P --> Q[Remove maintainer from organization and teams]; + Q --> R[Notify TSC Members of removal]; + R --> K; + O -->|No| S[Retrieve new maintainer information]; + S --> T[Update Maintainers.yaml with new maintainer information]; + T --> U{Are social info and TSC membership being updated?}; + U -->|No| V[Validate Maintainers.yaml changes]; + V -->|Validation passed| W[Send invitation to new maintainer]; + W --> X[Notify TSC Members of new addition]; + V -->|Validation failed| Y[Notify user and block Pull Request]; + U -->|Yes| Z[Update Maintainers.yaml with maintainer changes]; + Z --> AA{Is the maintainer updating their TSC membership status?}; + AA -->|No| AB[Validate Maintainers.yaml changes]; + AB -->|Validation passed| AC[PR Ends]; + AB -->|Validation failed| AD[Notify user and block Pull Request]; + AA -->|Yes| AE{Is the maintainer listed in TSC team?}; + AE -->|Yes| AF[Update TSC team membership]; + AE -->|No| AG[Retrieve new maintainer information]; + AG --> AH[Update Maintainers.yaml with new maintainer information]; + AH --> BI{Are social info and TSC membership being updated?}; + BI -->|No| BJ[Validate Maintainers.yaml changes]; + BJ -->|Validation passed| BK[Send invitation to new maintainer]; + BK --> BL[Notify TSC Members of new addition]; + BJ -->|Validation failed| BM[Notify user and block Pull Request]; + BM --> AC; ``` From 0a7c76fc37a91d5e5578006a8c237d651853ca21 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 21 Jun 2023 21:41:53 +0530 Subject: [PATCH 34/47] updated the flowchart of codeowner file changes --- .../2023/workflowautomation/README.md | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index b9f27437a..f887d5873 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -202,20 +202,31 @@ This flowchart illustrates the streamlined process for managing changes to a COD ```mermaid graph TD; -A[CODEOWNERS file changes detected] --> B{Is it an addition or removal of a maintainer?}; -B --> |Addition| C1[Retrieve new maintainer information]; +A[CODEOWNERS file changes detected] --> B{Is it an addition, removal, or configuration update?}; + +B --> |Addition| C{Is maintainer already listed in Maintainers.yaml?}; B --> |Removal| D1[Retrieve removed maintainer information]; -C1 --> C2[Update Maintainers.yaml with new maintainer]; -C2 --> E[Validate changes to Maintainers.yaml]; +B --> |Configuration Update| X[End]; + +C --> |No| C1[Retrieve new maintainer information]; +C --> |Yes| C2[Skip retrieval]; + +C1 --> E[Validate changes to Maintainers.yaml are done by bot]; +C2 --> E; + D1 --> D2[Update Maintainers.yaml to remove maintainer]; D2 --> E; + E --> |Validation failed| F[Notify user and block Pull Request]; -E --> |Validation passed| G{Addition or Removal?}; +E --> |Validation passed| G{Was it an Addition or Removal?}; + G --> |Addition| H[Send invitation to new maintainer]; H --> I[Notify TSC Members of new addition]; + G --> |Removal| J1[Update Emeritus.yaml with removed maintainer's info]; J1 --> J2[Remove maintainer from organization and teams]; J2 --> J3[Notify TSC Members of removal]; + F --> K[End]; J3 --> K; I --> K; From d568602587ea9ffddef1a37360841eb7ba40c576 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 22 Jun 2023 15:17:43 +0530 Subject: [PATCH 35/47] updated the validate-maintainer.yaml workflow --- .../2023/workflowautomation/README.md | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index f887d5873..6dc17d43a 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -52,22 +52,35 @@ Overall, these subgraphs represent a comprehensive approach to maintaining and u ### Workflows -### `validate-maintainers.yaml` +### `verify-maintainers.yaml` -This workflow listens for changes to the Maintainers.yaml file and validates whether the changes were made by the bot or a human. If a human made the changes, the workflow blocks the pull request and notifies the user with a proper message. +This workflow listens for changes to the Maintainers.yaml file and verifies the legitimacy of the changes. It discerns between changes made by a bot and those made by a human. If a human has made changes that involve critical attributes, which include modifying fields such as the GitHub username, repository keys, or removing an entire maintainer object, the workflow blocks the pull request and notifies the user with an appropriate message. -The validation passes if: +The workflow allows the pull request to continue if: - The changes are made by the approved bot account. +- The changes made by a human do not involve the removal or modification of critical attributes. > Note: This workflow should be located only in the community repository and should be made a required status check in the repository settings, so if it fails, PR cannot be merged. ```mermaid graph TD; -A[New record added to Maintainers.yaml?] --> |Yes| B[Validate record]; -B --> |Validation failed| C[Block pull request]; -B --> |Validation passed| D[Continue with pull request]; -A --> |No| D[Continue with pull request]; +A[Maintainers.yaml file changes detected] --> B{Changes made by bot or human?}; + +B --> |Bot| E[Continue with pull request]; +B --> |Human| C{Do changes involve critical attributes?}; + +C --> |Yes| D[Block pull request with message]; +C --> |No| E[Continue with pull request]; + +D --> F[End]; +E --> F; + +subgraph Critical Attributes +CA1[GitHub Username]; +CA2[Repository Keys]; +CA3[Removal of any maintainer object]; +end ``` From 1d73a6b185278a9ef1910a1e42069fa42294bf1e Mon Sep 17 00:00:00 2001 From: 14Richa Date: Mon, 26 Jun 2023 18:54:52 +0530 Subject: [PATCH 36/47] minor fixes --- mentorship/summerofcode/2023/workflowautomation/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 6dc17d43a..823146e04 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -78,8 +78,8 @@ E --> F; subgraph Critical Attributes CA1[GitHub Username]; -CA2[Repository Keys]; -CA3[Removal of any maintainer object]; +CA2[Maintainer's repositories list]; +CA3[Addition or removal of any maintainer object]; end ``` From a20cb699f7488da16a4cc9364390e626acddb397 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 27 Jun 2023 12:04:21 +0530 Subject: [PATCH 37/47] minor fix in last flowchart --- .../2023/workflowautomation/README.md | 29 ++++++------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 823146e04..028607dde 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -218,31 +218,20 @@ graph TD; A[CODEOWNERS file changes detected] --> B{Is it an addition, removal, or configuration update?}; B --> |Addition| C{Is maintainer already listed in Maintainers.yaml?}; -B --> |Removal| D1[Retrieve removed maintainer information]; +B --> |Removal| R{Is Maintainer still owning some other repositories?}; B --> |Configuration Update| X[End]; -C --> |No| C1[Retrieve new maintainer information]; -C --> |Yes| C2[Skip retrieval]; +C --> |Yes| C1[Add repo to existing maintainer]; +C --> |No| C2[Retrieve new maintainer information and add to maintainers list]; -C1 --> E[Validate changes to Maintainers.yaml are done by bot]; -C2 --> E; +C1 --> PR2[Create PR in Community Repo to Update Maintainer]; +C2 --> PR3[Create PR in Community Repo with New Maintainer Info]; -D1 --> D2[Update Maintainers.yaml to remove maintainer]; -D2 --> E; +R --> |Yes| R1[Remove repository from list]; +R --> |No| R2[Remove maintainer from list]; -E --> |Validation failed| F[Notify user and block Pull Request]; -E --> |Validation passed| G{Was it an Addition or Removal?}; - -G --> |Addition| H[Send invitation to new maintainer]; -H --> I[Notify TSC Members of new addition]; - -G --> |Removal| J1[Update Emeritus.yaml with removed maintainer's info]; -J1 --> J2[Remove maintainer from organization and teams]; -J2 --> J3[Notify TSC Members of removal]; - -F --> K[End]; -J3 --> K; -I --> K; +R1 --> PR4[Create PR in Community Repo for Removal from Repo]; +R2 --> PR5[Create PR in Community Repo for Total Removal]; ``` Below flowchart also depicts an independent process for maintainers who wish to update their information through a separate pull request. It involves validating the changes and either updating the Maintainers.yaml file or blocking the pull request if validation fails. From a012c1d272f7038b6a3061c498c77c816ad15a5f Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 4 Jul 2023 20:35:35 +0530 Subject: [PATCH 38/47] added last section --- .../2023/workflowautomation/README.md | 89 ++++++++++--------- 1 file changed, 48 insertions(+), 41 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 028607dde..20c56a5fc 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -234,48 +234,55 @@ R1 --> PR4[Create PR in Community Repo for Removal from Repo]; R2 --> PR5[Create PR in Community Repo for Total Removal]; ``` -Below flowchart also depicts an independent process for maintainers who wish to update their information through a separate pull request. It involves validating the changes and either updating the Maintainers.yaml file or blocking the pull request if validation fails. +Below flowchart illustrates the process of verifying changes detected in the Maintainers.yaml file. It helps determine the type of changes, whether they are made by a bot or a human, and takes appropriate actions based on the nature of the changes. + +Critical Attributes: +- GitHub Username +- Maintainer's repositories list +- Addition or removal of any maintainer object + +The flowchart guides the verification process and actions to be taken, including merging pull requests, sending invitations, updating organization and repository settings, and notifying TSC members. + +Please refer to the flowchart for a visual representation of the steps involved in verifying Maintainers.yaml changes. + ```mermaid graph TD; - A[PR raised where Maintainers.yaml is modified] --> B{Are changes made by bot or human?}; - B -->|Bot| J[PR Ends]; - B -->|Human| C{Are social info and TSC membership being updated?}; - C -->|No| D[Validate Maintainers.yaml changes]; - D -->|Validation passed| E[PR Ends]; - D -->|Validation failed| F[Notify user and block Pull Request]; - C -->|Yes| G[Update Maintainers.yaml with maintainer changes]; - G --> H{Is the maintainer updating their TSC membership status?}; - H -->|No| I[Validate Maintainers.yaml changes]; - I -->|Validation passed| K[PR Ends]; - I -->|Validation failed| L[Notify user and block Pull Request]; - H -->|Yes| M{Is the maintainer listed in TSC team?}; - M -->|Yes| N[Update TSC team membership]; - M -->|No| O{Is the maintainer already an Emeritus?}; - O -->|Yes| P[Update Emeritus.yaml with maintainer info]; - P --> Q[Remove maintainer from organization and teams]; - Q --> R[Notify TSC Members of removal]; - R --> K; - O -->|No| S[Retrieve new maintainer information]; - S --> T[Update Maintainers.yaml with new maintainer information]; - T --> U{Are social info and TSC membership being updated?}; - U -->|No| V[Validate Maintainers.yaml changes]; - V -->|Validation passed| W[Send invitation to new maintainer]; - W --> X[Notify TSC Members of new addition]; - V -->|Validation failed| Y[Notify user and block Pull Request]; - U -->|Yes| Z[Update Maintainers.yaml with maintainer changes]; - Z --> AA{Is the maintainer updating their TSC membership status?}; - AA -->|No| AB[Validate Maintainers.yaml changes]; - AB -->|Validation passed| AC[PR Ends]; - AB -->|Validation failed| AD[Notify user and block Pull Request]; - AA -->|Yes| AE{Is the maintainer listed in TSC team?}; - AE -->|Yes| AF[Update TSC team membership]; - AE -->|No| AG[Retrieve new maintainer information]; - AG --> AH[Update Maintainers.yaml with new maintainer information]; - AH --> BI{Are social info and TSC membership being updated?}; - BI -->|No| BJ[Validate Maintainers.yaml changes]; - BJ -->|Validation passed| BK[Send invitation to new maintainer]; - BK --> BL[Notify TSC Members of new addition]; - BJ -->|Validation failed| BM[Notify user and block Pull Request]; - BM --> AC; +A[Maintainers.yaml file changes detected] --> B{Is it by bot or human?}; + +B --> |Bot| D1{What kind of changes?}; +B --> |Human| H1{What kind of changes?}; + +D1 --> |Maintainer Changes| C1{Is it an addition or removal?}; +D1 --> |Maintainer's repositories list| S1[Merge PR]; + +C1 --> |Addition| G1[Merge PR]; +C1 --> |Removal| E1{Maintainer being removed}; + +G1 --> Z1[Send invitation to new maintainer and notify TSC Members Add new maintainer to organization, repository, and team Post welcome comment to pull request]; + +E1 --> |Yes| F1[Human verification required before removal]; + +F1 --> |Human verification successful| L2[Merge PR, Remove maintainer from organization and teams, update Emeritus.yaml, and notify TSC Members]; + +H1 --> |isTscMember Change| TSC1{True or False}; +H1 --> |Critical Changes| P[Close PR with clear message and no action]; +H1 --> |Simple Change| N[Merge PR]; + +TSC1 --> |True| T1[Handle TSC member addition]; +TSC1 --> |False| T2[Handle TSC member removal]; + +Z1 --> M[End]; +L2 --> M; +T1 --> M; +T2 --> M; +P --> M; +N --> M; +S1 --> M; + +subgraph Critical Attributes +CA1[GitHub Username]; +CA2[Maintainer's repositories list]; +CA3[Addition or removal of any maintainer object]; +end ``` From 896a550e6e04482272b2593cbd73cee7b82424a0 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 5 Jul 2023 15:43:37 +0530 Subject: [PATCH 39/47] update readme --- mentorship/summerofcode/2023/workflowautomation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 20c56a5fc..b50cd8ec7 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -86,7 +86,7 @@ end ### `update-maintainers.yaml` -This workflow listens for changes to the CODEOWNERS file and updates the Maintainers.yaml file accordingly. It also picks up the GitHub username, Twitter handle, and the name of the maintained repository from the API and notifies the affected users. +This workflow listens for changes to the CODEOWNERS file and updates the Maintainers.yaml file accordingly. It also picks up the GitHub username, Twitter handle, and the name of the maintained repository from the API and notifies the affected users. If bot accounts are removed or added in CODEOWNERS file then it should ignore this workflow. > Note: This workflow should be located in every repository. It should be configured with permissions to update the Maintainers.yaml file in the community repository. From b85e177aa3814d4f94523183c505885cb3d1d615 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 6 Jul 2023 19:14:05 +0530 Subject: [PATCH 40/47] removed end from the last diagram --- mentorship/summerofcode/2023/workflowautomation/README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index b50cd8ec7..fff907edc 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -272,14 +272,6 @@ H1 --> |Simple Change| N[Merge PR]; TSC1 --> |True| T1[Handle TSC member addition]; TSC1 --> |False| T2[Handle TSC member removal]; -Z1 --> M[End]; -L2 --> M; -T1 --> M; -T2 --> M; -P --> M; -N --> M; -S1 --> M; - subgraph Critical Attributes CA1[GitHub Username]; CA2[Maintainer's repositories list]; From 976498d47a89976b8d3832aaa082a04820367ba2 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 6 Jul 2023 19:16:02 +0530 Subject: [PATCH 41/47] changed workflow name --- mentorship/summerofcode/2023/workflowautomation/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index fff907edc..09340d2b2 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -2,7 +2,7 @@ This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. -The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a validation workflow to block pull requests if records are added/removed by humans, creating an update-maintainers workflow, and allowing humans to update social info and TSC member property. +The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a verification workflow to block pull requests if records are added/removed by humans, creating an update-maintainers workflow, and allowing humans to update social info and TSC member property. ```mermaid graph TD; @@ -17,7 +17,7 @@ end subgraph Automate Maintainers.yaml update C[Automate Maintainers.yaml update] - D[Validation workflow] + D[Verification workflow] E[update-maintainers workflow] F[Allow humans to update social info and TSC member property] end From 3e2164a33912669ed3793fdc3152a0e9db68bf55 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 6 Jul 2023 19:26:32 +0530 Subject: [PATCH 42/47] minor fix --- .../summerofcode/2023/workflowautomation/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 09340d2b2..a6bb19d99 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -11,8 +11,10 @@ subgraph Migrate TSC_MEMBERS.JSON to MAINTAINERS.yml A[Convert TSC_MEMBERS.JSON to MAINTAINERS.yml] end -subgraph Update website code to handle YAML format - B[Update website code to handle YAML format] +subgraph Read File & Filter TSC Members + B1[Read new file name] + B2[Filter objects with TSC member flag] + B1 --> B2 end subgraph Automate Maintainers.yaml update @@ -22,8 +24,8 @@ subgraph Automate Maintainers.yaml update F[Allow humans to update social info and TSC member property] end -A --> B -B --> C +A --> B1 +B2 --> C C --> D C --> E C --> F From a5ba6f2909106818014771add33f7f1f2cc929c7 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 13 Jul 2023 14:21:47 +0530 Subject: [PATCH 43/47] removed one workflow --- .../2023/workflowautomation/README.md | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index a6bb19d99..9ecfdc2a6 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -107,24 +107,6 @@ I --> J; J --> E; -``` - -### `allow-updates.yaml` - -This workflow allows humans to update social info or the tsc_member property in the Maintainers.yaml file. - -> Note: This workflow should be located only in the community repository. - -```mermaid -graph TD; - A[Is the user updating social info or the tsc_member property?] --> |Yes| B[Allow update]; - B --> C[Update Maintainers.yaml]; - C --> D[Validate the updated record]; - D --> |Record is invalid| E[Block update and notify the user]; - D --> |Record is valid| F[Notify affected users of the update]; - E --> G[End]; - F --> G[End]; - ``` ### `invite-maintainers.yaml` From c9210010171ec70e2772fdc7b154f6b932a7d733 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 13 Jul 2023 14:27:38 +0530 Subject: [PATCH 44/47] added a new para in starting --- mentorship/summerofcode/2023/workflowautomation/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index 9ecfdc2a6..bf373e1c2 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -1,6 +1,7 @@ -### Automate paper work around project governance +### Automate Listing of Members of the Technical Steering Committee - GSoC 2023 Project + +This project, titled "Automate listing of members of the Technical Steering Committee", is part of the Google Summer of Code (GSoC) 2023. The goal is to automate the process of managing and maintaining the Maintainers.yaml file, which contains the list of maintainers and TSC members of AsyncAPI. Through a series of workflows, we aim to automatically update the member's list based on changes in other files, invite new maintainers and TSC members, update the Emeritus.yaml file when someone is removed, and aggregate helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. -This project aims to automate maintaining the Maintainers.yaml file which contains the list of maintainers and TSC members of AsyncAPI. The tasks involve implementing workflows to automatically update the member's list based on changes in other files, inviting new maintainers and TSC members, updating the Emeritus.yaml file when someone is removed, and aggregating helpful information in the Maintainers.yaml file. These automation and improvements will make it easier to manage the maintainers and TSC members of AsyncAPI. The first graph outlines the steps to automate the updating of Maintainers.yaml. This involves migrating to YAML, updating the website code to handle YAML format, automating the updation of Maintainers.yaml, creating a verification workflow to block pull requests if records are added/removed by humans, creating an update-maintainers workflow, and allowing humans to update social info and TSC member property. From 5fa65c753d0a5730539c5fb8cd4d4ad55e2b0a0c Mon Sep 17 00:00:00 2001 From: 14Richa Date: Thu, 13 Jul 2023 14:32:16 +0530 Subject: [PATCH 45/47] minbir fix in invite maintainer flowchart --- .../2023/workflowautomation/README.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/mentorship/summerofcode/2023/workflowautomation/README.md index bf373e1c2..8e074a9dd 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/mentorship/summerofcode/2023/workflowautomation/README.md @@ -119,19 +119,13 @@ This workflow is triggered when a new maintainer is added. It calls the GitHub A ```mermaid graph TD; A[Is a new maintainer added to the AsyncAPI community?] --> |Yes| B[Call GitHub API to invite maintainer to the organization]; - B --> C[Add maintainer to an existing team for maintainers]; - C --> D[Update Maintainers.yaml]; - D --> E[Add maintainer to the Maintainers GitHub team]; - E --> F[End]; + B --> C[Add maintainer to the Maintainers GitHub team]; + C --> F[End]; A --> |No| G[Is a maintainer removed from the AsyncAPI community?]; G --> |Yes| H[Call GitHub API to remove maintainer from the organization]; - H --> I[Remove maintainer from the existing team for maintainers]; - I --> J[Update Maintainers.yaml]; - J --> K[Remove maintainer from the Maintainers GitHub team]; - K --> F[End]; - G --> |No| F[End]; - - + H --> I[Remove maintainer from the Maintainers GitHub team]; + I --> F[End]; + G --> |No| F[End]; ``` ### `tsc-and-maintainers-update.yaml` From cf66c849667a6e9563bd8a279d7707438603b189 Mon Sep 17 00:00:00 2001 From: 14Richa Date: Tue, 18 Jul 2023 16:09:41 +0530 Subject: [PATCH 46/47] added readme file in doc dir --- .../2023/workflowautomation => docs/GSOC-23}/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {mentorship/summerofcode/2023/workflowautomation => docs/GSOC-23}/README.md (99%) diff --git a/mentorship/summerofcode/2023/workflowautomation/README.md b/docs/GSOC-23/README.md similarity index 99% rename from mentorship/summerofcode/2023/workflowautomation/README.md rename to docs/GSOC-23/README.md index 8e074a9dd..80d96b5e2 100644 --- a/mentorship/summerofcode/2023/workflowautomation/README.md +++ b/docs/GSOC-23/README.md @@ -256,4 +256,4 @@ CA1[GitHub Username]; CA2[Maintainer's repositories list]; CA3[Addition or removal of any maintainer object]; end -``` +``` \ No newline at end of file From cd187e11078cbacbda89a388c18b072a15ca4a8e Mon Sep 17 00:00:00 2001 From: 14Richa Date: Wed, 19 Jul 2023 19:43:23 +0530 Subject: [PATCH 47/47] minor fix in flowchart --- docs/GSOC-23/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/GSOC-23/README.md b/docs/GSOC-23/README.md index 80d96b5e2..0220aa456 100644 --- a/docs/GSOC-23/README.md +++ b/docs/GSOC-23/README.md @@ -141,7 +141,7 @@ If there are no changes made to the TSC team or the Maintainers list, the workfl ```mermaid graph TD; A[Change to tsc_member property or Maintainers.yaml?] --> |Maintainer removed| B[Remove person from organization and teams]; -A --> |No| D[End]; +A --> |No| E[End]; B --> E[End]; @@ -149,7 +149,7 @@ A --> |tsc_member value change| F{Add or remove member from TSC team?}; F --> |Add| G[Add member to TSC team]; G --> H[Update TSC team membership]; H --> I[Notify affected users]; -I --> J[End]; +I --> E[End]; F --> |Remove| K[Remove member from TSC team]; K --> H; ```