Giter Site home page Giter Site logo

sgibson91 / github-activity-dashboard Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 0.0 1.46 MB

A tool to help visualise activity in issues and PRs across many repos and orgs

License: MIT License

Python 38.55% Jupyter Notebook 61.45%
jupyter-notebook voila voila-dashboard binder binder-ready github github-activity python template

github-activity-dashboard's Introduction

Sarah Gibson

๐Ÿ”“ Open Software ๐Ÿ’ป Open Infrastructure โš™๏ธ Open Science โš—๏ธ

Pronouns: she/her

GitHub followers

Sarah Gibson is an Open Source Infrastructure Engineer at 2i2c, an open source contributor and advocate. She holds more than two years of experience as a Research Engineer at a national institute for data science and artificial intelligence, as well as holding a core contributor role in the open source projects Binder, JupyterHub, and The Turing Way. Sarah is passionate about working with domain experts to leverage cloud computing in order to accelerate cutting-edge, data-intensive research and disseminating the results in an open, reproducible and reusable manner.

Sarah holds a Fellowship with the Software Sustainability Institute and advocates for best software practices in research. She is a member of the mybinder.org operating team and maintains infrastructure supporting a global community in sharing reproducible computational environments. She has also mentored projects through two cohorts of the Open Life Science programme, imparting lived experience of her skills participating and leading in open science projects.


๐Ÿ“š Latest blog posts

โ–ถ๏ธ ...more blog posts


๐Ÿ“ˆ My GitHub Stats

Top Langs sgibson91's GitHub stats

github-activity-dashboard's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

github-activity-dashboard's Issues

Create dashboard for "Issues closed within the last month"

This will be a proxy for "work did I work on last month" in order to write invoices

GitHub search query: is:issue state:closed update:YYYY-MM-DD..YYYY-MM-DD

Need to generate the date range on the fly, but should always be last month.

Should still be able to filter by repo like on main dashboard, but mix-and-match repos. So maybe check boxes for what to include or not, instead of a drop-down.

Add a .repo-ignore functionality

There may be some projects/repos you don't want to show up in the results, we should be able to specific these in a .repo-ignore file.

  • Read in a .repo-ignore file
  • Exclude hits on the ignored repos from the output of get-data.py
  • Document how to use .repo-ignore

Add .repowatch functionality

This should be the inverse of .repoignore.

Always pull in all issues/PRs of a given repo, regardless of whether the user created them or is assigned to them.

E.g. for projects that you maintain. and need to keep track of issues.

[BUGS] In Past Activity Summary dashboard

Bug 1: Error thrown when selecting a specific repo in 'Activity in Last Week'

Details
---------------------------------------------------------------------------
IndexingError                             Traceback (most recent call last)
/srv/conda/envs/notebook/lib/python3.7/site-packages/ipywidgets/widgets/interaction.py in update(self, *args)
    255                     value = widget.get_interact_value()
    256                     self.kwargs[widget._kwarg] = value
--> 257                 self.result = self.f(**self.kwargs)
    258                 show_inline_matplotlib_plots()
    259                 if self.auto_display and self.result is not None:

/tmp/ipykernel_91/2924422585.py in view_weekly_summmary(repo, sort, sort_ascending, assigned, created, issues, pull_requests)
     20         filtered = weekly_df.sort_values(sort, ascending=sort_ascending)
     21     else:
---> 22         filtered = weekly_df.loc[monthly_df["repo_name"] == repo].sort_values(
     23             sort, ascending=sort_ascending
     24         )

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/indexing.py in __getitem__(self, key)
    929 
    930             maybe_callable = com.apply_if_callable(key, self.obj)
--> 931             return self._getitem_axis(maybe_callable, axis=axis)
    932 
    933     def _is_scalar_access(self, key: tuple):

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/indexing.py in _getitem_axis(self, key, axis)
   1142             return self._get_slice_axis(key, axis=axis)
   1143         elif com.is_bool_indexer(key):
-> 1144             return self._getbool_axis(key, axis=axis)
   1145         elif is_list_like_indexer(key):
   1146 

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/indexing.py in _getbool_axis(self, key, axis)
    946         # caller is responsible for ensuring non-None axis
    947         labels = self.obj._get_axis(axis)
--> 948         key = check_bool_indexer(labels, key)
    949         inds = key.nonzero()[0]
    950         return self.obj._take_with_is_copy(inds, axis=axis)

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/indexing.py in check_bool_indexer(index, key)
   2387         if mask.any():
   2388             raise IndexingError(
-> 2389                 "Unalignable boolean Series provided as "
   2390                 "indexer (index of the boolean Series and of "
   2391                 "the indexed object do not match)."

IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).

Bug 2: Error thrown when selecting either assigned or created in 'Closed in the Last Month' (both are fine)

Details
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/srv/conda/envs/notebook/lib/python3.7/site-packages/ipywidgets/widgets/interaction.py in update(self, *args)
    255                     value = widget.get_interact_value()
    256                     self.kwargs[widget._kwarg] = value
--> 257                 self.result = self.f(**self.kwargs)
    258                 show_inline_matplotlib_plots()
    259                 if self.auto_display and self.result is not None:

/tmp/ipykernel_91/2644502978.py in view_monthly_summmary(repo, sort, sort_ascending, assigned, created, issues, pull_requests)
     29             filter_name.startswith("assigned") for filter_name in monthly_df["filter"]
     30         ]
---> 31         filtered = filtered[cond]
     32     elif (not assigned) and created:
     33         # Only show tickets that I created

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/frame.py in __getitem__(self, key)
   3447         # Do we have a (boolean) 1d indexer?
   3448         if com.is_bool_indexer(key):
-> 3449             return self._getitem_bool_array(key)
   3450 
   3451         # We are left with two options: a single key, and a collection of keys,

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/frame.py in _getitem_bool_array(self, key)
   3495         elif len(key) != len(self.index):
   3496             raise ValueError(
-> 3497                 f"Item wrong length {len(key)} instead of {len(self.index)}."
   3498             )
   3499 

ValueError: Item wrong length 163 instead of 87.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.