From c7b2fb2f868db43ecf70fec9989dafd8c4189694 Mon Sep 17 00:00:00 2001 From: Daniel M Date: Mon, 18 Aug 2025 08:52:00 -0400 Subject: [PATCH 1/7] designers team --- .github/ISSUE_TEMPLATE/new-member.yml | 6 ++++-- .github/workflows/add_member.yml | 11 ++++++++++- scripts/add_member.py | 16 ++++++++-------- terraform/production/org.tfvars | 6 ++++++ 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/new-member.yml b/.github/ISSUE_TEMPLATE/new-member.yml index ae430fd..af67eed 100644 --- a/.github/ISSUE_TEMPLATE/new-member.yml +++ b/.github/ISSUE_TEMPLATE/new-member.yml @@ -23,12 +23,14 @@ body: validations: required: false - type: checkboxes - id: tangible-benefits + id: general attributes: - label: Tangible Benefits + label: General questions options: - label: Does your project provide tangible benefits to the Django community? required: true + - label: Do you wish to join the designers team? + required: false - type: checkboxes id: terms attributes: diff --git a/.github/workflows/add_member.yml b/.github/workflows/add_member.yml index a3fac77..13c3108 100644 --- a/.github/workflows/add_member.yml +++ b/.github/workflows/add_member.yml @@ -68,9 +68,18 @@ jobs: - name: Create branch run: git checkout -b ${{ env.BRANCH_NAME }} + - name: Check if user wants to become a designer + id: check_designer + run: | + if gh issue view ${{ env.ISSUE_NUMBER }} --json body | jq -e '.body | contains("Do you wish to join the designers team?")'; then + python scripts/add_member.py ${{ env.USERNAME }} designers + else + echo "User does not want to join the designers team." + fi + - name: Add user to the list run: | - python scripts/add_member.py ${{ env.USERNAME }} + python scripts/add_member.py ${{ env.USERNAME }} members - name: Commit changes run: | diff --git a/scripts/add_member.py b/scripts/add_member.py index f814979..f50a11d 100755 --- a/scripts/add_member.py +++ b/scripts/add_member.py @@ -4,15 +4,15 @@ TERRAFORM_ORG_FILE = "./terraform/production/org.tfvars" -def add_member(content, new_member_name): +def add_member(content, new_member_name, team_name): # Regular expression to find the members list - members_pattern = re.compile(r"(members\s*=\s*\[)([^\]]*)(\])", re.DOTALL) + members_pattern = re.compile(rf"({team_name}\s*=\s*\[)([^\]]*)(\])", re.DOTALL) match = members_pattern.search(content) if match: # Extract the members part members_list = match.group(2).rstrip(",\n").replace('"', "").replace("\n ", "").split(",") if new_member_name in members_list: - print(f"Member {new_member_name} already exists") + print(f"Member {new_member_name} already exists in {team_name}") exit(1) # Add the new value and sort alphabetically members_list.append(new_member_name) @@ -27,16 +27,16 @@ def add_member(content, new_member_name): return content -def run(new_member_name): +def run(new_member_name, team_name): with open(TERRAFORM_ORG_FILE, "r") as f: file_content = f.read() - updated_content = add_member(file_content, new_member_name) + updated_content = add_member(file_content, new_member_name, team_name) with open(TERRAFORM_ORG_FILE, "w") as f: f.write(updated_content) if __name__ == '__main__': - if len(sys.argv) != 2: - print("Usage: python add_member.py ") + if len(sys.argv) != 3: + print("Usage: python add_member.py ") sys.exit(1) - run(sys.argv[1]) + run(sys.argv[1], sys.argv[2]) diff --git a/terraform/production/org.tfvars b/terraform/production/org.tfvars index ab858f4..8514fe8 100644 --- a/terraform/production/org.tfvars +++ b/terraform/production/org.tfvars @@ -6,6 +6,12 @@ admins = [ "tim-schilling", "williln", ] + +designers = [ + "akshayvinchurkar", + "viscofuse", +] + # Organization members members = [ "2ykwang", From 58a87dfb2d5cf89799f1334a4cd965513b0c2107 Mon Sep 17 00:00:00 2001 From: Daniel M Date: Mon, 18 Aug 2025 08:57:20 -0400 Subject: [PATCH 2/7] designers team --- terraform/resource-designers.tf | 22 ++++++++++++++++++++++ terraform/variables.tf | 6 ++++++ 2 files changed, 28 insertions(+) create mode 100644 terraform/resource-designers.tf diff --git a/terraform/resource-designers.tf b/terraform/resource-designers.tf new file mode 100644 index 0000000..02a51b4 --- /dev/null +++ b/terraform/resource-designers.tf @@ -0,0 +1,22 @@ +# Create the organization teams for Django Commons. +resource "github_team" "org_designers_team" { + name = "Designers" + description = "Django Commons designers" + privacy = "closed" + +} + + +resource "github_team_members" "org_designers_team_members" { + team_id = github_team.org_designers_team.id + + dynamic "members" { + for_each = var.designers + + content { + username = members.value + role = "member" + } + } +} + diff --git a/terraform/variables.tf b/terraform/variables.tf index 99a37ec..108ed16 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -18,6 +18,12 @@ variable "members" { default = [] } +variable "designers" { + description = "A set of designers to add to the organization" + type = set(string) + default = [] +} + variable "repositories" { description = "Map of repositories to create" type = map(object({ From 335d04c7865c3ad4c82380b36bb139e0baf161b1 Mon Sep 17 00:00:00 2001 From: Daniel M Date: Tue, 19 Aug 2025 14:03:43 -0400 Subject: [PATCH 3/7] mzemlickis to designers team --- terraform/production/org.tfvars | 1 + 1 file changed, 1 insertion(+) diff --git a/terraform/production/org.tfvars b/terraform/production/org.tfvars index 8514fe8..8e483f7 100644 --- a/terraform/production/org.tfvars +++ b/terraform/production/org.tfvars @@ -10,6 +10,7 @@ admins = [ designers = [ "akshayvinchurkar", "viscofuse", + "mzemlickis", ] # Organization members From 9d03a5e2625130005aba7bedd1670bce30ebdeab Mon Sep 17 00:00:00 2001 From: Tim Schilling Date: Fri, 22 Aug 2025 18:55:27 -0500 Subject: [PATCH 4/7] Remove project question from new member issues. --- .github/ISSUE_TEMPLATE/new-member.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/new-member.yml b/.github/ISSUE_TEMPLATE/new-member.yml index af67eed..87b9219 100644 --- a/.github/ISSUE_TEMPLATE/new-member.yml +++ b/.github/ISSUE_TEMPLATE/new-member.yml @@ -27,8 +27,6 @@ body: attributes: label: General questions options: - - label: Does your project provide tangible benefits to the Django community? - required: true - label: Do you wish to join the designers team? required: false - type: checkboxes From c4c5fb0e7c19ba66b1a7ac36fd8512dc10e69115 Mon Sep 17 00:00:00 2001 From: "Storm B. Heg" Date: Wed, 27 Aug 2025 19:12:59 +0200 Subject: [PATCH 5/7] Add SmitK to designers team Per https://github.com/django-commons/membership/issues/252 --- terraform/production/org.tfvars | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/terraform/production/org.tfvars b/terraform/production/org.tfvars index 8e483f7..7856da6 100644 --- a/terraform/production/org.tfvars +++ b/terraform/production/org.tfvars @@ -9,8 +9,9 @@ admins = [ designers = [ "akshayvinchurkar", - "viscofuse", "mzemlickis", + "SmitK", + "viscofuse", ] # Organization members From a914d03145303952ca967d835fec05b4262860e4 Mon Sep 17 00:00:00 2001 From: Daniel M Date: Fri, 29 Aug 2025 15:36:24 -0400 Subject: [PATCH 6/7] Update scripts/add_member.py Co-authored-by: Tim Schilling --- scripts/add_member.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/add_member.py b/scripts/add_member.py index f50a11d..a7130ad 100755 --- a/scripts/add_member.py +++ b/scripts/add_member.py @@ -39,4 +39,4 @@ def run(new_member_name, team_name): if len(sys.argv) != 3: print("Usage: python add_member.py ") sys.exit(1) - run(sys.argv[1], sys.argv[2]) + run(*sys.argv[1:]) From 9f7c85ba5c1894dc73f67d16e66a98a87a43620b Mon Sep 17 00:00:00 2001 From: Daniel M Date: Fri, 29 Aug 2025 15:38:20 -0400 Subject: [PATCH 7/7] fix --- .github/workflows/add_member.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_member.yml b/.github/workflows/add_member.yml index 13c3108..b492a22 100644 --- a/.github/workflows/add_member.yml +++ b/.github/workflows/add_member.yml @@ -71,7 +71,7 @@ jobs: - name: Check if user wants to become a designer id: check_designer run: | - if gh issue view ${{ env.ISSUE_NUMBER }} --json body | jq -e '.body | contains("Do you wish to join the designers team?")'; then + if gh issue view ${{ env.ISSUE_NUMBER }} --json body | jq -e '.body | contains("[x] Do you wish to join the designers team?")'; then python scripts/add_member.py ${{ env.USERNAME }} designers else echo "User does not want to join the designers team."