Skip to content

Commit

Permalink
feat: added ability to generate stats on PR and sent to latest commen…
Browse files Browse the repository at this point in the history
…t on PR
  • Loading branch information
anmol098 committed Feb 24, 2023
1 parent c8ef0e4 commit 94e4a6c
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 2 deletions.
54 changes: 54 additions & 0 deletions .github/workflows/review_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: REVIEW_PULL_REQUEST

on:
pull_request:
types: [ opened, edited, reopened, synchronize ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/dev' }}

jobs:
publish-server-image:
name: Run Test and Review PR
runs-on: ubuntu-latest

steps:
- name: Checkout 🛎️
uses: actions/checkout@v3

- name: Setup Python 3.8 🐍
uses: actions/setup-python@v4
with:
python-version: 3.8

- name: Install Dependencies 📥
run: pip install -r requirements.txt

- name: Run Current Tests 🧪
env:
INPUT_GH_TOKEN: ${{ secrets.INPUT_GITHUB_TOKEN }}
INPUT_WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
PR_NUMBER: ${{ github.event.number }}
INPUT_SHOW_TIMEZONE: true
INPUT_SHOW_PROJECTS: True
INPUT_SHOW_EDITORS: True
INPUT_SHOW_OS: True
INPUT_SHOW_LANGUAGE: True
INPUT_SYMBOL_VERSION: 1
INPUT_SHOW_LINES_OF_CODE: True
INPUT_SHOW_LOC_CHART: True
INPUT_SHOW_PROFILE_VIEWS: True
INPUT_SHOW_TOTAL_CODE_TIME: True
INPUT_SHOW_SHORT_INFO: True
INPUT_SHOW_COMMIT: True
INPUT_SHOW_DAYS_OF_WEEK: True
INPUT_SHOW_LANGUAGE_PER_REPO: True
INPUT_SHOW_UPDATED_DATE: True
INPUT_COMMIT_BY_ME: True
INPUT_DEBUG_LOGGING: True
DEBUG_RUN: True
run: python3 sources/main.py



13 changes: 11 additions & 2 deletions sources/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,17 @@ async def main():
init_localization_manager()
DBM.i("Managers initialized.")

if GHM.update_readme(await get_stats()):
DBM.g("Readme updated!")
stats = await get_stats()
if not EM.DEBUG_RUN:
if GHM.update_readme(stats):
DBM.g("Readme updated!")
else:
DBM.i("Commenting PR...")
pr_data = await DM.get_remote_graphql("get_pr_id", pr_number=EM.PR_NUMBER)
pr_id = pr_data["data"]["repository"]["pullRequest"]["id"]
await DM.get_remote_graphql("add_pr_comment", pr_id=pr_id, comment=stats)
DBM.g("PR commented!")
DBM.g("Debug run, readme not updated. check the latest comment for the generated stats.")
await DM.close_remote_resources()


Expand Down
20 changes: 20 additions & 0 deletions sources/manager_download.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,26 @@
}
}
""",
# Query to collect current PR ID
# NOTE: Only to be used for PR review not to be used with actual action
"get_pr_id": """
{
repository(owner: "anmol098", name: "waka-readme-stats") {
pullRequest(number: $pr_number) {
id
}
}
}
""",
"add_pr_comment": """
mutation {
addComment(input: {subjectId: "$pr_id", body: "$comment"}) {
subject {
id
}
}
}
"""
}


Expand Down
1 change: 1 addition & 0 deletions sources/manager_environment.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,4 @@ class EnvironmentManager:

DEBUG_LOGGING = getenv("INPUT_DEBUG_LOGGING", "0").lower() in _TRUTHY
DEBUG_RUN = getenv("DEBUG_RUN", "False").lower() in _TRUTHY
PR_NUMBER = getenv("PR_NUMBER", "")

0 comments on commit 94e4a6c

Please sign in to comment.