mirror of
https://github.com/boostorg/website-v2.git
synced 2026-01-28 19:52:14 +00:00
View stats per release, we do this by doing log diffs between release tags. Ex: `git log boost-1.78.0..boost-1.79.0`. The output is parsed and the commits are saved with a foreign key to the `LibraryVersion` it relates to. - commits are imported by doing "bare" clones (no project files, only git data) of repos into temporary directories, as created by python's bulitin `tempfile.TemporaryDirectory` - Added Commit model - Added CommitAuthor model - Added CommitAuthorEmail model - One CommitAuthor can have many emails. - Added task for importing commits. (and admin link to trigger it) - Added task for importing CommitAuthor github data (avatar and profile url, with admin link to trigger it) - Added a basic Library stat page which can be viewed by going to the admin -> library -> view stats. - Added a `Get Release Report` button in the `LibraryAdmin` which allows a staff member to select a boost version and up to 8 libraries to generate a report for. The report is just a webpage which attempts to convert cleanly to a pdf using the browser's print to pdf functionality. - Updated the Library Detail page to show commits per release instead of per month. - Updated the Library Detail page to show `Maintainers & Contributors` sorted by maintainers, then the top contributors for the selected release, then the top contributors overall by commits descending. - Removed CommitData, which was tracking monthly commit stats
22 lines
804 B
Python
22 lines
804 B
Python
import djclick as click
|
|
from libraries.github import LibraryUpdater
|
|
from libraries.models import Library
|
|
|
|
|
|
@click.command()
|
|
@click.option("--key", is_flag=False, help="Library Key", default=None)
|
|
@click.option("--clean", is_flag=True, help="Library Key", default=False)
|
|
def command(key, clean):
|
|
updater = LibraryUpdater()
|
|
click.secho(
|
|
"Updating author avatars from github. This may take a while, "
|
|
"depending on how many authors need to be updated...",
|
|
fg="green",
|
|
)
|
|
if key is None:
|
|
updater.update_commit_author_github_data(overwrite=clean)
|
|
else:
|
|
library = Library.objects.get(key=key)
|
|
updater.update_commit_author_github_data(obj=library, overwrite=clean)
|
|
click.secho("Finished updating author avatars from github...", fg="green")
|