Improve current automation around `MAINTAINERS.yaml` by automated updates to `tsc_members` and `maintainers` teams
Every time a name is added or removed to MAINTAINERS.yaml, it should be:
- added or removed from
tsc_membersGH team- also might be that existing name, just have a tsc member flag changed - and this has to be taken into account
- added or removed from
maintainersGH team
Automation should react not only on real time changes. Current automation of MAINTAINERS.yaml is also supporting a schedule, where from time to time refresh MAINTAINERS.yaml - GH teams automation should be included in that flow.
This is Medium issue, but of you take into account AMBASSADORS file, and also update of AMBASSADORS team, this could move into Advanced issue.
Unknown:
- how the API will behave if somebody did not accept invite to be added to the team. So let's say, today we invited somebody, then 3 days later we run refresh automation, and the person still did not accept invite - what happens then? handle errors, and log proper info
- we kind also have to take into account new Maintainer is not yet invited organization member - so we also have to invite them in the flow, or remove them if they are removed from maintainers file
Current automation docs that also need an update: https://github.com/asyncapi/community/tree/master/.github/scripts/maintainers
Bounty Issue's service comment
Text labels: bounty/2025-Q1, bounty/advanced, bounty/coding, bounty/upgraded
First assignment to regular contributors: 2024-12-20 00:00:00 UTC+12:00
End Of Life after: 2025-01-31 23:59:59 UTC-12:00
@asyncapi/bounty_team
The Bounty Program is not a Mentorship Program. The accepted level of Bounty Program Participants is Middle/Senior.
Regular contributors should explain in meaningful words how they are going to approach the resolution process when expressing a desire to work on this Bounty Issue.
I would like to work on this Bounty Issue.
I am willing to work on this. But can i make a PR if the issue gets assigned to someone else ?
@aeworxet (githubID: 16149591) is an AsyncAPI Maintainer specified in https://raw.githubusercontent.com/asyncapi/community/master/MAINTAINERS.yaml, so they fall under the first category in the prioritization list.
I assigned to @aeworxet who is maintainer for long time and know the subject very well
Bounty Issue's Timeline
| Complexity Level | Assignment Date (by GitHub) | Start Date (by BP Rules) | End Date (by BP Rules) | Draft PR Submission | Final PR Merge Start | Final PR Merge End |
|---|---|---|---|---|---|---|
| Medium | 2024-12-16 | 2025-01-06 | 2025-02-16 | 2025-01-19 | 2025-02-02 | 2025-02-16 |
Please note that the dates given represent deadlines, not specific dates, so if the goal is reached sooner, it's better.
Keep in mind the responsibility for violations of the Timeline.
Okey Dokey !! Happy Holidays.
@aeworxet there is some code in https://github.com/asyncapi/community/blob/master/.github/workflows/tsc_management.yml so maybe just this needs to be improved
i want to contribute on this , and my pr is ready , if it's available for contribution , i can raise the pr
@29deepanshutyagi
This GitHub issue participates in the AsyncAPI Bounty Program and is the responsibility of the assigned user.
You are welcome to choose another GitHub issue for contribution that does not have the bounty label.
After long debugging, it turned out that except tsc_members part in
https://github.com/asyncapi/community/actions/workflows/tsc_management.yml
the maintainers part of this functionality already implements a long-forgotten workflow
https://github.com/asyncapi/community/blob/master/.github/workflows/maintainer_management.yml
which, along with tsc_management.yml, has been there for more than a year https://github.com/asyncapi/community/pull/803
but has nearly never run properly https://github.com/asyncapi/community/actions/workflows/maintainer_management.yml
and therefore was informationally invisible.
Thus, @derberg, do I understand correctly that my task migrates from coding completely new code to sorting out things with these existing workflows, adjusting and tuning them in case of need, and integrating both into the common workflow sequence?
not sure I got your question. Lemme answer in the way I assume what the questions is about:
- yes work on https://github.com/asyncapi/community/actions/workflows/maintainer_management.yml
- update what is needed to make it work as expected
- afaik we talk about 2 steps, maintainer addition and removal, probably goodbye message as well - although not necessarily
- and if bug is in step about detecting changes, then yeah, it is in scope
I think tbh the only problem is with the token, GH_TOKEN do not have rights to do changes and probably just a change is needed to switch to GH_TOKEN_ORG_ADMIN that is available
For the successful completion of this Bounty Issue, it is required that workflow can make changes to the GitHub Organization by performing HTTP requests through GitHub's REST API.
Before continuing with the introduction of code changes, the ability to perform HTTP requests through the GitHub REST API must be established first.
Authorization in the REST API using an authorization token, following the merge of PR https://github.com/asyncapi/community/pull/1664, can only be tested in a production environment, namely when a new maintainer joins the AsyncAPI GitHub Organization.
This makes it a force majeure condition that has no fixed date of satisfaction and is beyond anyone's control.
Therefore, this Bounty Issue's Timeline is extended by an indefinite amount of time.
I will also address the functionality of handling the Ambassadors' list. @derberg, should this Bounty Issue be upgraded in this case?
if you want to work on ambassador part, it definitely must be upgraded - nothing agains it from my side, actually makes me happy 😃
Upon the request of the AsyncAPI Maintainer (@derberg (githubID: 6995927)), the Complexity Level of this Bounty Issue was reclassified to Advanced (upgraded).
Due to the specifics of this Bounty Issue, its functionality still has to be checked only in the production environment, now upon the next addition and removal of Ambassadors. This condition is also beyond anyone's control; therefore, no clear Timeline can be specified as well.
completed 💪🏼
Bounty Issue Is Completed 🎉
@aeworxet (githubID: 16149591), please go to the AsyncAPI page on Open Collective and submit an invoice for USD 400.00 with the expense title Bounty community#1620, tag bounty, and full URL of this Bounty Issue in the description.