Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/ISSUE_TEMPLATE/new-member.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ 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:
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/add_member.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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("[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."
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: |
Expand Down
16 changes: 8 additions & 8 deletions scripts/add_member.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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 <new_member>")
if len(sys.argv) != 3:
print("Usage: python add_member.py <new_member> <team>")
sys.exit(1)
run(sys.argv[1])
run(*sys.argv[1:])
8 changes: 8 additions & 0 deletions terraform/production/org.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ admins = [
"tim-schilling",
"williln",
]

designers = [
"akshayvinchurkar",
"mzemlickis",
"SmitK",
"viscofuse",
]

# Organization members
members = [
"2ykwang",
Expand Down
22 changes: 22 additions & 0 deletions terraform/resource-designers.tf
Original file line number Diff line number Diff line change
@@ -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"
}
}
}

6 changes: 6 additions & 0 deletions terraform/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand Down