Skip to content

Pr from here #25

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

Closed
wants to merge 2 commits into from
Closed
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
27 changes: 27 additions & 0 deletions .github/workflows/pr-greeter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: PR Greeter

on:
pull_request_target:
types: [ opened ]

permissions:
pull-requests: write

jobs:
greet:
runs-on: ubuntu-latest
if: github.repository == 'DavidSpickett/llvm-project'
steps:
- name: Setup Automation Script
run: |
curl -O -L --fail https://github.com/raw/"$GITHUB_REPOSITORY"/main/llvm/utils/git/github-automation.py
curl -O -L --fail https://github.com/raw/"$GITHUB_REPOSITORY"/main/llvm/utils/git/requirements.txt
chmod a+x github-automation.py
pip install -r requirements.txt

- name: Greet Author
run: |
./github-automation.py \
--token '${{ secrets.GITHUB_TOKEN }}' \
pr-greeter \
--issue-number "${{ github.event.pull_request.number }}"
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,5 @@ chat](https://discord.gg/xS7Z362),

The LLVM project has adopted a [code of conduct](https://llvm.org/docs/CodeOfConduct.html) for
participants to all modes of communication within the project.

...t
35 changes: 35 additions & 0 deletions llvm/utils/git/github-automation.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,35 @@ def _get_curent_team(self) -> Optional[github.Team.Team]:
return None


class PRGreeter:
def __init__(self, token: str, repo: str, pr_number: int):
repo = github.Github(token).get_repo(repo)
self.pr = repo.get_issue(pr_number).as_pull_request()

def run(self) -> bool:
# We assume that this is only called for a PR that has just been opened.

# This text is using Markdown formatting.
comment = f"""\
Thank you for submitting a Pull Request (PR) to the LLVM Project!

You can add reviewers by using the "Reviewers" section on this page.

If this is not working for you, it's probably because you don't have write
permissions for the repository. In which case you can instead tag reviewers by
name in a comment by using `@` followed by their GitHub username.

If you have received no comments on your PR for a week, you can request a review
by "ping"ing the PR by adding a comment “Ping”. The common courtesy "ping" rate
is once a week. Please remember that you are asking for valuable time from other developers.

If you have further questions, they may be answered by the [LLVM GitHub User Guide](https://llvm.org/docs/GitHub.html).

You can also ask questions in a comment on this PR, on the [LLVM Discord](https://discord.com/invite/xS7Z362) or on the [forums](https://discourse.llvm.org/)."""
self.pr.as_issue().create_comment(comment)
return True


def setup_llvmbot_git(git_dir="."):
"""
Configure the git repo in `git_dir` with the llvmbot account so
Expand Down Expand Up @@ -655,6 +684,9 @@ def execute_command(self) -> bool:
pr_subscriber_parser.add_argument("--label-name", type=str, required=True)
pr_subscriber_parser.add_argument("--issue-number", type=int, required=True)

pr_greeter_parser = subparsers.add_parser("pr-greeter")
pr_greeter_parser.add_argument("--issue-number", type=int, required=True)

release_workflow_parser = subparsers.add_parser("release-workflow")
release_workflow_parser.add_argument(
"--llvm-project-dir",
Expand Down Expand Up @@ -705,6 +737,9 @@ def execute_command(self) -> bool:
args.token, args.repo, args.issue_number, args.label_name
)
pr_subscriber.run()
elif args.command == "pr-greeter":
pr_greeter = PRGreeter(args.token, args.repo, args.issue_number)
pr_greeter.run()
elif args.command == "release-workflow":
release_workflow = ReleaseWorkflow(
args.token,
Expand Down