-
Notifications
You must be signed in to change notification settings - Fork 0
/
userscript.js
155 lines (153 loc) · 6.83 KB
/
userscript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
// ==UserScript==
// @name github-ossinsight
// @namespace https://github.com/lly-ke/github-ossinsight
// @version 2022.12.20
// @description A Tampermonkey script that helps you quickly link to [ossinsight](https://ossinsight.io/) in your GitHub repository to quickly analyze the health of an open source project for more multidimensional insight into an open source project
// @description:zh 一个 Tampermonkey(油猴) 脚本,它可以帮助您在 GitHub 仓库中快速链接到 [ossinsight](https://ossinsight.io/) , 以便快速分析开源项目健康状况以更在多维度深入探究一个开源项目
// @description:zh-CN 一个 Tampermonkey(油猴) 脚本,它可以帮助您在 GitHub 仓库中快速链接到 [ossinsight](https://ossinsight.io/) , 以便快速分析开源项目健康状况以更在多维度深入探究一个开源项目
// @author lly-ke
// @match https://github.com/*
// @icon https://raw.githubusercontent.com/lly-ke/github-ossinsight/main/images/logo.svg
// @grant none
// @license MIT
// ==/UserScript==
(function () {
'use strict'
const svgStr = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16px"
height="15px"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 128 80"
id="svg2"
version="1.1"
inkscape:version="0.48.5 r10040"
width="100%"
height="100%"
sodipodi:docname="activity-log-manager.svg">
<metadata
id="metadata76">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1082"
inkscape:window-height="570"
id="namedview74"
showgrid="false"
inkscape:zoom="2.4583334"
inkscape:cx="97.683497"
inkscape:cy="32.343562"
inkscape:window-x="15"
inkscape:window-y="39"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<defs
id="defs4">
<linearGradient
id="linearGradient3764"
x1="1"
x2="47"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-1,1,0,-1.5e-6,47.999998)">
<stop
stop-color="#8358b4"
stop-opacity="1"
id="stop7" />
<stop
offset="1"
stop-color="#8d65ba"
stop-opacity="1"
id="stop9" />
</linearGradient>
<clipPath
id="clipPath-057129763">
<g
transform="translate(0,-1004.3622)"
id="g12">
<path
d="m -24,13 c 0,1.105 -0.672,2 -1.5,2 -0.828,0 -1.5,-0.895 -1.5,-2 0,-1.105 0.672,-2 1.5,-2 0.828,0 1.5,0.895 1.5,2 z"
transform="matrix(15.333333,0,0,11.5,414.99999,878.8622)"
id="path14"
inkscape:connector-curvature="0"
style="fill:#1890d0" />
</g>
</clipPath>
<clipPath
id="clipPath-064426159">
<g
transform="translate(0,-1004.3622)"
id="g17">
<path
d="m -24,13 c 0,1.105 -0.672,2 -1.5,2 -0.828,0 -1.5,-0.895 -1.5,-2 0,-1.105 0.672,-2 1.5,-2 0.828,0 1.5,0.895 1.5,2 z"
transform="matrix(15.333333,0,0,11.5,414.99999,878.8622)"
id="path19"
inkscape:connector-curvature="0"
style="fill:#1890d0" />
</g>
</clipPath>
</defs>
<g
id="g33"
transform="translate(0,80)" />
<path
style="fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0"
id="path61"
d="m 124.3786,58.780229 c -1.27749,-1.795307 -2.68782,-3.48499 -4.11179,-5.150822 C 112.62916,44.68703 103.86053,36.715539 94.250452,30.927693 88.115128,27.228104 81.543761,24.247314 74.74074,22.809725 71.279616,22.090933 67.893432,21.719607 64.319891,21.705982 c -3.461128,0 -6.918848,0.384951 -10.37997,1.103743 -6.813243,1.437589 -13.360765,4.418379 -19.496087,8.117968 -9.606671,5.787846 -18.388938,13.762746 -26.0538323,22.701714 -1.4103405,1.662427 -2.7934283,3.352111 -4.0709103,5.150822 -1.7441892,2.394851 -1.7441892,5.21552 0,7.61037 3.9005794,5.467639 8.5574296,10.322066 13.2687846,14.784739 10.192606,9.569192 21.863688,17.578152 34.73049,20.811052 3.978932,0.99813 7.971493,1.47846 11.977677,1.47846 4.057286,0 8.022589,-0.48033 12.001521,-1.47846 12.866803,-3.2329 24.551506,-11.24526 34.757746,-20.811052 4.73861,-4.445654 9.38182,-9.313696 13.29263,-14.784739 1.71694,-2.39485 1.71694,-5.215519 0,-7.61037 m 0,0" />
<path
style="fill:#f9f9f9;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0"
id="path63"
d="m 95.010128,62.585414 c 0,16.927497 -13.728682,30.659556 -30.65958,30.659556 -16.927494,0 -30.659579,-13.728655 -30.659579,-30.659556 0,-16.927494 13.728682,-30.659582 30.659579,-30.659582 16.927497,0 30.65958,13.728679 30.65958,30.659582 m 0,0" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0"
id="SVGCleanerId_0"
d="m 81.383648,62.585414 c 0,9.395467 -7.624015,17.019479 -17.0331,17.019479 -9.409084,0 -17.033099,-7.624012 -17.033099,-17.019479 0,-9.409081 7.624015,-17.033104 17.033099,-17.033104 9.409085,0 17.0331,7.624023 17.0331,17.033104 m 0,0" />
<path
sodipodi:type="arc"
style="fill:#f9f9f9;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path2994"
sodipodi:cx="60.403698"
sodipodi:cy="61.555935"
sodipodi:rx="5.1774597"
sodipodi:ry="4.889823"
d="m 65.581158,61.555935 a 5.1774597,4.889823 0 1 1 -10.35492,0 5.1774597,4.889823 0 1 1 10.35492,0 z"
transform="translate(12.066285,-6.7626366)" />
</svg>
`
const el = document.querySelector('.pagehead-actions')
const [owner, repo] = location.pathname.split('/').slice(1, 3)
const targetUrl = `https://ossinsight.io/analyze/${owner}/${repo}`
const title = `${repo} 仓库对应的 ossinsight 分析页面`
if (!el) {
console.log('github-ossinsight: 没有找到pagehead-actions元素, 无法添加按钮')
return
}
el.insertAdjacentHTML(
'afterbegin',
`<li><a id="github-ossinsight" href="${targetUrl}" target="_blank" rel="noopener noreferrer" title="${title}" aria-label="${title}" class="btn btn-sm tooltipped tooltipped-s">${svgStr}</a></li>`
)
})();