community icon indicating copy to clipboard operation
community copied to clipboard

Improve current automation around `MAINTAINERS.yaml` by automated updates to `tsc_members` and `maintainers` teams

Open derberg opened this issue 1 year ago • 13 comments

Every time a name is added or removed to MAINTAINERS.yaml, it should be:

  • added or removed from tsc_members GH 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 maintainers GH 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

derberg avatar Dec 16 '24 10:12 derberg

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.

aeworxet avatar Dec 16 '24 13:12 aeworxet

I would like to work on this Bounty Issue.

aeworxet avatar Dec 16 '24 13:12 aeworxet

I am willing to work on this. But can i make a PR if the issue gets assigned to someone else ?

kunstewi avatar Dec 16 '24 13:12 kunstewi

@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.

aeworxet avatar Dec 16 '24 13:12 aeworxet

I assigned to @aeworxet who is maintainer for long time and know the subject very well

derberg avatar Dec 16 '24 14:12 derberg

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.

aeworxet avatar Dec 16 '24 14:12 aeworxet

Okey Dokey !! Happy Holidays.

kunstewi avatar Dec 16 '24 15:12 kunstewi

@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

derberg avatar Dec 23 '24 18:12 derberg

i want to contribute on this , and my pr is ready , if it's available for contribution , i can raise the pr

29deepanshutyagi avatar Dec 31 '24 15:12 29deepanshutyagi

@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.

aeworxet avatar Jan 01 '25 07:01 aeworxet

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?

aeworxet avatar Jan 21 '25 03:01 aeworxet

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

derberg avatar Jan 21 '25 11:01 derberg

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.

aeworxet avatar Feb 13 '25 05:02 aeworxet

I will also address the functionality of handling the Ambassadors' list. @derberg, should this Bounty Issue be upgraded in this case?

aeworxet avatar Apr 24 '25 09:04 aeworxet

if you want to work on ambassador part, it definitely must be upgraded - nothing agains it from my side, actually makes me happy 😃

derberg avatar Apr 24 '25 16:04 derberg

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.

aeworxet avatar Apr 25 '25 07:04 aeworxet

completed 💪🏼

derberg avatar Jun 02 '25 15:06 derberg

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.

aeworxet avatar Jun 04 '25 06:06 aeworxet