This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
from datetime import datetime | |
import re | |
def get_top_contributor(username, token, repo_owner, repo_name, start_date, end_date): | |
headers = {"Authorization": f"Bearer {token}"} | |
url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/pulls?state=closed&sort=updated&direction=desc" | |
response = requests.get(url, headers=headers) | |
pulls = response.json() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import subprocess | |
def get_top_contributor(date): | |
git_command = f'git log --since="{date} 00:00" --until="{date} 23:59" --pretty=format:"%an" --merges' | |
result = subprocess.run(git_command, shell=True, capture_output=True, text=True) | |
contributors = result.stdout.splitlines() | |
if not contributors: | |
return None, 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Steps: | |
1) Go to your notifications page & select Invitations. | |
2) Right click -> Inspect -> Console. | |
3) Write the below query for accepting <200 requests. | |
document.querySelectorAll('.invitation-card__action-btn').forEach(node => node.click()) | |
4) Write the below query for accepting any number of requests. | |
function clickBatch(selector, batchSize, delay) { | |
const elements = document.querySelectorAll(selector); | |
let index = 0; | |
function clickNextBatch() { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# install bundletool, read more at https://developer.android.com/studio/command-line/bundletool | |
brew install bundle tool | |
# extract apks file from aab. If bundle is signed, specify the keystore attributes as well. If the bundle is not signed, you can add universal model, change the output to .zip, & use universal.apk | |
bundletool build-apks --bundle=bundle.aab --output=output.apks --ks=key.jks --ks-pass=pass:password --ks-key-alias=password --key-pass=pass:password | |
# install the apks file to your device | |
bundletool install-apks —apks=output.apks | |
# extract the path of your package name |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import httplib2 | |
from googleapiclient.discovery import build | |
from oauth2client.service_account import ServiceAccountCredentials | |
from oauth2client.client import AccessTokenRefreshError | |
PACKAGE_NAME = ( | |
'your.package.name' | |
) | |
TRACK = ( | |
'production' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Those who review the large PRs and keep on clicking "Load Diff", do the following: | |
1) Open the PR completely, as in all pages, I use CMD+Bottom and complete the load more | |
2) Right click -> Inspect -> Console and type in the following: | |
document.querySelectorAll('.load-diff-button').forEach(node => node.click()) | |
Let me know if the magic happens for you. |