@pkgjs/statusboard 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -112,26 +112,6 @@ async function * loadProject (octokit, graphQL, project, config, _repo) {
112
112
  }
113
113
  }
114
114
 
115
- try {
116
- yield projectDetail(
117
- 'README',
118
- project,
119
- await github.getReadme(graphQL, project.repoOwner, project.repoName, project.primaryBranch)
120
- )
121
- } catch (e) {
122
- yield projectDetail('ERROR', project, e)
123
- }
124
-
125
- try {
126
- yield projectDetail(
127
- 'TRAVIS',
128
- project,
129
- await files.getTravisConfig(project)
130
- )
131
- } catch (e) {
132
- yield projectDetail('ERROR', project, e)
133
- }
134
-
135
115
  try {
136
116
  for await (const issue of github.getRepoIssues(graphQL, project.repoOwner, project.repoName)) {
137
117
  yield projectDetail('ISSUE', project, issue)
package/lib/files.js CHANGED
@@ -1,5 +1,4 @@
1
1
  'use strict'
2
- const yaml = require('js-yaml')
3
2
  const GHRAW = 'https://raw.githubusercontent.com/'
4
3
 
5
4
  module.exports.getPackageJson = async function getPackageJson (project) {
@@ -12,15 +11,3 @@ module.exports.getPackageJson = async function getPackageJson (project) {
12
11
  }
13
12
  return resp.json()
14
13
  }
15
-
16
- module.exports.getTravisConfig = async function getTravisConfig (project) {
17
- const resp = await fetch(`${GHRAW}${project.repoOwner}/${project.repoName}/${project.repoBranch}${project.repoDirectory}.travis.yml`)
18
- if (resp.status !== 200) {
19
- const e = new Error(`Non-200 Response: ${resp.status}`)
20
- e.status = resp.status
21
- e.body = await resp.text()
22
- throw e
23
- }
24
- const travisTxt = await resp.text()
25
- return yaml.safeLoad(travisTxt)
26
- }
package/lib/github.js CHANGED
@@ -343,47 +343,6 @@ async function * getRepoActivity (octokit, owner, repo) {
343
343
  }
344
344
  }
345
345
 
346
- module.exports.getReadme =
347
- async function getReadme (graphQL, owner, repo) {
348
- try {
349
- const resp = await graphQL({
350
- query: ` query($org: String!, $repo: String!) {
351
- repository(name: $repo, owner: $org) {
352
- object(expression: "master:README.md") {
353
- ... on Blob {
354
- text
355
- }
356
- }
357
- altLower: object(expression: "master:readme.md") {
358
- ... on Blob {
359
- text
360
- }
361
- }
362
- altUpper: object(expression: "master:Readme.md") {
363
- ... on Blob {
364
- text
365
- }
366
- }
367
- }
368
- }
369
- `,
370
- org: owner,
371
- repo
372
- })
373
- let readmeText
374
- Object.values(resp.repository).forEach(element => {
375
- if (element !== null) {
376
- readmeText = element.text
377
- }
378
- })
379
- return readmeText
380
- } catch (error) {
381
- error.code = 'GET_README_FAILED'
382
- Error.captureStackTrace(error, module.exports.getReadme)
383
- throw error
384
- }
385
- }
386
-
387
346
  async function getRemainingRepos (graphQL, org, cursor) {
388
347
  try {
389
348
  const resp = await graphQL({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkgjs/statusboard",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A dashboard for project status",
5
5
  "author": "Wes Todd <wes@wesleytodd.com>",
6
6
  "keywords": [
@@ -43,14 +43,13 @@
43
43
  "@wesleytodd/buildjs": "0.0.8",
44
44
  "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
45
45
  "cptmpl": "0.0.4",
46
- "dotenv": "^16.4.7",
46
+ "dotenv": "^17.2.0",
47
47
  "es5-lit-element": "^2.2.1",
48
48
  "es5-lit-html": "^1.1.1",
49
49
  "express": "^4.17.1",
50
50
  "fs-extra": "^8.1.0",
51
51
  "inquirer": "^12.4.2",
52
52
  "install": "^0.13.0",
53
- "js-yaml": "^3.13.1",
54
53
  "level": "^5.0.1",
55
54
  "lit-element": "^2.2.1",
56
55
  "nighthawk": "^2.3.0-1",
@@ -1,12 +1,63 @@
1
1
  @import './normalize.css';
2
2
  @import './normalize-content.css';
3
3
 
4
+ body {
5
+ background-color: rgb(249, 250, 251);
6
+ }
7
+
8
+ main {
9
+ width: 100vw;
10
+ max-width: 100vw;
11
+ padding: 1.5rem;
12
+ }
13
+
14
+ #main-index {
15
+ display: grid;
16
+ gap: 1.5rem;
17
+ grid-template-areas: "issues issues users";
18
+ }
19
+
20
+ .issues-list {
21
+ grid-area: issues;
22
+ display: flex;
23
+ gap: 1.5rem;
24
+ flex-direction: column;
25
+
26
+ a {
27
+ color: rgb(113, 113, 122);
28
+ }
29
+
30
+ h1 {
31
+ margin-bottom: 0;
32
+ color: rgb(9, 9, 11);
33
+ }
34
+
35
+ ul {
36
+ li {
37
+ border: 1px solid #ddd;
38
+ border-radius: .5rem;
39
+ display: flex;
40
+ flex-direction: column;
41
+ gap: 0.5rem;
42
+ padding: 1rem;
43
+ }
44
+ }
45
+
46
+ .issue-title {
47
+ font-weight: 600;
48
+ color: rgb(9, 9, 11);
49
+ }
50
+ }
51
+ .users-list {
52
+ grid-area: users;
53
+ }
54
+
4
55
  .users-list li {
5
56
  display: flex;
6
57
  align-items: center;
7
58
 
8
59
  a {
9
- display: flex;
60
+ display: flex;
10
61
  align-items: center;
11
62
  }
12
63
  }
@@ -27,24 +78,24 @@
27
78
 
28
79
  .issues-list,
29
80
  .users-list {
30
- min-width: 20rem;
31
- padding-left: 1rem;
32
- padding-bottom: 1rem;
81
+ background-color: #fff;
82
+ border-radius: .5rem;
83
+ height: 100%;
84
+ padding: 1.5rem;
85
+ font-size: 13px;
33
86
 
34
87
  ul {
35
- list-style: circle;
88
+ list-style: none;
36
89
  padding: 0;
37
90
  margin: 0;
38
-
39
- li {
40
- padding: .25rem 0;
41
- }
91
+ display: flex;
92
+ gap: 1.5rem;
93
+ flex-direction: column;
42
94
  }
43
95
  }
44
96
 
45
- .project-link {
46
- display: inline-block;
47
- padding: .3rem;
48
- background: #efefef;
49
- border: .01rem solid #ddd;
50
- }
97
+ @media screen and (max-width: 690px) {
98
+ #main-index {
99
+ grid-template-areas: "issues" "users";
100
+ }
101
+ }
@@ -3,14 +3,13 @@
3
3
  header {
4
4
  display: flex;
5
5
  align-items: center;
6
- position: fixed;
6
+ position: sticky;
7
7
  top: 0;
8
8
  left: 0;
9
9
  width: 100%;
10
10
  min-height: 2.75rem;
11
- background-image: linear-gradient(#fafafa, #f0f0f0);
12
- background-repeat: repeat-x;
13
- border-bottom: 1px solid #ddd;
11
+ background: #fff;
12
+ border-bottom: 1px solid rgb(228, 228, 231);
14
13
  padding: 0 1rem;
15
14
 
16
15
  .logo {
@@ -52,6 +51,4 @@ header {
52
51
  }
53
52
  }
54
53
 
55
- main {
56
- padding: 4.75rem 2rem 2rem;
57
- }
54
+
@@ -1,18 +1,27 @@
1
1
  @import './normalize-content.css';
2
2
 
3
+ main {
4
+ width: 100vw;
5
+ max-width: 100vw;
6
+ padding: 1.5rem;
7
+ }
8
+
3
9
  .project-list {
10
+ background-color: #fff;
11
+ border-inline: 1px solid #ddd;
4
12
  width: 100%;
5
13
  border-spacing: 0;
6
14
  border-collapse: collapse;
7
15
 
8
- td {
9
- padding: .5rem;
16
+ tr {
10
17
  border-top: 1px solid #ddd;
11
- border-bottom: 1px solid #fff;
18
+ border-bottom: 1px solid #ddd;
12
19
  }
13
- tr:nth-child(even) td {
14
- background: #f9f9f9;
20
+
21
+ td {
22
+ padding: .5rem;
15
23
  }
24
+
16
25
  tr td:nth-child(1) {
17
26
  min-width: 8rem;
18
27
  max-width: 12rem;
@@ -2,7 +2,7 @@
2
2
 
3
3
  module.exports = {
4
4
  projects: async (data, config, key, { type, project, detail }) => {
5
- if (!['REPO', 'PACKAGE_JSON', 'PACKUMENT', 'TRAVIS'].includes(type)) {
5
+ if (!['REPO', 'PACKAGE_JSON', 'PACKUMENT'].includes(type)) {
6
6
  return data
7
7
  }
8
8
 
@@ -10,9 +10,6 @@ module.exports = {
10
10
  const existing = data.find((p) => p.repo === project.repo)
11
11
  const proj = existing || { ...project }
12
12
  switch (type) {
13
- case 'TRAVIS':
14
- proj.travis = detail
15
- break
16
13
  case 'PACKAGE_JSON':
17
14
  proj.packageJson = detail
18
15
  break
@@ -54,17 +54,13 @@ require('nighthawk')({
54
54
 
55
55
  render(html`
56
56
  <statusboard-page .config="${config}">
57
- <style>
58
- main { display: flex; }
59
- main section { padding: 0 1rem; }
60
- </style>
61
- <main>
62
- <section>
57
+ <main id="main-index">
58
+ <section class="issues-list">
63
59
  <h1><a href="${config.baseUrl}/issues">Top Issues</a></h1>
64
60
 
65
61
  ${res.locals.issues.map(([tag, issues]) => {
66
62
  return html`
67
- <div class="issues-list">
63
+ <div>
68
64
  <h3><a href="${config.baseUrl}/issues/${tag.name}">${tag.name}</a></h3>
69
65
  <ul>
70
66
  ${issues.map((issue) => {
@@ -74,7 +70,7 @@ require('nighthawk')({
74
70
  <a href="https://www.github.com/${issue.project.repoOwner}" target="_blank">${issue.project.repoOwner}</a>
75
71
  / <a href="https://www.github.com/${issue.project.repo}" target="_blank">${issue.project.repoName}</a>
76
72
  </span>
77
- : <a href="${issue.issue.url}" target="_blank">${issue.issue.title}</a>
73
+ <a href="${issue.issue.url}" target="_blank" class="issue-title">${issue.issue.title}</a>
78
74
  </li>
79
75
  `
80
76
  })}
@@ -118,10 +114,9 @@ require('nighthawk')({
118
114
  <statusboard-page .config="${config}">
119
115
  <main>
120
116
  ${res.locals.issues.map(([tag, issues]) => html`
121
- <section>
117
+ <section class="issues-list">
122
118
  <h1><a href="${config.baseUrl}/issues/${tag.name}">${tag.name}</a></h1>
123
-
124
- <div class="issues-list">
119
+ <div >
125
120
  <ul>
126
121
  ${issues.map((issue) => html`
127
122
  <li>
@@ -129,7 +124,7 @@ require('nighthawk')({
129
124
  <a href="https://www.github.com/${issue.project.repoOwner}" target="_blank">${issue.project.repoOwner}</a>
130
125
  / <a href="${issue.project.repo}" target="_blank">${issue.project.repoName}</a>
131
126
  </span>
132
- : <a href="${issue.issue.url}" target="_blank">${issue.issue.title}</a>
127
+ <a href="${issue.issue.url}" target="_blank" class="issue-title">${issue.issue.title}</a>
133
128
  </li>
134
129
  `)}
135
130
  </ul>
@@ -146,19 +141,21 @@ require('nighthawk')({
146
141
  }, null)
147
142
  render(html`
148
143
  <statusboard-page .config="${config}">
149
- <h1>Issues: ${req.params.label}</h1>
150
144
  <div class="issues-list">
151
- <ul>
152
- ${issues.map((issue) => html`
153
- <li>
154
- <span class="project-link">
155
- <a href="https://www.github.com/${issue.project.repoOwner}" target="_blank">${issue.project.repoOwner}</a>
156
- / <a href="${issue.project.repo}" target="_blank">${issue.project.repoName}</a>
157
- </span>
158
- : <a href="${issue.issue.url}" target="_blank">${issue.issue.title}</a>
159
- </li>
160
- `)}
161
- </ul>
145
+ <h1>Issues: ${req.params.label}</h1>
146
+ <div>
147
+ <ul>
148
+ ${issues.map((issue) => html`
149
+ <li>
150
+ <span class="project-link">
151
+ <a href="https://www.github.com/${issue.project.repoOwner}" target="_blank">${issue.project.repoOwner}</a>
152
+ / <a href="${issue.project.repo}" target="_blank">${issue.project.repoName}</a>
153
+ </span>
154
+ <a href="${issue.issue.url}" target="_blank" class="issue-title">${issue.issue.title}</a>
155
+ </li>
156
+ `)}
157
+ </ul>
158
+ </div>
162
159
  </div>
163
160
  </statusboard-page>
164
161
  `, document.body)
@@ -13,73 +13,68 @@ class ProjectList extends LitElement {
13
13
  render () {
14
14
  return html`
15
15
  <link rel="stylesheet" href="${this.config.files.css.projectList}" />
16
- <h2>Projects</h2>
17
- <table class="project-list">
18
- ${this.projects.map((project) => html`
19
- <tr>
20
- <td>
21
- <a href="https://www.github.com/${project.repoOwner}" target="_blank">${project.repoOwner}</a>
22
- / <a href="${(project.repoDetails && project.repoDetails.url) || `https://www.github.com/${project.repoOwner}/${project.repoName}`}" target="_blank">${project.repoName}</a>
23
- </td>
24
- <td title="Stars">
25
- <a href="https://npmjs.org/package/${project.packageName}">
26
- <img src="https://badgen.net/github/stars/${project.repo}?color=yellow" />
27
- </a>
28
- </td>
29
- <td title="Watchers">
30
- <a href="https://www.github.com/${project.repo}">
31
- <img src="https://badgen.net/github/watchers/${project.repo}" />
32
- </a>
33
- </td>
34
- <td title="Issues">
35
- <a href="https://www.github.com/${project.repo}">
36
- <img src="https://badgen.net/github/open-issues/${project.repo}" />
37
- </a>
38
- </td>
39
- <td title="PRs">
40
- <a href="https://www.github.com/${project.repo}">
41
- <img src="https://badgen.net/github/open-prs/${project.repo}" />
42
- </a>
43
- </td>
44
- <td title="commits">
45
- <a href="https://www.github.com/${project.repo}">
46
- <img src="https://badgen.net/github/commits/${project.repo}" />
47
- </a>
48
- </td>
49
- <td title="License">
50
- <a href="https://www.github.com/${project.repo}">
51
- <img src="https://badgen.net/github/license/${project.repo}" />
52
- </a>
53
- </td>
54
- <td title="Contributors">
55
- <a href="https://www.github.com/${project.repo}">
56
- <img src="https://badgen.net/github/contributors/${project.repo}" />
57
- </a>
58
- </td>
59
- <td>
60
- ${project.packageJson && (html`
16
+ <main>
17
+ <h2>Projects</h2>
18
+ <table class="project-list">
19
+ ${this.projects.map((project) => html`
20
+ <tr>
21
+ <td>
22
+ <a href="https://www.github.com/${project.repoOwner}" target="_blank">${project.repoOwner}</a>
23
+ / <a href="${(project.repoDetails && project.repoDetails.url) || `https://www.github.com/${project.repoOwner}/${project.repoName}`}" target="_blank">${project.repoName}</a>
24
+ </td>
25
+ <td title="Stars">
61
26
  <a href="https://npmjs.org/package/${project.packageName}">
62
- <img src="https://badgen.net/npm/v/${project.packageName}" />
27
+ <img src="https://badgen.net/github/stars/${project.repo}?color=yellow" />
63
28
  </a>
64
- `)}
65
- </td>
66
- <td>
67
- ${project.packageJson && (html`
68
- <a href="https://npmjs.org/package/${project.packageName}">
69
- <img src="https://badgen.net/npm/dm/${project.packageName}" />
29
+ </td>
30
+ <td title="Watchers">
31
+ <a href="https://www.github.com/${project.repo}">
32
+ <img src="https://badgen.net/github/watchers/${project.repo}" />
33
+ </a>
34
+ </td>
35
+ <td title="Issues">
36
+ <a href="https://www.github.com/${project.repo}">
37
+ <img src="https://badgen.net/github/open-issues/${project.repo}" />
38
+ </a>
39
+ </td>
40
+ <td title="PRs">
41
+ <a href="https://www.github.com/${project.repo}">
42
+ <img src="https://badgen.net/github/open-prs/${project.repo}" />
43
+ </a>
44
+ </td>
45
+ <td title="commits">
46
+ <a href="https://www.github.com/${project.repo}">
47
+ <img src="https://badgen.net/github/commits/${project.repo}" />
48
+ </a>
49
+ </td>
50
+ <td title="License">
51
+ <a href="https://www.github.com/${project.repo}">
52
+ <img src="https://badgen.net/github/license/${project.repo}" />
70
53
  </a>
71
- `)}
72
- </td>
73
- <td>
74
- ${project.travis && (html`
75
- <a href="https://travis-ci.org/${project.repo}">
76
- <img src="https://badgen.net/travis/${project.repo}" />
54
+ </td>
55
+ <td title="Contributors">
56
+ <a href="https://www.github.com/${project.repo}">
57
+ <img src="https://badgen.net/github/contributors/${project.repo}" />
77
58
  </a>
78
- `)}
79
- </td>
80
- </tr>
81
- `)}
82
- </table>
59
+ </td>
60
+ <td>
61
+ ${project.packageJson && (html`
62
+ <a href="https://npmjs.org/package/${project.packageName}">
63
+ <img src="https://badgen.net/npm/v/${project.packageName}" />
64
+ </a>
65
+ `)}
66
+ </td>
67
+ <td>
68
+ ${project.packageJson && (html`
69
+ <a href="https://npmjs.org/package/${project.packageName}">
70
+ <img src="https://badgen.net/npm/dm/${project.packageName}" />
71
+ </a>
72
+ `)}
73
+ </td>
74
+ </tr>
75
+ `)}
76
+ </table>
77
+ </main>
83
78
  `
84
79
  }
85
80
  }