You've already forked wakapi-readme-stats
feat: added ability to generate stats on PR and sent to latest comment on PR
This commit is contained in:
54
.github/workflows/review_pr.yml
vendored
Normal file
54
.github/workflows/review_pr.yml
vendored
Normal file
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -185,8 +185,17 @@ async def main():
|
|||||||
init_localization_manager()
|
init_localization_manager()
|
||||||
DBM.i("Managers initialized.")
|
DBM.i("Managers initialized.")
|
||||||
|
|
||||||
if GHM.update_readme(await get_stats()):
|
stats = await get_stats()
|
||||||
|
if not EM.DEBUG_RUN:
|
||||||
|
if GHM.update_readme(stats):
|
||||||
DBM.g("Readme updated!")
|
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()
|
await DM.close_remote_resources()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -121,6 +121,26 @@ GITHUB_API_QUERIES = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
""",
|
""",
|
||||||
|
# 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -46,3 +46,4 @@ class EnvironmentManager:
|
|||||||
|
|
||||||
DEBUG_LOGGING = getenv("INPUT_DEBUG_LOGGING", "0").lower() in _TRUTHY
|
DEBUG_LOGGING = getenv("INPUT_DEBUG_LOGGING", "0").lower() in _TRUTHY
|
||||||
DEBUG_RUN = getenv("DEBUG_RUN", "False").lower() in _TRUTHY
|
DEBUG_RUN = getenv("DEBUG_RUN", "False").lower() in _TRUTHY
|
||||||
|
PR_NUMBER = getenv("PR_NUMBER", "")
|
||||||
|
|||||||
Reference in New Issue
Block a user