-
-
Notifications
You must be signed in to change notification settings - Fork 110
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
Automate Slack user groups + channels creation and management #1072
Comments
I would go further and propose groups consisting of one person It also seems to me that it's time to introduce new types of Bounty Issues. |
sounds good, just I cannot commit to have time for review and implementation. Not is close future |
I can help out here 😁. We can have a single CI/CD workflow which looks for changes in files of one folder and runs terraform accordingly. |
It would be great to have an automation working group :) |
@smoya maybe could be submitted here, https://github.com/orgs/asyncapi/discussions/963#discussioncomment-8628690 |
I believe a maintainer of this repo should do it if they consider. I think could be a fit indeed cc @alequetzalli @thulieblack @derberg |
Sorry, this feels a little beyond my scope of knowledge, feeling a little lost here 😁 |
I'm having to many thing on my plate atm. I can submit this issue to bounty but only:
So if anyone can help with discussion and probably participation in testing, that would be great. Otherwise that will have to wait for Q3 |
+1. I also believe @Shurtu-gal won't need that much mentoring atm.
Additionally, I would cut the requirements on the most simple features, leaving @aeworxet suggestion for a future improvement. I can be that person. Eventually asking @derberg for GH Actions advise/review. 👍 However, I think only maintainers can be mentors? Didn't read that explicitly in the rules, but seems to suggest it. cc @aeworxet sorry for bothering you mate |
you can be mentor as long as you have a maintainer that is aware and can approve the work 😄 |
@smoya you mean it because there is no concept yet of storing the info about it somewhere? like in case of working groups, we have all members listed in working groups yaml? |
No, not concerned about that. We have that issue with channels as well anyway, so the same solution will be applied for users. Just to cut the scope somewhere. |
No. No. No. There are no mentors in the Bounty Program; there are only |
Is there a final decision on whether this issue will be submitted for the Bounty Program 2024-Q2? |
Please keep the chain of responsibility in accordance with CODEOWNERS. |
Sorry but It is so hard to me to have in mind all the tons of rules of the bounty, plus other programs. I guess you mean @derberg or any other maintainer should do the submission. |
@smoya you have to submit. I'm just merging, but you offered to run work with contributor |
It seems I can't due to the strict rules of the Bounty Program:
|
then we need more flexible rule as in the past we had non codeowners submitting issues and it was all fine if maintainers of give repo were aware and happy to help merging |
Changed the Bounty Program Rules to
Implying that any AsyncAPI Maintainer can submit any issue from any repository as a Bounty Issue (still two issues per repository, in order not to bite more than you can chew,) but they will take full ownership over this Bounty Issue on all stages, from submission to completion. And now there is a quite well-shaped system:
Meaning that now @smoya can submit this issue as a Bounty Issue, but accompany it on all stages. |
It's a thing now 🎉 https://github.com/orgs/asyncapi/discussions/963#discussioncomment-8799664 |
Introduced in the Bounty Program Rules a new type of |
Bounty Issue's service commentText labels: @asyncapi/bounty_team |
Bounty Issue's Timeline
Please note that the dates given represent deadlines, not specific dates, so if the goal is reached sooner, it's better. |
❌ @asyncapi-bot is not authorized to use the Bounty Program's commands. |
3 similar comments
❌ @asyncapi-bot is not authorized to use the Bounty Program's commands. |
❌ @asyncapi-bot is not authorized to use the Bounty Program's commands. |
❌ @asyncapi-bot is not authorized to use the Bounty Program's commands. |
I disabled the Bounty commands workflow for now so it stops spamming. cc @aeworxet |
Testing phase is now done. More info in #1131 (comment) The PR is now waiting for the final aproval from @derberg and @thulieblack. cc @aeworxet |
Reopening as It got merged but It shouldn't. Still configuration is missing: #1131 (comment) |
We are dealing with Slack token and permission issues. We had to ask AsyncAPI Slack administrators to do the following work and they did some but still waiting for some more extra burocracy needed regarding Slack app installation processes. All of this is being followed via a closed Slack DM group due to the sensitive data (basically just in case we leak any token). Delays are something we couldn't really influence in. Unexpected stuff that can happen 🤷 |
Now that I have a proper token (thanks @thulieblack and @derberg), I ran the ╷
│ Error: couldn't set conversation purpose This is the channel for the Maintainers Growth Working Group.: not_in_channel
│
│ with module.channels.slack_conversation.wg_channels["Maintainers Growth"],
│ on channels/channels.tf line 70, in resource "slack_conversation" "wg_channels":
│ 70: resource "slack_conversation" "wg_channels" {
│
╵
╷
│ Error: couldn't set conversation purpose The Conference Coordination Working Group aims to plan, manage, and create a seamless way to enhance the conference experience. GitHub Project: https://github.com/orgs/asyncapi/projects/43/views/2: not_in_channel
│
│ with module.channels.slack_conversation.wg_channels["Conference Coordination"],
│ on channels/channels.tf line 70, in resource "slack_conversation" "wg_channels":
│ 70: resource "slack_conversation" "wg_channels" {
│ The following scopes are in place: I'll keep investigating anyway. @Shurtu-gal did you have this problem in your own Slack workspace? What is missing? BTW, there is an issue that got stale in the TF provider github repo... pablovarela/terraform-provider-slack#161 🤷 |
It seems the only solution to that is to invite the bot app into all managed channels by writing: |
@Shurtu-gal Another issue I'm facing now:
Not only with that group but with tons. And is very random, because even after waiting such seconds, I still have the issue. |
Nope, I didn't face this issue but this maybe due to me not having many repository leading to less no. of groups. |
The rate limit issue is a blocker for this automation. WIthout solving it, we are not even able to generate a terraform plan via There was once a PR on the TF provider, but it got stale. See pablovarela/terraform-provider-slack#72. I tried modifying the parallelism with I don't know how to handle this regarding the bounty, because the work "is done" but not working. Any idea @asyncapi/bounty_team ? |
On the one hand, the Bounty Program Participant fulfilled their obligations to perform the work well, correctly, and in full. I view this situation as similar to the one when the plumber has built a fully functioning water supply system but the inlet tap is turned off. Providing water supply is not the plumber's responsibility. |
I completely agree 👍 |
don't get the part about rate limit so which limit we hit and why to do a retry? we have the same with GitHub API and retry helps |
@derberg we are hitting the tier 2 limit. |
The point is that I believe the TF provider is not optimized at all. I have the feeling this code is being executed per each managed Usergroup whenever TF wants to refresh its state: https://github.com/pablovarela/terraform-provider-slack/blob/master/slack/resource_usergroup.go#L108-L128, so potentially we are calling the usergroups.list API method on each usergroup we have. I believe we could do some work on the provider repo (it's written in go, seems easy to read and understand at a glance) so we can implement some caching or whatever mechanism we decide. But in short term, I can't see how to fix it. |
I opened a new follow up issue so we can work on a fix at some point (not for this bounty, maybe next one?) #1238 For me, this issue can be closed and considered done @aeworxet @Shurtu-gal |
great work folks, imho work completed we can improve validation and retry for timeouts, but the main thing is done and it is amazing work!!! Automation always rocks! |
Bounty Issue Completed 🎉@Shurtu-gal, please go to the AsyncAPI page on Open Collective and submit an invoice for |
Reason/Context
I think having user groups in Slack like the
@coc_committee
and others is really useful because:The issue with that is that at this moment everything is being managed manually by either @thulieblack or @derberg. I feel it is not a big deal, but imagine if we want that Slack user group for the TSC members, a really big list of users that is alive and it changes from time to time, with new additions or rather deletions.
The same happens with channels. At this moment "nobody" can create new channels (which is intended); those should be suggested to @thulieblack or @derberg and if makes sense (sometimes under the voting process) will create them.
The point in this case is that the process is a bit not pretty transparent to the community as there is no chance to discuss about why name A or B, etc etc. Also, there is no official place to discuss about creation of new channels, temporary or not.
In my opinion, this could be solved by automating the creation of those user groups and channels. Having a process where people can submit a simple PR for creating a new user group (could be just in a JSON format), adding a new member, creating a new channel, or renaming it, etc.
Description
We can use the following Terraform provider that looks pretty simple. It allows to create channels, manage them, and the same with user groups.
In the example of the TSC user group (if we want it), we could even fill the data of the group by using the TSC_MEMBERS.json as source. That Terraform could run every time that list changes as well.
Obviously, this is not a high priority one IMHO but still nice to have. I believe this project could be a cool Bounty Program issue.
cc @thulieblack @derberg @aeworxet
The text was updated successfully, but these errors were encountered: