Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AsyncAPI: Automate listing of members of technical steering committee #18

Closed
AceTheCreator opened this issue Feb 28, 2023 · 10 comments
Closed

Comments

@AceTheCreator
Copy link

AceTheCreator commented Feb 28, 2023

Our open governance model introduces a TSC that consists of all the CODEOWNERS that want to use their right to have a vote in TSC decisions making process.

We need a bot/github action that will read VOTERS files from all repos, maintain single list, and put it on the website

Description
get a github action that reacts on any push to master and checkes if voters file was edited. Then reads it and add/remove/modify a voter in the list stored on the website
get a github action that on a PR level validates modification in VOTERS file and blocks PR in case VOTERS cannot be added to TSC list as they are affiliated with the company that already reached the limit of representation
decide on structure of VOTERS file
get a mechanism that collects more details about TSC members (social accounts, hire availability, etc)

Learn more here asyncapi/.github#210

Mentors:
@derberg @KhudaDad414

Project Repo:
https://github.com/asyncapi/.github

Expected Difficulty:
Easy-Medium

Expected Time Commitment:
175 Hour

@jansche jansche changed the title Automate listing of members of technical steering committee AsyncAPI: Automate listing of members of technical steering committee Mar 1, 2023
@dante381
Copy link

dante381 commented Mar 1, 2023

Hello @derberg,

I am a 3rd Computer Science student at KMIT Hyderabad, India. Over the past few years, I have worked on several Automation projects with Python and JavaScript and gained experience working with Selenium.

Based on my review of the project description and associated discussions, my understanding is that the task at hand involves developing a GitHub bot that can review any changes made to the voters list, and make additions, deletions, or modifications as necessary. The bot must also ensure that there are no affiliations with companies that have already reached the maximum limit of representation in the Technical Steering Committee, and update the TSC_MEMBERS.json file accordingly. In addition, there is a need to establish a mechanism for gathering additional details about the Technical Steering Committee. Please let me know if my understanding is inaccurate.

I am thrilled about the opportunity to tackle the task of developing the various utilities outlined above as a mentee for GSoC this summer. I am eager to undertake the initial qualifying tasks and collaborate with the community towards completing this project.

Thank you.

@pragya-20
Copy link

pragya-20 commented Mar 6, 2023

Hello @derberg ,
I have gone through the issue asyncapi/.github#47 and I want to understand a few things about the issue to get more clarification, these are:

  1. Is the maintainers' list getting updated manually whenever the source is getting updated by the CODEOWNERS?
  2. Are the CODEOWNERS the ones who are contributing to the AsyncAPI and wanted to be the TSC member? And how did we come to know that this person wanted to be a TSC member so that Bot/Github action can add it to the Maintainers.json file if that person is eligible to be a TSC member?

Thanks!

@derberg
Copy link
Collaborator

derberg commented Mar 6, 2023

yo folks, I created a refreshed issue with detailed description, that doesn't have the noise of previous conversations. Feel free to jump there and ask questions there 🙏🏼

asyncapi/.github#210

@AceTheCreator you mind updating description and point to ☝🏼 instead of asyncapi/.github#47 ?

@jessy521
Copy link

Hi @derberg sir ,

Thank you for creating this amazing open-source project. I came across issue asyncapi/.github#210 (asyncapi/.github#210) and wanted to provide my thoughts.

I'm Jessy from India having backend experience of 1.5+ years with technologies like nodejs,ts,js,express,mongoDB,SQL etc .
I've done 2 internship with 5/6 real projects , recently I've gained interested on the field of devops and have learned docker ,k8s,github action ,DO ,minikube and basic level AWS EC2 .I would like to have a project on devops and I think this project is appropriate for me as I'm on backend and devops . So, I would like to request you to consider me for this project and give me a chance to be obliged by.
Once again, thank you for your hard work on this project. I look forward to seeing how it evolves and contributing where I can.

Best regards,
Jessy

@AceTheCreator
Copy link
Author

Hey folks, I think it's high time y'all signup for the program via the website(https://summerofcode.withgoogle.com/) and start submitting your proposals officially before the deadline date @jessy521 @pragya-20 @dante381

@ojuschugh1
Copy link

hi, @derberg hi To fulfill your requirements, we will need to develop a custom GitHub action that can perform the following tasks:

1)On any push to the master branch, check if the VOTERS file was modified.
2)Read the VOTERS file from all repositories and maintain a single list of voters.
3)Update the list stored on the website to reflect any changes made to the VOTERS file.
4)Validate modifications made to the VOTERS file in pull requests and block any PRs that attempt to add voters who are affiliated with a company that has reached its limit of representation.

@ojuschugh1
Copy link

hi, @derberg hi To fulfill your requirements, we will need to develop a custom GitHub action that can perform the following tasks:

1)On any push to the master branch, check if the VOTERS file was modified. 2)Read the VOTERS file from all repositories and maintain a single list of voters. 3)Update the list stored on the website to reflect any changes made to the VOTERS file. 4)Validate modifications made to the VOTERS file in pull requests and block any PRs that attempt to add voters who are affiliated with a company that has reached its limit of representation.

To achieve these tasks, we can use the following approach:

1)Create a GitHub action that is triggered by a push to the master branch. The action should check if the VOTERS file was modified using the git diff command.
2)Use the GitHub API to read the VOTERS file from all repositories. You can use the octokit/rest.js library to interact with the GitHub API from the action.
3)Maintain a single list of voters by combining the lists from all repositories. You can use a JavaScript array to store the list of voters.
4)Update the list stored on the website by sending a PUT request to the website's API. You can use the axios library to send HTTP requests from the action.
5)Validate modifications made to the VOTERS file in pull requests by using a script that checks if the voters being added are affiliated with a company that has already reached its limit of representation. You can use the same JavaScript array of voters to perform this check.
6)If the script finds that the PR attempts to add voters who are affiliated with a company that has reached its limit of representation, the action should block the PR by commenting on it with a message explaining why the PR was blocked.
For the structure of the VOTERS file, you can use a simple JSON format that includes the voter's name, email, and any additional details we want to collect (such as social accounts and hire availability). Here is an example:
[
{
"name": "John Doe",
"email": "johndoe@example.com",
"twitter": "@johndoe",
"linkedin": "https://www.linkedin.com/in/johndoe/",
"hireAvailability": true
},
{
"name": "Jane Doe",
"email": "janedoe@example.com",
"twitter": "@janedoe",
"linkedin": "https://www.linkedin.com/in/janedoe/",
"hireAvailability": false
}
]
To collect more details about TSC members, we can use a separate mechanism that asks TSC members to provide their details and then stores them in a database. we can then use this database to generate the VOTERS file. Alternatively, we can add fields to the VOTERS file and ask TSC members to fill in their details when they are added to the file.

@Sindhuinti
Copy link

Hey @AceTheCreator I would like to work on this. Can I submit my proposal now?

@AceTheCreator
Copy link
Author

Hey @AceTheCreator I would like to work on this. Can I submit my proposal now?

Yes, you can still submit your proposal :)

@benjagm
Copy link
Collaborator

benjagm commented Feb 20, 2024

Closed as completed as part of 2023 edition.

@benjagm benjagm closed this as completed Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants