Skip to content

silverstripe/github-issue-search-client

Repository files navigation

Github Issue Searcher

Overview

This app uses the Github issue search API to provide a convenient issue browser across all of our supported modules.

It uses vue-cli to simplify local development and production builds for VueJS. You can use it on https://github-issue-search-client-silverstripe.vercel.app.

Preview

This project is powered by Vercel.

Vercel logo

Install

Use Node v8 or higher.

npm install

For deployment, you will need to install Vercel and log in.

Configure

Create an .env with:

VUE_APP_GRAPHQL_ENDPOINT=https://api.github.com/graphql
VUE_APP_GRAPHQL_TOKEN=<token>

Get a Github Personal Access Token and chuck it in <token>. Note that the token should NOT have any other permissions/scopes, since it will be included in the client bundle (and is readable by everyone through network requests). The only reason to include it here is avoiding to hit Github's rate limits without it.

In order to get an updated list of our supported modules, you can run the following command. This will be written to the repos.json file in the src folder, which can be updated (in VCS) periodically if required. This will also happen during a deployment and auto-update in the Now environment.

npm run get-repos

Run locally

npm run serve

Build

npm run build

Deploy

Continuous deployment

The project is published to Vercel automatically when changes are merged into the master branch. This is done via an automatic GitHub integration.

Manual deployment

You can also deploy projects manually. To do this you will need to have the Vercel CLI installed, be logged in, part of the "silverstripe" Vercel team, and have the team configured in your profile. For access to the team, contact Ingo or Garion.

# Login if necessary
vercel login

# Switch to SilverStripe Ltd team
vercel teams switch silverstripe

# Ship it!
vercel

It will give you an updated URL to run in your browser. This will also run automatically as a Git hook.

API keys

To store the GraphQL API token in an environment variable for Now, you need to use the CLI to save is as a secret:

vercel secret add graphql-api-key YOURAPITOKENHERE

The secret variable name @graphql-api-key is referenced from now.json to map to an environment variable.

Usage

Custom Repositories

You can pass in a custom list of repositories via URL params:

?customRepos=silverstripe/silverstripe-framework,silverstripe/silverstripe-cms

This can be helpful to filter only to repos you're interested on in a specific project context, e.g. extracting them from your composer.lock file.

Protip: You can generate these custom repos from your composer.lock file automatically through Silverstripe Module Issue Browser Util.

Assuming you've got your Composer binaries set up globally, the following will read from your lock file and open the issue browser:

composer global require silverstripe/github-issue-search-composer-util
cat /my/project/composer.lock | github-issue-search | xargs open

Analytics

The default instance has Google Analytics set up under a Silverstripe owned account. Please contact maintainers if you'd like to have a look!