[PATCH] D116762: workflows: Make issue-subscriber more robust for labels with special characters
Tom Stellard via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 10 21:37:01 PST 2022
tstellar updated this revision to Diff 398834.
tstellar added a comment.
Make team_name a property and add a return type to run()
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D116762/new/
https://reviews.llvm.org/D116762
Files:
.github/workflows/issue-subscriber.yml
llvm/utils/git/github-automation.py
Index: llvm/utils/git/github-automation.py
===================================================================
--- /dev/null
+++ llvm/utils/git/github-automation.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+#
+# ======- github-automation - LLVM GitHub Automation Routines--*- python -*--==#
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+# ==-------------------------------------------------------------------------==#
+
+import argparse
+import github
+import os
+
+class IssueSubscriber:
+
+ @property
+ def team_name(self) -> str:
+ return self._team_name
+
+ def __init__(self, token:str, repo:str, issue_number:int, label_name:str):
+ self.repo = github.Github(token).get_repo(repo)
+ self.org = github.Github(token).get_organization(self.repo.organization.login)
+ self.issue = self.repo.get_issue(issue_number)
+ self._team_name = 'issue-subscribers-{}'.format(label_name).lower()
+
+ def run(self) -> bool:
+ for team in self.org.get_teams():
+ if self.team_name != team.name.lower():
+ continue
+ comment = '@llvm/{}'.format(team.slug)
+ self.issue.create_comment(comment)
+ return True
+ return False
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--token', type=str, required=True)
+parser.add_argument('--repo', type=str, default=os.getenv('GITHUB_REPOSITORY', 'llvm/llvm-project'))
+subparsers = parser.add_subparsers(dest='command')
+
+issue_subscriber_parser = subparsers.add_parser('issue-subscriber')
+issue_subscriber_parser.add_argument('--label-name', type=str, required=True)
+issue_subscriber_parser.add_argument('--issue-number', type=int, required=True)
+
+args = parser.parse_args()
+
+if args.command == 'issue-subscriber':
+ issue_subscriber = IssueSubscriber(args.token, args.repo, args.issue_number, args.label_name)
+ issue_subscriber.run()
Index: .github/workflows/issue-subscriber.yml
===================================================================
--- .github/workflows/issue-subscriber.yml
+++ .github/workflows/issue-subscriber.yml
@@ -10,26 +10,16 @@
runs-on: ubuntu-latest
if: github.repository == 'llvm/llvm-project'
steps:
+ - name: Setup Automation Script
+ run: |
+ curl -O -L https://raw.githubusercontent.com/$GITHUB_REPOSITORY/$GITHUB_SHA/llvm/utils/git/github-automation.py
+ chmod a+x github-automation.py
+ pip install PyGithub
+
- name: Update watchers
- uses: actions/github-script at v5
- with:
- github-token: ${{ secrets.ISSUE_MENTION_SECRET }}
- script: |
- const teamname = "issue-subscribers-" + context.payload.label.name.replace(/ /g, "-").replace(":","-").replace("/","-");
- const comment = "@llvm/" + teamname;
- try {
- // This will throw an exception if the team does not exist and no
- // comment will be created.
- team = await github.rest.teams.getByName({
- org: context.repo.owner,
- team_slug: teamname
- });
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: comment
- });
- } catch (e){
- console.log(e);
- }
+ run: |
+ ./github-automation.py \
+ --token ${{ secrets.ISSUE_SUBSCRIBER_TOKEN }} \
+ issue-subscriber \
+ --issue-number ${{ github.event.issue.number }} \
+ --label-name ${{ github.event.label.name }}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116762.398834.patch
Type: text/x-patch
Size: 3833 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220111/de58abad/attachment.bin>
More information about the llvm-commits
mailing list