View on GitHub

Brainite

Glance

Glance

Static dashboard reports for GitHub issues

No longer maintained. After using glance reliably for 9 years, we transitioned to a new system in 2023.

Basic Usage

# GitHub token stored in YAML
/bin/glance update --conf=[path-to-configuration.yml]
# GitHub token NOT stored in YAML
/bin/glance update --conf=[path-to-configuration.yml] --token=[github_token]

Basic Configuration

# Default settings allow quick configuration of multiple dashboards.
# Each team member can have separate dashboards with unique prioritization logic.
defaults:
  # Generate token at https://github.com/settings/tokens
  token:      GITHUB_TOKEN
  
  # Basics: Choose a repo and specify open issues.
  repos:      ["brainite/glance-example"]
  state:      open
  filter:     is:open
  
  # Debug a specific issue number
  # debug:      99
  
  # Weight the issues based on which filters they match.
  # Start with a weight of 1, and then multiply by each filter that matches.
  # Thus, setting a filter's weight to 0 would make any matches be 0/hidden. 
  weights:
    # Bugs: bold, add label
    - filter: label:bug
      weight: 100
      suffix: "__ __(BUG)__"
      prefix: "__"
    # Overdue: add label
    # This is based on a line in the issue formatted: "Due: YYYY-MM-DD"
    - filter: due:"* .. -1 day"
      weight: 20
      suffix: " __(overdue)__"
    # Due today: add label 
    - filter: due:"today .. today"
      weight: 10
      suffix: " __(due TODAY)__"
    # Due next 4 days: add due date
    - filter: due:"+1 day .. +4 days"
      weight: 5
      suffix: " __(due _{{due}}_)__"
    # Due next week: add due date
    - filter: due:"+5 days .. +11 days"
      weight: 2
      suffix: " _(due {{due}})_"
    # Due 46+ days: hide
    - filter: due:"+46 days .. *"
      weight: 0
    # Unassigned: Move to top for correction
    - filter: no:assignee
      weight: 1000
      suffix: " __(no assignee)__"
      assignee: =owner
    # No milestone: Move to top for correction
    - filter: no:milestone
      weight: 1000
      suffix: " __(no milestone)__"
    # Prioritize with 10+ comments
    - filter: comments:>10
      weight: 1.5
    # Prioritize only when in the current month.
    # Thus, the label "idle-10" would hide an issue until October.
    - filter: label:idle-{{month}}
      weight: 10
    - filter: label:idle-{{month_1}}
      weight: 0
    - filter: label:idle-{{month_2}}
      weight: 0
    - filter: label:idle-{{month_3}}
      weight: 0
    - filter: label:idle-{{month_4}}
      weight: 0
    - filter: label:idle-{{month_5}}
      weight: 0
    - filter: label:idle-{{month_6}}
      weight: 0
    - filter: label:idle-{{month_7}}
      weight: 0
    - filter: label:idle-{{month_8}}
      weight: 0
    - filter: label:idle-{{month_9}}
      weight: 0
    - filter: label:idle-{{month_10}}
      weight: 0
    - filter: label:idle-{{month_11}}
      weight: 0
    # Prioritize a milestone and move under a heading
    - filter: milestone:"Beta"
      weight: 5
      heading: "Beta Site"
  
  
# Configure a dashboard that extends the default settings.
dashboard:
  # Markup to precede the list.
  header: |
    Glance Issue Tracking
    ===
    
  output:
    # The output does NOT need to be the same repo.
    # Best practice: the output should go in a repo
    #   without any code due to the high number of commits.
    repo:   brainite/glance-example-output
    branch: master
    path:   README.md

# Extend a dashboard to easily align dashboards.
# Differentiate the dashboard using inherit_filter
dashboard_sub:
  inherit_from: dashboard
  
  # Only show issues for one user
  inherit_filter: assignee:brainite
  header: |
    John Doe's Priority Issues
    ===
  output:
    repo:   brainite/glance-example-output
    branch: master
    path:   Users/JohnDoe/README.md