awesome_bot 1.17.1 → 1.20.0
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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +38 -0
- data/.travis.yml +0 -2
- data/CHANGELOG.md +24 -3
- data/Dockerfile +10 -0
- data/Gemfile +2 -2
- data/README.md +73 -24
- data/awesome_bot.gemspec +1 -1
- data/bin/assets/test-errors +1 -3
- data/bin/assets/test-timeout +1 -1
- data/bin/assets/test-timeout-and-redirect +1 -1
- data/lib/awesome_bot/cli.rb +4 -3
- data/lib/awesome_bot/links.rb +14 -2
- data/lib/awesome_bot/version.rb +1 -1
- data/status/list-travis-ci +20 -10
- data/status/status.md +21 -11
- metadata +6 -7
- data/bin/assets/test-invalid.md +0 -844
- data/bin/assets/test-request-delay +0 -50
- data/circle.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3d4e16495337ecdb24033c9d20ebcf92d6079c6
|
4
|
+
data.tar.gz: dd8ccc69f014fc37dcffb1df137c218aa94f3698
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c2e95b89a2a3ab9df7dba8a8796e4f908ecbc308be6fceda5876cf10ca1d50e10c096b168f89d41cbbc2934c8c64a652bf1bf351b03307605e2351213bf436f
|
7
|
+
data.tar.gz: ae5d7bf39bb7967bbc759bd99a074f28e142bf09a18effd423540b125adca60f0fce64c6f3ac65375c7ab487a3e4cfdb088b0e30ceaa9929b01ccd324ace9985
|
@@ -0,0 +1,38 @@
|
|
1
|
+
version: 2
|
2
|
+
jobs:
|
3
|
+
build:
|
4
|
+
working_directory: ~/dkhamsing/awesome_bot
|
5
|
+
parallelism: 1
|
6
|
+
shell: /bin/bash --login
|
7
|
+
environment:
|
8
|
+
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
|
9
|
+
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
|
10
|
+
docker:
|
11
|
+
- image: circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37
|
12
|
+
steps:
|
13
|
+
- checkout
|
14
|
+
- run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
|
15
|
+
- run:
|
16
|
+
working_directory: ~/dkhamsing/awesome_bot
|
17
|
+
command: rm -f dkhamsing/awesome_bot/.rvmrc; echo 2.4.1 > dkhamsing/awesome_bot/.ruby-version; rvm use 2.4.1 --default
|
18
|
+
- restore_cache:
|
19
|
+
keys:
|
20
|
+
- v1-dep-{{ .Branch }}-
|
21
|
+
- v1-dep-master-
|
22
|
+
- v1-dep-
|
23
|
+
- run: echo -e "export RAILS_ENV=test\nexport RACK_ENV=test" >> $BASH_ENV
|
24
|
+
- run: 'bundle check --path=vendor/bundle || bundle install --path=vendor/bundle
|
25
|
+
--jobs=4 --retry=3 '
|
26
|
+
- save_cache:
|
27
|
+
key: v1-dep-{{ .Branch }}-{{ epoch }}
|
28
|
+
paths:
|
29
|
+
- vendor/bundle
|
30
|
+
- ~/virtualenvs
|
31
|
+
- ~/.bundle
|
32
|
+
- run: bundle exec rspec -fd --color -r rspec_junit_formatter --format RspecJunitFormatter -o $CIRCLE_TEST_REPORTS/rspec/junit.xml
|
33
|
+
- store_test_results:
|
34
|
+
path: /tmp/circleci-test-results
|
35
|
+
- store_artifacts:
|
36
|
+
path: /tmp/circleci-artifacts
|
37
|
+
- store_artifacts:
|
38
|
+
path: /tmp/circleci-test-results
|
data/.travis.yml
CHANGED
@@ -20,7 +20,5 @@ script:
|
|
20
20
|
- awesome_bot -f bin/assets/test-no-issues,bin/assets/test-redirect --allow-redirect
|
21
21
|
- awesome_bot bin/assets/test-no-* --allow-redirect
|
22
22
|
- awesome_bot bin/assets/test-ssl --allow-ssl
|
23
|
-
- awesome_bot bin/assets/test-invalid.md --allow-redirect --allow-dupe
|
24
|
-
- awesome_bot bin/assets/test-request-delay -d 1
|
25
23
|
- awesome_bot README.md --allow-dupe --white-list gph.is,giphy,travis-ci.org,codeload,badge,rubydoc,rubygems,circleci,codeship,blob/master
|
26
24
|
- gem install awesome_bot
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,27 @@
|
|
2
2
|
|
3
3
|
Changes by [Daniel Khamsing][] unless otherwise noted.
|
4
4
|
|
5
|
+
# 1.20.0
|
6
|
+
|
7
|
+
- [cli] delay: change to use float by [Jonathan Lai](https://github.com/agsdot)
|
8
|
+
- [gem] update `parallel`, `rspec` to latest
|
9
|
+
|
10
|
+
# 1.19.1
|
11
|
+
|
12
|
+
- [gem] update `parallel`, `rspec`, `rspec_junit_formatter` to latest
|
13
|
+
|
14
|
+
# 1.19.0
|
15
|
+
|
16
|
+
- [parse] handle javadoc links by [Davide Angelocola](https://github.com/dfa1)
|
17
|
+
|
18
|
+
# 1.18.0
|
19
|
+
|
20
|
+
- [parse] stricter parsing of relative urls by [Mat Moore](https://github.com/MatMoore)
|
21
|
+
|
22
|
+
# 1.17.2
|
23
|
+
|
24
|
+
- [cli] output version by [Budh Ram Gurung](https://github.com/budhrg)
|
25
|
+
- [gem] update `parallel` to version 1.12.0
|
5
26
|
|
6
27
|
# 1.17.1
|
7
28
|
|
@@ -196,14 +217,14 @@ Changes by [Daniel Khamsing][] unless otherwise noted.
|
|
196
217
|
- use `result`
|
197
218
|
- use `logger`
|
198
219
|
|
199
|
-
|
220
|
+
# 1.1.0
|
200
221
|
|
201
222
|
- handle bad links
|
202
223
|
- statuses yields `status`, `url`
|
203
224
|
- add head option when getting statuses
|
204
225
|
- [cli] improve output for `--allow-dupe`
|
205
226
|
|
206
|
-
|
227
|
+
# 1.0.0
|
207
228
|
|
208
229
|
- correct failure logic
|
209
230
|
- rename `run` to `check`
|
@@ -212,7 +233,7 @@ Changes by [Daniel Khamsing][] unless otherwise noted.
|
|
212
233
|
- [gemspec] update
|
213
234
|
- [travis] simplify
|
214
235
|
|
215
|
-
|
236
|
+
# 0.1.0
|
216
237
|
|
217
238
|
- initial version
|
218
239
|
|
data/Dockerfile
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -18,7 +18,7 @@ Verify links in [awesome](status/status.md) projects
|
|
18
18
|
|
19
19
|
### Command Line
|
20
20
|
|
21
|
-
```
|
21
|
+
``` shell
|
22
22
|
Usage: awesome_bot [file or files]
|
23
23
|
awesome_bot [options]
|
24
24
|
-f, --files [files] Comma separated files to check
|
@@ -29,7 +29,7 @@ Usage: awesome_bot [file or files]
|
|
29
29
|
--allow-timeout URLs that time out are allowed
|
30
30
|
--base-url [base url] Base URL to use for relative links
|
31
31
|
-d, --request-delay [seconds] Set request delay
|
32
|
-
-t, --set-timeout [seconds] Set connection timeout
|
32
|
+
-t, --set-timeout [seconds] Set connection timeout (default: 30)
|
33
33
|
--skip-save-results Skip saving results
|
34
34
|
-w, --white-list [urls] Comma separated URLs to white list
|
35
35
|
```
|
@@ -75,7 +75,7 @@ $ awesome_bot README.md,README-zh.md
|
|
75
75
|
# check links in 2 files
|
76
76
|
|
77
77
|
$ awesome_bot docs/*.md
|
78
|
-
# check all
|
78
|
+
# check all Markdown files in the docs/ directory
|
79
79
|
|
80
80
|
$ awesome_bot README.md --allow-timeout -t 5
|
81
81
|
# speed up validation by setting a timeout of 5 seconds per link request and allowing timeouts
|
@@ -85,7 +85,7 @@ $ awesome_bot README.md --allow 403,429
|
|
85
85
|
# --allow 301 would be similar to --allow-redirect
|
86
86
|
|
87
87
|
$ awesome_bot README.md --base-url https://github.com/IDR/idr-notebooks/blob/master/
|
88
|
-
#
|
88
|
+
# check relative links using the base URL provided
|
89
89
|
```
|
90
90
|
|
91
91
|
```shell
|
@@ -109,6 +109,25 @@ No issues :-)
|
|
109
109
|
Wrote results to ab-results-new-readme.md.json
|
110
110
|
```
|
111
111
|
|
112
|
+
### Docker Examples
|
113
|
+
If you do not want to install Ruby or its dependencies you can simply use Docker and Docker image.
|
114
|
+
|
115
|
+
Here is an example for checking the links in the Markdown files in your current directory/subdirectories:
|
116
|
+
```shell
|
117
|
+
docker run -ti --rm -v $PWD:/mnt:ro dkhamsing/awesome_bot --white-list "test.com" --allow-dupe --allow-redirect --skip-save-results `find . -name "*.md"`
|
118
|
+
```
|
119
|
+
|
120
|
+
or just check the links in a single file located at `./templates/ubuntu.md`:
|
121
|
+
|
122
|
+
```shell
|
123
|
+
docker run -ti --rm -v $PWD:/mnt:ro dkhamsing/awesome_bot --allow-dupe --allow-redirect --skip-save-results ./templates/ubuntu.md
|
124
|
+
```
|
125
|
+
|
126
|
+
You always need to specify the path to the file so you cannot simply use `*.md`; instead use `ls *.md"`:
|
127
|
+
```shell
|
128
|
+
docker run -ti --rm -v $PWD:/mnt:ro dkhamsing/awesome_bot --white-list "test.com" --allow-dupe --allow-redirect --skip-save-results `ls *.md`
|
129
|
+
```
|
130
|
+
|
112
131
|
### Library
|
113
132
|
|
114
133
|
```ruby
|
@@ -140,16 +159,48 @@ and [more](status/status.md).
|
|
140
159
|
|
141
160
|
Tips
|
142
161
|
|
143
|
-
- Use the keyword `[ci skip]` in your commit title/message to skip verification.
|
162
|
+
- Use the keyword [`[ci skip]`](https://docs.travis-ci.com/user/customizing-the-build/) in your commit title/message to skip verification.
|
144
163
|
- Use [Danger](#danger).
|
145
164
|
|
165
|
+
### GitHub Actions
|
166
|
+
|
167
|
+
To use `awesome_bot` with GitHub Actions (workflows), here is an [example](https://github.com/dkhamsing/open-source-ios-apps/blob/master/.github/workflows/ruby.yml):
|
168
|
+
|
169
|
+
```yml
|
170
|
+
name: Ruby
|
171
|
+
|
172
|
+
on:
|
173
|
+
push:
|
174
|
+
branches: [ '*' ]
|
175
|
+
pull_request:
|
176
|
+
branches: [ '*' ]
|
177
|
+
|
178
|
+
jobs:
|
179
|
+
build:
|
180
|
+
|
181
|
+
runs-on: ubuntu-latest
|
182
|
+
|
183
|
+
steps:
|
184
|
+
- uses: actions/checkout@v2
|
185
|
+
- name: Set up Ruby 2.6
|
186
|
+
uses: actions/setup-ruby@v1
|
187
|
+
with:
|
188
|
+
ruby-version: 2.6.x
|
189
|
+
- name: Checks
|
190
|
+
run: |
|
191
|
+
ruby .github/osia_convert.rb
|
192
|
+
gem install awesome_bot
|
193
|
+
ruby .github/osia_get_links.rb
|
194
|
+
awesome_bot check-unique.txt --allow-ssl -a 302,429 -w xbmc/xbmc
|
195
|
+
```
|
196
|
+
|
146
197
|
### Travis CI
|
147
198
|
|
148
199
|
To use `awesome_bot` with Travis CI, [connect your repo](https://travis-ci.org/) and create a [`.travis.yml` file](https://github.com/ziadoz/awesome-php/blob/master/.travis.yml).
|
149
200
|
|
150
201
|
```yml
|
151
202
|
language: ruby
|
152
|
-
rvm: 2.
|
203
|
+
rvm: 2.4.1
|
153
204
|
before_script: gem install awesome_bot
|
154
205
|
script: awesome_bot README.md
|
155
206
|
```
|
@@ -161,29 +212,27 @@ notifications:
|
|
161
212
|
email: false
|
162
213
|
```
|
163
214
|
|
164
|
-
|
165
|
-
|
166
|
-
If you prefer Circle CI, it'll work too. [Connect your repo](https://circleci.com/) and create a [`circle.yml` file](https://github.com/tmcw/awesome-geojson).
|
215
|
+
In case you want to use the docker image inside Travis CI follow this example which will check broken links in all `*.md` files in your repository:
|
167
216
|
|
168
217
|
```yml
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
218
|
+
sudo: required
|
219
|
+
|
220
|
+
services:
|
221
|
+
- docker
|
222
|
+
|
223
|
+
script:
|
224
|
+
# Link Checks
|
225
|
+
- docker run -ti --rm -v $PWD:/mnt:ro dkhamsing/awesome_bot --allow-dupe --allow-redirect --skip-save-results `find . -name "*.md"`
|
177
226
|
```
|
178
227
|
|
179
228
|
### More
|
180
229
|
|
181
|
-
|
230
|
+
[CircleCI](https://circleci.com), [Codeship](https://codeship.com/), and [Semaphore CI](https://semaphoreci.com/) support running tests without adding a file to the repo (a public configuration file can however help others contribute).
|
182
231
|
|
183
232
|
```
|
184
233
|
# Codeship
|
185
234
|
Setup
|
186
|
-
rvm use 2.
|
235
|
+
rvm use 2.4.1 --install
|
187
236
|
gem install awesome_bot
|
188
237
|
|
189
238
|
Test
|
@@ -193,7 +242,7 @@ awesome_bot README.md
|
|
193
242
|
```
|
194
243
|
# Semaphore CI
|
195
244
|
Language: Ruby
|
196
|
-
Ruby version: 2.
|
245
|
+
Ruby version: 2.4.1
|
197
246
|
Databases for: don't generate
|
198
247
|
Setup:
|
199
248
|
gem install awesome_bot
|
@@ -202,7 +251,7 @@ awesome_bot README.md
|
|
202
251
|
|
203
252
|
### Status Badge
|
204
253
|
|
205
|
-
[](https://travis-ci.org/unixorn/awesome-zsh-plugins)
|
206
255
|
|
207
256
|
To add the Travis CI build status badge above to your project, use the following code
|
208
257
|
|
@@ -213,17 +262,17 @@ i.e.
|
|
213
262
|
[](https://travis-ci.org/dkhamsing/awesome_bot)
|
214
263
|
```
|
215
264
|
|
216
|
-
As it happens, the default code snippet provided
|
265
|
+
As it happens, the default code snippet provided contains a redirect so adding a badge could fail your status :sob:.. one way to fix this is to white list `travis-ci`, i.e.
|
217
266
|
|
218
267
|
```
|
219
268
|
- awesome_bot README.md --white-list travis-ci
|
220
269
|
```
|
221
270
|
|
222
|
-
You can also add a badge for other CI tools, check out [shields.io](
|
271
|
+
You can also add a badge for other CI tools, check out [shields.io](https://shields.io/).
|
223
272
|
|
224
273
|
### Danger
|
225
274
|
|
226
|
-
Integrate `awesome_bot` with [Danger](https://github.com/danger/danger) and have results reported back to the [pull request](https://github.com/vsouza/awesome-ios/pull/1001)
|
275
|
+
Integrate `awesome_bot` with [Danger](https://github.com/danger/danger) and have results reported back to the [pull request](https://github.com/vsouza/awesome-ios/pull/1001).
|
227
276
|
|
228
277
|

|
229
278
|
|
data/awesome_bot.gemspec
CHANGED
data/bin/assets/test-errors
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
3. [L056] 405 https://www.google.com/events/io
|
3
|
-
5. [L130] 500 http://decentralizecamp.com/
|
1
|
+
500 http://decentralizecamp.com/
|
4
2
|
02. [L0138] 401 https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/
|
5
3
|
03. [L0145] 401 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html
|
6
4
|
04. [L0146] 401 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/OOP_ObjC/Introduction/Introduction.html
|
data/bin/assets/test-timeout
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
https://httpbin.org/delay/10
|
2
2
|
https://github.com
|
data/lib/awesome_bot/cli.rb
CHANGED
@@ -24,10 +24,11 @@ module AwesomeBot
|
|
24
24
|
opts.on('--allow-redirect', TrueClass, 'Redirected URLs are allowed') { |val| options['allow_redirect'] = val }
|
25
25
|
opts.on('--allow-timeout', TrueClass, 'URLs that time out are allowed') { |val| options['allow_timeout'] = val }
|
26
26
|
opts.on('--base-url [base url]', String, 'Base URL to use for relative links') { |val| options['base_url'] = val }
|
27
|
-
opts.on('-d', '--request-delay [seconds]',
|
28
|
-
opts.on('-t', '--set-timeout [seconds]', Integer, 'Set connection timeout') { |val| options['timeout'] = val }
|
29
|
-
opts.on('--skip-save-results', TrueClass, 'Skip saving results') { |val| options['no_results'] = val }
|
27
|
+
opts.on('-d', '--request-delay [seconds]', Float, 'Set request delay') { |val| options['delay'] = val }
|
28
|
+
opts.on('-t', '--set-timeout [seconds]', Integer, 'Set connection timeout (default: 30)') { |val| options['timeout'] = val }
|
29
|
+
opts.on('--skip-save-results', TrueClass, 'Skip saving results') { |val| options['no_results'] = val }
|
30
30
|
opts.on('-w', '--white-list [urls]', Array, 'Comma separated URLs to white list') { |val| options['white_list'] = val }
|
31
|
+
opts.on('-v', '--version', String, 'Display version') { |val| puts "#{PROJECT} version #{VERSION}" }
|
31
32
|
|
32
33
|
opts.on_tail("--help") do
|
33
34
|
puts opts
|
data/lib/awesome_bot/links.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Get and filter links
|
2
2
|
module AwesomeBot
|
3
|
+
# This matches, from left to right:
|
4
|
+
# a literal [
|
5
|
+
# the link title - i.e. anything up to the next closing bracket
|
6
|
+
# a literal ]
|
7
|
+
# a literal (
|
8
|
+
# the link destination (optionally enclosed in a single pair of angle brackets)
|
9
|
+
# a literal )
|
10
|
+
MARKDOWN_LINK_REGEX = /\[ [^\]]+ \] \( <? ([^)<>]+) >? \)/x
|
11
|
+
|
3
12
|
class << self
|
4
13
|
def links_filter(list)
|
5
14
|
list.reject { |x| x.length < 9 }
|
@@ -9,6 +18,8 @@ module AwesomeBot
|
|
9
18
|
.map do |x|
|
10
19
|
if x.include? ')]'
|
11
20
|
x.gsub /\)\].*/, ''
|
21
|
+
elsif (x.scan(')').count == 1) && (x.scan('(').count == 1)
|
22
|
+
x
|
12
23
|
elsif (x.scan(')').count == 2) && (x.scan('(').count == 1)
|
13
24
|
x.gsub(/\)\).*/, ')')
|
14
25
|
elsif (x.scan(')').count > 0)
|
@@ -45,9 +56,10 @@ module AwesomeBot
|
|
45
56
|
end
|
46
57
|
|
47
58
|
def get_relative_links(content, base)
|
48
|
-
links =
|
59
|
+
links = []
|
60
|
+
content.scan(MARKDOWN_LINK_REGEX) { |groups| links << groups.first }
|
61
|
+
|
49
62
|
links.reject { |x| x.include?('http') || x.include?('#') }
|
50
|
-
.map { |x| x.sub '](', ''}
|
51
63
|
.map { |x| x =~ /\S/ ? x.match(/^\S*/) : x }
|
52
64
|
.map { |x| "#{base}#{x}"}
|
53
65
|
end
|
data/lib/awesome_bot/version.rb
CHANGED
data/status/list-travis-ci
CHANGED
@@ -3,13 +3,15 @@ vsouza/awesome-ios
|
|
3
3
|
enaqx/awesome-react
|
4
4
|
bayandin/awesome-awesomeness
|
5
5
|
toddmotto/public-apis
|
6
|
-
herrbischoff/awesome-
|
6
|
+
herrbischoff/awesome-macos-command-line
|
7
7
|
ziadoz/awesome-php
|
8
8
|
matteocrippa/awesome-swift
|
9
9
|
wsargent/docker-cheat-sheet
|
10
|
+
jaywcjlove/awesome-mac
|
11
|
+
Kickball/awesome-selfhosted
|
10
12
|
alebcay/awesome-shell
|
11
13
|
cjwirth/awesome-ios-ui
|
12
|
-
|
14
|
+
n0shake/Public-APIs
|
13
15
|
gztchan/awesome-design
|
14
16
|
veggiemonk/awesome-docker
|
15
17
|
hangtwenty/dive-into-machine-learning
|
@@ -22,7 +24,7 @@ n1trux/awesome-sysadmin
|
|
22
24
|
hsavit1/Awesome-Swift-Education
|
23
25
|
k4m4/terminals-are-sexy
|
24
26
|
chiraggude/awesome-laravel
|
25
|
-
|
27
|
+
gdi2290/awesome-angular
|
26
28
|
JStumpp/awesome-android
|
27
29
|
ellisonleao/magictools
|
28
30
|
j-delaney/easy-application
|
@@ -53,7 +55,7 @@ willianjusten/awesome-audio-visualization
|
|
53
55
|
sitepoint-editors/awesome-symfony
|
54
56
|
fasouto/awesome-dataviz
|
55
57
|
matiassingers/awesome-readme
|
56
|
-
|
58
|
+
awesome-css-group/awesome-css
|
57
59
|
ramitsurana/awesome-kubernetes
|
58
60
|
wbinnssmith/awesome-promises
|
59
61
|
nikgraf/awesome-draft-js
|
@@ -76,7 +78,7 @@ benoitjadinon/awesome-xamarin
|
|
76
78
|
matteofigus/awesome-speaking
|
77
79
|
burningtree/awesome-json
|
78
80
|
ahkscript/awesome-AutoHotkey
|
79
|
-
|
81
|
+
zudochkin/awesome-newsletters
|
80
82
|
brunopulis/awesome-a11y
|
81
83
|
jbucaran/awesome-fish
|
82
84
|
hackerkid/bots
|
@@ -91,14 +93,14 @@ aviaryan/awesome-no-login-web-apps
|
|
91
93
|
arbox/ruby-style-guide
|
92
94
|
iJackUA/awesome-vagrant
|
93
95
|
deanhume/typography
|
94
|
-
|
96
|
+
fuse-compound/awesome-fuse
|
95
97
|
notthetup/awesome-webaudio
|
96
98
|
brabadu/awesome-fonts
|
97
99
|
tedyoung/awesome-java8
|
98
100
|
MakinGiants/awesome-android-learner
|
99
101
|
christian-bromann/awesome-selenium
|
100
102
|
busterc/awesome-cordova
|
101
|
-
|
103
|
+
jdrgomes/awesome-postcss
|
102
104
|
jakoch/awesome-composer
|
103
105
|
filipelinhares/awesome-slack
|
104
106
|
shime/creative-commons-media
|
@@ -107,11 +109,11 @@ joubertredrat/awesome-devops
|
|
107
109
|
J2TeaM/awesome-AutoIt
|
108
110
|
arbox/rails-style-guide
|
109
111
|
neueda/awesome-neo4j
|
110
|
-
RichardLitt/
|
112
|
+
RichardLitt/low-resource-languages
|
111
113
|
cugu/awesome-forensics
|
112
114
|
rabbiabram/awesome-fortran
|
113
115
|
vkarampinis/awesome-icons
|
114
|
-
|
116
|
+
tramcar/awesome-job-boards
|
115
117
|
yangshun/awesome-spinners
|
116
118
|
sjfricke/awesome-webgl
|
117
119
|
Jolg42/awesome-typography
|
@@ -122,6 +124,14 @@ ramitsurana/awesome-openstack
|
|
122
124
|
Nipher/awesome-hacktivism
|
123
125
|
ipfs/newsletter
|
124
126
|
ellerbrock/awesome-typescript
|
125
|
-
cdleon/awesome-
|
127
|
+
cdleon/awesome-browser-dev
|
126
128
|
adriagalin/tools
|
127
129
|
arthurwayne/awesome-pentester
|
130
|
+
alister/php-in-london
|
131
|
+
IQDevs/Awesome-IQDevs
|
132
|
+
BubuAnabelas/awesome-markdown
|
133
|
+
serhii-londar/open-source-mac-os-apps
|
134
|
+
frenck/awesome-home-assistant
|
135
|
+
duyetdev/awesome-web-scraper
|
136
|
+
tapaswenipathak/Women-GitHubers
|
137
|
+
emacs-tw/awesome-emacs
|