aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornodiscc <nodiscc@gmail.com>2019-05-25 11:54:09 +0000
committerGitHub <noreply@github.com>2019-05-25 11:54:09 +0000
commit499e5d24bbbf0e7a54494cdd8f19068dd8a6ef32 (patch)
tree87a2fa562059bac51e108dbe7f9e5f308364f82c
parentMerge pull request #1699 from PrplHaz4/patch-1 (diff)
parenttests: fix danger command line (diff)
downloadawesome-selfhosted-499e5d24bbbf0e7a54494cdd8f19068dd8a6ef32.tar.gz
awesome-selfhosted-499e5d24bbbf0e7a54494cdd8f19068dd8a6ef32.zip
Merge pull request #1698 from nodiscc/tools-detect-unmaintained
Tests: add a script to check last commit dates of github repositories listed in README.md
-rw-r--r--.github/join-chat.svg1
-rw-r--r--.travis.yml6
-rw-r--r--tests/Dangerfile (renamed from Dangerfile)0
-rwxr-xr-xtests/check-github-commit-dates.py60
-rw-r--r--tests/test.js (renamed from test.js)0
5 files changed, 63 insertions, 4 deletions
diff --git a/.github/join-chat.svg b/.github/join-chat.svg
deleted file mode 100644
index 7faac520..00000000
--- a/.github/join-chat.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="148" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><mask id="a"><rect width="148" height="20" rx="3" fill="#fff"/></mask><g mask="url(#a)"><path fill="#555" d="M0 0h77v20H0z"/><path fill="#4c1" d="M77 0h71v20H77z"/><path fill="url(#b)" d="M0 0h148v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="38.5" y="15" fill="#010101" fill-opacity=".3">Rocket.Chat</text><text x="38.5" y="14">Rocket.Chat</text><text x="111.5" y="15" fill="#010101" fill-opacity=".3">JOIN CHAT</text><text x="111.5" y="14">JOIN CHAT</text></g></svg> \ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 9267efe1..68a3f44a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,12 +9,12 @@ before_install:
- gem install danger
before_script:
-
+
script:
- git diff master.. --unified=0 README.md | grep --perl-regexp --only-matching --silent "(?<=^\+).*" >> temp.md || (exit 0)
- - node test.js temp.md
+ - node tests/test.js temp.md
- awesome_bot temp.md --allow-redirect || (exit 0)
- - danger --verbose
+ - danger --dangerfile=tests/Dangerfile --verbose
notifications:
email: false
diff --git a/Dangerfile b/tests/Dangerfile
index 115931df..115931df 100644
--- a/Dangerfile
+++ b/tests/Dangerfile
diff --git a/tests/check-github-commit-dates.py b/tests/check-github-commit-dates.py
new file mode 100755
index 00000000..f148bac2
--- /dev/null
+++ b/tests/check-github-commit-dates.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3
+
+""" A script to find github repo links and last commit dates in a markdown file
+
+Requirements:
+ - python3 github module (sudo apt install python3-github on Debian)
+ - A personal access token (https://github.com/settings/tokens)
+
+Usage:
+ - Run awesome_bot --allow-redirect -f README.md beforehand to detect any error(4xx, 5xx) that would
+ cause the script to abort
+ - Github API calls are limited to 5000 requests/hour https://developer.github.com/v3/#rate-limiting
+ - Put the token in your environment variables:
+ export GITHUB_TOKEN=18c45f8d8d556492d1d877998a5b311b368a76e4
+ - The output is unsorted, just pipe it through 'sort' or paste it in your editor and sort from there
+ - Put the script in your crontab or run it from time to time. It doesn't make sense to add this
+ script to the CI job that runs every time something is pushed.
+ - To detect no-commit related activity (repo metadata changes, wiki edits, ...), replace pushed_at
+ with updated_at
+
+"""
+
+from github import Github
+import sys
+import time
+import re
+import os
+
+__author__ = "nodiscc"
+__copyright__ = "Copyright 2019, nodiscc"
+__credits__ = ["https://github.com/kickball/awesome-selfhosted"]
+__license__ = "MIT"
+__version__ = "1.0"
+__maintainer__ = "nodiscc"
+__email__ = "nodiscc@gmail.com"
+__status__ = "Production"
+
+###############################################################################
+
+access_token = os.environ['GITHUB_TOKEN']
+
+""" find all URLs of the form https://github.com/owner/repo """
+with open('README.md', 'r') as readme:
+ data = readme.read()
+ project_urls = re.findall('https://github.com/[A-z]*/[A-z|0-9|\-|_|\.]+', data)
+
+urls = sorted(set(project_urls))
+
+""" Uncomment this to debug the list of matched URLs """
+# print(str(urls))
+# exit(0)
+
+""" login to github API """
+g = Github(access_token)
+
+""" load project metadata, output last commit date and URL """
+for url in urls:
+ project = re.sub('https://github.com/', '', url)
+ repo = g.get_repo(project)
+ print(str(repo.pushed_at) + ' https://github.com/' + project)
diff --git a/test.js b/tests/test.js
index 94e7798c..94e7798c 100644
--- a/test.js
+++ b/tests/test.js