community
community copied to clipboard
feat: initial infra for slack intergration
Description
- Sets up the initial infrastructure needed for Slack integration.
Tasks
- [x] Initialise Terraform files
- [x] Make a GitHub Workflow
- [x] Test workflow on personal repo
- [x] Add remaining channels and groups as required.
- [x] Add slack handles in working groups.
- [ ] https://github.com/asyncapi/community/pull/1143
Related issue(s) Fixes #1072
@smoya The working groups part has also been done. Successful workflow runs can be viewed here.
Just needs to wait for the added comment https://github.com/asyncapi/community/pull/1143#discussion_r1551667548
@asyncapi/bounty_team
@aeworxet The work regarding the PR has been done. Once this https://github.com/asyncapi/community/pull/1143 gets approved we can merge this too.
Thank you for being so patient π€
@aeworxet The work regarding the PR has been done. Once this #1143 gets approved we can merge this too.
Thank you for being so patient π€
As shared via DM in Slack, would you mind adding a markdown file with all the instructions on how to run this and how to get a proper Slack token (application creation, permissions, etc)? π
Additionally, I'm concerned about the fact we already have created some Slack groups. As you shared, when running TF apply and TF finds those groups already created and not managed by TF, it will fail. So we nee to handle this somehow.
@smoya the docs has been added, furthermore I have incorporated changes from you PR.
/update
@Shurtu-gal I'm having the following error when terraform init
:
~/dev/community/.github/workflows/slack slack-integration ?1 52s 12:36:34
β― terraform init
Initializing the backend...
Initializing modules...
- channels in channels
- groups in groups
- users in users
β·
β Error: Missing attribute separator
β
β on channels/channels.tf line 56, in locals:
β 55: for wg_data in local.wg_channel_data : wg_data.name => {
β 56: name = lookup(lookup(lookup(wg_data, "slack", {}), "channel", {}), "handle", "wg-${replace(lower(wg_data.name), " ", "-")}"))
β
β Expected a newline or comma to mark the beginning of the next attribute.
I'm having a new error:
β― terraform plan
β·
β Error: Reference to undeclared resource
β
β on channels/channels.tf line 60, in locals:
β 60: permanent_members = concat([for member in wg_channel.chairpersons : member.slack], [for member in wg_data.members : member.slack])
β
β A managed resource "wg_channel" "chairpersons" has not been declared in module.channels.
Also please rename the variable. Canβt be wg_channel
because it is not about the channel. As explained in other comments in my previous review, it adds a lot of confusion.
@Shurtu-gal There are some user groups and channels already created in AsyncAPI Slack that, as per the README you wrote (in case of usergroups), should be imported. However:
β― terraform import slack_usergroup.dx_wg <actual_group_id>
Error: resource address "slack_usergroup.dx_wg" does not exist in the configuration.
Before importing this resource, please create its configuration in the root module. For example:
resource "slack_usergroup" "dx_wg" {
# (resource arguments)
}
@smoya I have updated the README. You can try out the following command.
terraform import module.groups.slack_usergroup.wg_groups[\"Developer Experience\"] <actual_group_id>
I have also added the manual groups and changed the handle to dx_wg
For the record, these are the commands we should execute before checking or applying the terraform plan in order to import the user groups that are already present in our slack workspace. Also, all channels should be imported first so we get them into the tfstate (already done and pushed):
terraform import module.groups.slack_usergroup.wg_groups[\"Developer Experience\"] S06T4ULNQL8
terraform import module.groups.slack_usergroup.groups[\"CoC Committee\"] S06G3VCDTPU
terraform import module.groups.slack_usergroup.groups[\"Studio\"] S05D76QM92M
For the record, these are the commands we should execute before checking or applying the terraform plan in order to import the user groups that are already present in our slack workspace:
terraform import module.groups.slack_usergroup.wg_groups[\"Developer Experience\"] S06T4ULNQL8 terraform import module.groups.slack_usergroup.groups[\"CoC Committee\"] S06G3VCDTPU terraform import module.groups.slack_usergroup.groups[\"Studio\"] S05D76QM92M
Yes, that's correct!
@smoya I have added the requisites.
@Shurtu-gal If we need to run the import of the already created usergroups every time we run the plan, that's going to be a pain and impossible to automate. Isn't any other solution so already created user groups are kept as it happens with channels?
@Shurtu-gal If we need to run the import of the already created usergroups every time we run the plan, that's going to be a pain and impossible to automate. Isn't any other solution so already created user groups are kept as it happens with channels?
@smoya afaik upon import of user groups, the terraform.state
should be updated, thus not needing imports for the same group again. As the provider will see that the group is already present it won't do any further modification with it.
@Shurtu-gal If we need to run the import of the already created usergroups every time we run the plan, that's going to be a pain and impossible to automate. Isn't any other solution so already created user groups are kept as it happens with channels?
@smoya afaik upon import of user groups, the
terraform.state
should be updated, thus not needing imports for the same group again. As the provider will see that the group is already present it won't do any further modification with it.
Do you mean .tfstate
file? Afaik it can contain sensitive data and it should not be tracked in git π€ the state should be created by the tf provider by checking resources on Slack API.
@Shurtu-gal and I ended up doing a zoom session to ultimate all the details. Now all the manual testing is done and LGTM β
@thulieblack @derberg please do the final review to the following output of terraform plan
(the command tells you what terraform apply
will perform on our Slack). Please note that all the current channels will be listed in the output because it is the first execution, so it is the way terraform adds them into the state, however you will see no modification will happen but just adding metadata related with terraform.
If it is π, please approve this PR.
After merging, I expect terraform will run through the workflow and will create a file which contains the terraform state, which will be pushed to git by the bot creating an automated PR. In case Gh don't run the first time, I will trigger manually the deploy.
For the record, in case you need to check and compare, the list of channels on AsyncAPI Slack workspace can be found here.
You can see the following terraform plan
output highlighted by checking my asciinema recording (there is no online highlighter service for this...)
Resource actions are indicated with the following symbols:
+ create
~ update in-place
Terraform will perform the following actions:
# module.channels.slack_conversation.channels["01_introductions"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C023GJWH33K"
name = "01_introductions"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["02_general"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C34F2JV0U"
name = "02_general"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["03_specification"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C0230UAM6R3"
name = "03_specification"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["04_tooling"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "CQVJXFNQL"
name = "04_tooling"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["05_promotion-marketing"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "CH44ZMJAZ"
name = "05_promotion-marketing"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["06_training"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C021E161QBV"
name = "06_training"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["07_events"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C023A76SV2Q"
name = "07_events"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["08_jobs"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C022P9CAMBR"
name = "08_jobs"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["09_mentorships"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C023A7K5M3N"
name = "09_mentorships"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["10_watercooler"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C34AUKWQK"
name = "10_watercooler"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["11_contributing"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C02FK3YDPCL"
name = "11_contributing"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["12_design"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C02JW8DA0DC"
name = "12_design"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["13_docs"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C02QY9FMM18"
name = "13_docs"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["14_accessibility"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C02UV8CTT61"
name = "14_accessibility"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["15_ambassadors"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C04TRUTNPHB"
name = "15_ambassadors"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["16_news"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C05PWURSSP7"
name = "16_news"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["17_bounty"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C05UHTSEHE2"
name = "17_bounty"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["18_asyncapi-v3"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C066WFT906A"
name = "18_asyncapi-v3"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["19_coc"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C06FLH3AVSB"
name = "19_coc"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["93_bot-infra-alerts"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C045Y33BZQX"
name = "93_bot-infra-alerts"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["94_bot-failing-ci"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C03CHT8UFR7"
name = "94_bot-failing-ci"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["95_bot-tsc-members-mentioned"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C031UMXT63F"
name = "95_bot-tsc-members-mentioned"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["96_bot-stackoverflow-questions"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C02544TFYJ0"
name = "96_bot-stackoverflow-questions"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["97_bot-github-new-issues-prs"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C01J06RL10X"
name = "97_bot-github-new-issues-prs"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["98_bot-github-releases"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C01JF00UGKC"
name = "98_bot-github-releases"
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["glee-demos"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C02L1QCT1HP"
name = "glee-demos"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["gsoc2021-students-mentors-collaboration"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C023H9V3ZLM"
name = "gsoc2021-students-mentors-collaboration"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["help-"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C02RJF383MM"
name = "help-"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["jsonschema"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C038FTU4LQ6"
name = "jsonschema"
# (9 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["libopenapi-speakeasy"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C04F6TQ40N7"
name = "libopenapi-speakeasy"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["linux"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C04EKM39P4M"
name = "linux"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["salemfr1100"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C055JEMLGF7"
name = "salemfr1100"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["status-updates"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C06N61ASV6X"
name = "status-updates"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.channels["test-bot-public"] will be updated in-place
~ resource "slack_conversation" "channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C0579CUA7GD"
name = "test-bot-public"
# (8 unchanged attributes hidden)
}
# module.channels.slack_conversation.wg_channels["Developer Experience"] will be updated in-place
~ resource "slack_conversation" "wg_channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C06G92DN05D"
name = "wg-developer-experience"
+ permanent_members = [
+ "U0132LQU8C9",
+ "U01N6AW5V5G",
+ "U01RVRD1TCL",
+ "U01TP1KJV1R",
+ "U03CNHGEUR1",
+ "U04STTQHV18",
+ "U0572R8J927",
+ "U34F2JRRS",
+ "UTCN3ET4M",
]
# (10 unchanged attributes hidden)
}
# module.channels.slack_conversation.wg_channels["Essential Building Blocks"] will be updated in-place
~ resource "slack_conversation" "wg_channels" {
+ action_on_destroy = "archive"
+ action_on_update_permanent_members = "none"
+ adopt_existing_channel = true
id = "C06SSB65QQJ"
name = "wg-essential-building-blocks"
+ permanent_members = [
+ "U0132LQU8C9",
+ "U01SGCZMJKW",
+ "U04C58GB8TF",
+ "U06L7EQQSF2",
+ "UNH2HT346",
+ "UQ2ANBG1E",
]
# (9 unchanged attributes hidden)
}
# module.groups.slack_usergroup.groups["Maintainers"] will be created
+ resource "slack_usergroup" "groups" {
+ description = "Maintainers"
+ handle = "maintainers"
+ id = (known after apply)
+ name = "Maintainers"
+ users = [
+ "U011D1DAU6S",
+ "U0132LQU8C9",
+ "U018NLDV5E1",
+ "U01BM49KL3Z",
+ "U01DVKKAV5K",
+ "U01EB02BP7A",
+ "U01EYAFR5BR",
+ "U01G3U01SVC",
+ "U01L3FH3BUH",
+ "U01LYC8PW0M",
+ "U01N6AW5V5G",
+ "U01P5QDLP0X",
+ "U01QRHR1ABH",
+ "U01RVRD1TCL",
+ "U01RWDD69PZ",
+ "U01S8EQ9LQ2",
+ "U01SE93Q48N",
+ "U01SGCZMJKW",
+ "U0231F9KXNK",
+ "U02AKC14WAJ",
+ "U02EC8BT0TX",
+ "U02FP8WBFQE",
+ "U02FPPCEH6H",
+ "U02FT2TKM37",
+ "U02G8MDDEF3",
+ "U02JVEQ6S9W",
+ "U02T2MY9W5T",
+ "U02TAMG2VKN",
+ "U02UK9RUPGQ",
+ "U037S2HK4TS",
+ "U03A5145",
+ "U03A51H8",
+ "U03AC4G51H8",
+ "U03CNHGEUR1",
+ "U03CNJPMT7C",
+ "U03D18YKX2M",
+ "U03HBC08EBB",
+ "U03NV5L4S49",
+ "U04630DU3N3",
+ "U04C58GB8TF",
+ "U04STTQHV18",
+ "U054UUYBNLF",
+ "U0572R8J927",
+ "U062LA14E58",
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UH3B166TD",
+ "UN22ZTLHG",
+ "UQ2ANBG1E",
+ "UTCN3ET4M",
]
}
# module.groups.slack_usergroup.groups["TSC Members"] will be created
+ resource "slack_usergroup" "groups" {
+ description = "TSC members - https://www.asyncapi.com/community/tsc"
+ handle = "tsc"
+ id = (known after apply)
+ name = "TSC Members"
+ users = [
+ "U011D1DAU6S",
+ "U0132LQU8C9",
+ "U018NLDV5E1",
+ "U01BM49KL3Z",
+ "U01DVKKAV5K",
+ "U01EB02BP7A",
+ "U01EYAFR5BR",
+ "U01L3FH3BUH",
+ "U01LYC8PW0M",
+ "U01N6AW5V5G",
+ "U01P5QDLP0X",
+ "U01QRHR1ABH",
+ "U01RVRD1TCL",
+ "U01RWDD69PZ",
+ "U01S8EQ9LQ2",
+ "U01SE93Q48N",
+ "U01SGCZMJKW",
+ "U0231F9KXNK",
+ "U02AKC14WAJ",
+ "U02EC8BT0TX",
+ "U02FP8WBFQE",
+ "U02FPPCEH6H",
+ "U02FT2TKM37",
+ "U02G8MDDEF3",
+ "U02JVEQ6S9W",
+ "U02T2MY9W5T",
+ "U02TAMG2VKN",
+ "U02UK9RUPGQ",
+ "U037S2HK4TS",
+ "U03AC4G51H8",
+ "U03CNHGEUR1",
+ "U03CNJPMT7C",
+ "U03D18YKX2M",
+ "U03HBC08EBB",
+ "U03NV5L4S49",
+ "U04630DU3N3",
+ "U04C58GB8TF",
+ "U04STTQHV18",
+ "U054UUYBNLF",
+ "U0572R8J927",
+ "U062LA14E58",
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UH3B166TD",
+ "UN22ZTLHG",
+ "UQ2ANBG1E",
+ "UTCN3ET4M",
]
}
# module.groups.slack_usergroup.maintainer_repos[".github"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/.github"
+ handle = "maintainers_.github"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/.github"
+ users = [
+ "U01RVRD1TCL",
]
}
# module.groups.slack_usergroup.maintainer_repos["asyncapi-php-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/asyncapi-php-template"
+ handle = "maintainers_asyncapi-php-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/asyncapi-php-template"
+ users = [
+ "U01LYC8PW0M",
]
}
# module.groups.slack_usergroup.maintainer_repos["asyncapi-react"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/asyncapi-react"
+ handle = "maintainers_asyncapi-react"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/asyncapi-react"
+ users = [
+ "U01EB02BP7A",
+ "U34F2JRRS",
]
}
# module.groups.slack_usergroup.maintainer_repos["avro-schema-parser"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/avro-schema-parser"
+ handle = "maintainers_avro-schema-parser"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/avro-schema-parser"
+ users = [
+ "U01BM49KL3Z",
+ "U01EYAFR5BR",
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["bindings"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/bindings"
+ handle = "maintainers_bindings"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/bindings"
+ users = [
+ "U018NLDV5E1",
+ "U01DVKKAV5K",
+ "U01EYAFR5BR",
+ "U01L3FH3BUH",
+ "U01P5QDLP0X",
+ "U01RVRD1TCL",
+ "U03HBC08EBB",
+ "U03NV5L4S49",
+ "U04C58GB8TF",
+ "U34F2JRRS",
+ "UH3B166TD",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["brand"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/brand"
+ handle = "maintainers_brand"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/brand"
+ users = [
+ "U02JVEQ6S9W",
]
}
# module.groups.slack_usergroup.maintainer_repos["bundler"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/bundler"
+ handle = "maintainers_bundler"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/bundler"
+ users = [
+ "U01G3U01SVC",
+ "U01SGCZMJKW",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["chatbot"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/chatbot"
+ handle = "maintainers_chatbot"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/chatbot"
+ users = [
+ "U01EB02BP7A",
+ "U01RWDD69PZ",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["cli"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/cli"
+ handle = "maintainers_cli"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/cli"
+ users = [
+ "U01EB02BP7A",
+ "U01SGCZMJKW",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["community"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/community"
+ handle = "maintainers_community"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/community"
+ users = [
+ "U02AKC14WAJ",
+ "U03CNJPMT7C",
]
}
# module.groups.slack_usergroup.maintainer_repos["converter-go"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/converter-go"
+ handle = "maintainers_converter-go"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/converter-go"
+ users = [
+ "U01EB02BP7A",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["design-system"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/design-system"
+ handle = "maintainers_design-system"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/design-system"
+ users = [
+ "U02JVEQ6S9W",
]
}
# module.groups.slack_usergroup.maintainer_repos["diff"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/diff"
+ handle = "maintainers_diff"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/diff"
+ users = [
+ "U01QRHR1ABH",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["dotnet-nats-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/dotnet-nats-template"
+ handle = "maintainers_dotnet-nats-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/dotnet-nats-template"
+ users = [
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["dotnet-rabbitmq-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/dotnet-rabbitmq-template"
+ handle = "maintainers_dotnet-rabbitmq-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/dotnet-rabbitmq-template"
+ users = [
+ "U03A5145",
+ "U03A51H8",
]
}
# module.groups.slack_usergroup.maintainer_repos["event-gateway"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/event-gateway"
+ handle = "maintainers_event-gateway"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/event-gateway"
+ users = [
+ "U01EB02BP7A",
]
}
# module.groups.slack_usergroup.maintainer_repos["generator"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/generator"
+ handle = "maintainers_generator"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/generator"
+ users = [
+ "U01EB02BP7A",
+ "U03D18YKX2M",
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["generator-filters"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/generator-filters"
+ handle = "maintainers_generator-filters"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/generator-filters"
+ users = [
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["generator-hooks"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/generator-hooks"
+ handle = "maintainers_generator-hooks"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/generator-hooks"
+ users = [
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["generator-react-sdk"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/generator-react-sdk"
+ handle = "maintainers_generator-react-sdk"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/generator-react-sdk"
+ users = [
+ "U01EB02BP7A",
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["github-action-for-cli"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/github-action-for-cli"
+ handle = "maintainers_github-action-for-cli"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/github-action-for-cli"
+ users = [
+ "U0572R8J927",
]
}
# module.groups.slack_usergroup.maintainer_repos["github-action-for-generator"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/github-action-for-generator"
+ handle = "maintainers_github-action-for-generator"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/github-action-for-generator"
+ users = [
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["glee"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/glee"
+ handle = "maintainers_glee"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/glee"
+ users = [
+ "U01RVRD1TCL",
+ "U01SGCZMJKW",
+ "U34F2JRRS",
]
}
# module.groups.slack_usergroup.maintainer_repos["go-watermill-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/go-watermill-template"
+ handle = "maintainers_go-watermill-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/go-watermill-template"
+ users = [
+ "U0231F9KXNK",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["html-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/html-template"
+ handle = "maintainers_html-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/html-template"
+ users = [
+ "U01EB02BP7A",
]
}
# module.groups.slack_usergroup.maintainer_repos["jasyncapi"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/jasyncapi"
+ handle = "maintainers_jasyncapi"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/jasyncapi"
+ users = [
+ "U0132LQU8C9",
]
}
# module.groups.slack_usergroup.maintainer_repos["jasyncapi-idea-plugin"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/jasyncapi-idea-plugin"
+ handle = "maintainers_jasyncapi-idea-plugin"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/jasyncapi-idea-plugin"
+ users = [
+ "U054UUYBNLF",
]
}
# module.groups.slack_usergroup.maintainer_repos["java-spring-cloud-stream-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/java-spring-cloud-stream-template"
+ handle = "maintainers_java-spring-cloud-stream-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/java-spring-cloud-stream-template"
+ users = [
+ "U01DVKKAV5K",
+ "UH3B166TD",
]
}
# module.groups.slack_usergroup.maintainer_repos["java-spring-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/java-spring-template"
+ handle = "maintainers_java-spring-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/java-spring-template"
+ users = [
+ "U011D1DAU6S",
]
}
# module.groups.slack_usergroup.maintainer_repos["java-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/java-template"
+ handle = "maintainers_java-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/java-template"
+ users = [
+ "U01EYAFR5BR",
+ "U02FP8WBFQE",
+ "U02FPPCEH6H",
+ "U02FT2TKM37",
+ "U02G8MDDEF3",
]
}
# module.groups.slack_usergroup.maintainer_repos["markdown-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/markdown-template"
+ handle = "maintainers_markdown-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/markdown-template"
+ users = [
+ "U01EB02BP7A",
]
}
# module.groups.slack_usergroup.maintainer_repos["modelina"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/modelina"
+ handle = "maintainers_modelina"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/modelina"
+ users = [
+ "U01EB02BP7A",
+ "U02T2MY9W5T",
+ "U02UK9RUPGQ",
+ "U037S2HK4TS",
+ "U062LA14E58",
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["nodejs-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/nodejs-template"
+ handle = "maintainers_nodejs-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/nodejs-template"
+ users = [
+ "U34F2JRRS",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["nodejs-ws-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/nodejs-ws-template"
+ handle = "maintainers_nodejs-ws-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/nodejs-ws-template"
+ users = [
+ "U34F2JRRS",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["openapi-schema-parser"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/openapi-schema-parser"
+ handle = "maintainers_openapi-schema-parser"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/openapi-schema-parser"
+ users = [
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["optimizer"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/optimizer"
+ handle = "maintainers_optimizer"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/optimizer"
+ users = [
+ "U01G3U01SVC",
+ "U01RVRD1TCL",
]
}
# module.groups.slack_usergroup.maintainer_repos["parser-api"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/parser-api"
+ handle = "maintainers_parser-api"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/parser-api"
+ users = [
+ "UN22ZTLHG",
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["parser-go"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/parser-go"
+ handle = "maintainers_parser-go"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/parser-go"
+ users = [
+ "U01EB02BP7A",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["parser-js"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/parser-js"
+ handle = "maintainers_parser-js"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/parser-js"
+ users = [
+ "U01EB02BP7A",
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UN22ZTLHG",
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["playground"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/playground"
+ handle = "maintainers_playground"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/playground"
+ users = [
+ "U01EB02BP7A",
+ "U34F2JRRS",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["problem"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/problem"
+ handle = "maintainers_problem"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/problem"
+ users = [
+ "U01S8EQ9LQ2",
]
}
# module.groups.slack_usergroup.maintainer_repos["protobuf-schema-parser"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/protobuf-schema-parser"
+ handle = "maintainers_protobuf-schema-parser"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/protobuf-schema-parser"
+ users = [
+ "U03AC4G51H8",
]
}
# module.groups.slack_usergroup.maintainer_repos["python-paho-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/python-paho-template"
+ handle = "maintainers_python-paho-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/python-paho-template"
+ users = [
+ "U01DVKKAV5K",
+ "UH3B166TD",
]
}
# module.groups.slack_usergroup.maintainer_repos["raml-dt-schema-parser"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/raml-dt-schema-parser"
+ handle = "maintainers_raml-dt-schema-parser"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/raml-dt-schema-parser"
+ users = [
+ "U34F2JRRS",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["server-api"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/server-api"
+ handle = "maintainers_server-api"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/server-api"
+ users = [
+ "U01EB02BP7A",
+ "U02EC8BT0TX",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["simulator"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/simulator"
+ handle = "maintainers_simulator"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/simulator"
+ users = [
+ "U01SE93Q48N",
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["spec"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/spec"
+ handle = "maintainers_spec"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/spec"
+ users = [
+ "U03NV5L4S49",
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["spec-json-schemas"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/spec-json-schemas"
+ handle = "maintainers_spec-json-schemas"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/spec-json-schemas"
+ users = [
+ "U03NV5L4S49",
+ "U34F2JRRS",
+ "UD698Q5LM",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["studio"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/studio"
+ handle = "maintainers_studio"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/studio"
+ users = [
+ "U01N6AW5V5G",
+ "U02JVEQ6S9W",
+ "U04STTQHV18",
]
}
# module.groups.slack_usergroup.maintainer_repos["template-for-generator-templates"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/template-for-generator-templates"
+ handle = "maintainers_template-for-generator-templates"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/template-for-generator-templates"
+ users = [
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.maintainer_repos["template-for-go-projects"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/template-for-go-projects"
+ handle = "maintainers_template-for-go-projects"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/template-for-go-projects"
+ users = [
+ "U01EB02BP7A",
+ "UN22ZTLHG",
]
}
# module.groups.slack_usergroup.maintainer_repos["training"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/training"
+ handle = "maintainers_training"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/training"
+ users = [
+ "U02AKC14WAJ",
]
}
# module.groups.slack_usergroup.maintainer_repos["ts-nats-template"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/ts-nats-template"
+ handle = "maintainers_ts-nats-template"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/ts-nats-template"
+ users = [
+ "UQ2ANBG1E",
]
}
# module.groups.slack_usergroup.maintainer_repos["vs-asyncapi-preview"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/vs-asyncapi-preview"
+ handle = "maintainers_vs-asyncapi-preview"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/vs-asyncapi-preview"
+ users = [
+ "UTCN3ET4M",
]
}
# module.groups.slack_usergroup.maintainer_repos["website"] will be created
+ resource "slack_usergroup" "maintainer_repos" {
+ description = "Maintainers for https://github.com/asyncapi/website"
+ handle = "maintainers_website"
+ id = (known after apply)
+ name = "Maintainers of asyncapi/website"
+ users = [
+ "U01EB02BP7A",
+ "U02AKC14WAJ",
+ "U02JVEQ6S9W",
+ "U02TAMG2VKN",
+ "U03CNHGEUR1",
+ "U03CNJPMT7C",
+ "U04630DU3N3",
+ "U34F2JRRS",
+ "UD698Q5LM",
]
}
# module.groups.slack_usergroup.wg_groups["Developer Experience"] will be updated in-place
~ resource "slack_usergroup" "wg_groups" {
~ description = "The Developer Experience Working Group" -> "The goal of this group is to empower AsyncAPI user journey trough intuitive onboarding, tools, and a frictionless experience."
id = "S06T4ULNQL8"
~ name = "Developer Experience Working Group" -> "Developer Experience"
# (3 unchanged attributes hidden)
}
# module.groups.slack_usergroup.wg_groups["Essential Building Blocks"] will be created
+ resource "slack_usergroup" "wg_groups" {
+ channels = [
+ "C06SSB65QQJ",
]
+ description = "Essential Building Blocks Working Group"
+ handle = "essential-building-blocks-wg"
+ id = (known after apply)
+ name = "Essential Building Blocks"
+ users = [
+ "U0132LQU8C9",
+ "U01SGCZMJKW",
+ "U04C58GB8TF",
+ "U06L7EQQSF2",
+ "UNH2HT346",
+ "UQ2ANBG1E",
]
}
Plan: 58 to add, 37 to change, 0 to destroy.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
@smoya the groups need to be imported π§
@smoya the groups need to be imported π§
Done. Tfstate file updated, and the output of the terraform plan
is now updated in my comment
/ptal
/help
Hello, @smoya! ππΌ
I'm π§π§π§ Genie π§π§π§ from the magic lamp. Looks like somebody needs a hand!
At the moment the following comments are supported in pull requests:
- `/please-take-a-look` or `/ptal` - This comment will add a comment to the PR asking for attention from the reviewrs who have not reviewed the PR yet.
- `/ready-to-merge` or `/rtm` - This comment will trigger automerge of PR in case all required checks are green, approvals in place and do-not-merge label is not added
- `/do-not-merge` or `/dnm` - This comment will block automerging even if all conditions are met and ready-to-merge label is added
- `/autoupdate` or `/au` - This comment will add `autoupdate` label to the PR and keeps your PR up-to-date to the target branch's future changes. Unless there is a merge conflict or it is a draft PR. (Currently only works for upstream branches.)
- `/update` or `/u` - This comment will update the PR with the latest changes from the target branch. Unless there is a merge conflict or it is a draft PR. NOTE: this only updates the PR once, so if you need to update again, you need to call the command again.
/ptal
EDIT:
/ptal
@derberg @alequetzalli @thulieblack Please take a look at this PR. Thanks! :wave:
would be good to document basics
in document about working groups, about automation for groups creation, and how people can use these groups to contact folks
also what is the idea behind
maintainer_repos
? will there be one group for all maintainers or just per repo? and also should be documented how that works
I will add the relevant documentation. There will be individual groups for maintainers of each of our repos. So anybody can be pinged easily in slack.
/update
@derberg I have added the necessary docs.
@derberg I have changed the docs please let me know if anything else needs to be added somewhere.
I also took the privilege of adding the following, should it be changed ?
@thulieblack your final review is needed here, just in case you miss some channel/group, or you see something doesn't look ok. π