@manyos/smileconnect-api 1.39.0 → 1.40.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.
Files changed (101) hide show
  1. package/app.js +14 -2
  2. package/conf/clients.json +1 -0
  3. package/docs/.nojekyll +0 -0
  4. package/docs/README.md +1 -0
  5. package/docs/_coverpage.md +12 -0
  6. package/docs/_media/dataflow.png +0 -0
  7. package/docs/_media/logo.png +0 -0
  8. package/docs/_sidebar.md +25 -0
  9. package/docs/adapter.md +309 -0
  10. package/docs/architecture.md +8 -0
  11. package/docs/configuration/clients.md +69 -0
  12. package/docs/configuration/config.md +323 -0
  13. package/docs/{eventlog → configuration}/events.md +11 -8
  14. package/docs/{general/field-management.md → configuration/mapping.md} +2 -72
  15. package/docs/howto/{worklog-attachment.md → attachments.md} +8 -15
  16. package/docs/howto/cmdbobjects.md +11 -17
  17. package/docs/howto/incidents.md +16 -23
  18. package/docs/howto/token.md +14 -18
  19. package/docs/howto/{incident-worklogs.md → worklogs.md} +14 -21
  20. package/docs/index.html +26 -0
  21. package/docs/openapi.json +2054 -1354
  22. package/docs/quickstart.md +9 -0
  23. package/docs/releases.md +11 -0
  24. package/docs/scripts.md +204 -0
  25. package/package.json +1 -1
  26. package/routes/cmdbObjectRoutes.js +5 -0
  27. package/routes/customFormRoutes.js +2 -0
  28. package/routes/taskRoutes.js +11 -0
  29. package/routes/ticketRoutes.js +2 -0
  30. package/routes/ticketWorkLogRoutes.js +4 -0
  31. package/docs/.gitattributes +0 -48
  32. package/docs/404.html +0 -13
  33. package/docs/Gemfile +0 -7
  34. package/docs/Gemfile.lock +0 -249
  35. package/docs/_config.yml +0 -257
  36. package/docs/_data/SocialNetworks.yml +0 -92
  37. package/docs/_data/ui-text.yml +0 -494
  38. package/docs/_includes/disqus.html +0 -17
  39. package/docs/_includes/ext-css.html +0 -7
  40. package/docs/_includes/ext-js.html +0 -7
  41. package/docs/_includes/fb-comment.html +0 -14
  42. package/docs/_includes/footer-minimal.html +0 -16
  43. package/docs/_includes/footer-scripts.html +0 -32
  44. package/docs/_includes/footer.html +0 -51
  45. package/docs/_includes/google_analytics.html +0 -14
  46. package/docs/_includes/gtag.html +0 -11
  47. package/docs/_includes/gtm_body.html +0 -6
  48. package/docs/_includes/gtm_head.html +0 -9
  49. package/docs/_includes/head.html +0 -131
  50. package/docs/_includes/header.html +0 -76
  51. package/docs/_includes/just_comments.html +0 -4
  52. package/docs/_includes/matomo.html +0 -17
  53. package/docs/_includes/nav.html +0 -57
  54. package/docs/_includes/social-share.html +0 -42
  55. package/docs/_includes/staticman-comment.html +0 -22
  56. package/docs/_includes/staticman-comments.html +0 -81
  57. package/docs/_layouts/base.html +0 -35
  58. package/docs/_layouts/default.html +0 -9
  59. package/docs/_layouts/minimal.html +0 -26
  60. package/docs/_layouts/page.html +0 -26
  61. package/docs/_layouts/post.html +0 -82
  62. package/docs/_posts/2015-02-28-test-markdown.md +0 -77
  63. package/docs/aboutme.md +0 -18
  64. package/docs/css/bootstrap-social.css +0 -147
  65. package/docs/css/bootstrap-theme.css +0 -476
  66. package/docs/css/bootstrap-theme.css.map +0 -1
  67. package/docs/css/bootstrap-theme.min.css +0 -5
  68. package/docs/css/bootstrap.css +0 -6566
  69. package/docs/css/bootstrap.css.map +0 -1
  70. package/docs/css/bootstrap.min.css +0 -5
  71. package/docs/css/main-minimal.css +0 -13
  72. package/docs/css/main.css +0 -788
  73. package/docs/css/normalize.css +0 -427
  74. package/docs/css/pygment_highlights.css +0 -61
  75. package/docs/css/staticman.css +0 -180
  76. package/docs/feed.xml +0 -24
  77. package/docs/general/architecture.md +0 -10
  78. package/docs/general/config.md +0 -201
  79. package/docs/general/release-notes.md +0 -9
  80. package/docs/howto/sample-config.md +0 -518
  81. package/docs/img/404-southpark.jpg +0 -0
  82. package/docs/img/avatar-icon.png +0 -0
  83. package/docs/img/bgimage.png +0 -0
  84. package/docs/img/gb-isapi.jpg +0 -0
  85. package/docs/img/install-steps.gif +0 -0
  86. package/docs/img/workflow.png +0 -0
  87. package/docs/js/bootstrap.js +0 -2306
  88. package/docs/js/bootstrap.min.js +0 -7
  89. package/docs/js/jquery-1.11.2.min.js +0 -4
  90. package/docs/js/main.js +0 -140
  91. package/docs/js/staticman.js +0 -54
  92. package/docs/staticman.yml +0 -110
  93. /package/docs/{img → _media}/architecture.jpeg +0 -0
  94. /package/docs/{img → _media}/attachment-upload.png +0 -0
  95. /package/docs/{getting-started.md → old/getting-started.md} +0 -0
  96. /package/docs/{index.md → old/index.md} +0 -0
  97. /package/docs/{installation.md → old/installation.md} +0 -0
  98. /package/docs/{postinstall.md → old/postinstall.md} +0 -0
  99. /package/docs/{preinstall.md → old/preinstall.md} +0 -0
  100. /package/docs/{tags.html → old/tags.html} +0 -0
  101. /package/docs/{workflow.md → old/workflow.md} +0 -0
@@ -0,0 +1,9 @@
1
+ # Introduction
2
+
3
+ The easiest way to deploy our API is via Docker. [Contact Us](https://manyos.it) to get access to the containers.
4
+
5
+ Set the container environment variables as described [here](configuration/config)
6
+
7
+ Create a client within your OIDC Provider and start with the configuration in the GUI.
8
+
9
+ See our How-Tos to get an [Access Token](howto/token) and how to create your first [Incidents](howto/incidents)
@@ -0,0 +1,11 @@
1
+ # Release Notes
2
+
3
+ ## 1.40.0 - 30.07.21
4
+
5
+ Dynamic Impersonate Users added.
6
+
7
+ If the clientConfig has the option allowDynamicImpersonate set to *true* then the URL Parameter *impersonateUser* can be used to determine the used Remedy User.
8
+
9
+ e.g.
10
+
11
+ */v1/incidents?impersonateUser=abc123
@@ -0,0 +1,204 @@
1
+ # Scripts
2
+
3
+ Scripts are used to modify requests, gather data or to drive external actions.
4
+
5
+ Scripts can call adapter to interact with other systems and they can be reused.
6
+
7
+ #### **`workOrder_lookupSericeNameByReconId.js`**
8
+ ```javascript
9
+ //lookup service ci name if reconId is given
10
+
11
+ if (requestData['ReconciliationIdentity']) {
12
+ const remedyResult = await adapter.remedy.search("BMC.CORE:BMC_BusinessService", `'ReconciliationIdentity' = "${requestData['ReconciliationIdentity']}" AND 'DatasetId' = "BMC.ASSET"`, "Name")
13
+
14
+ if (remedyResult && remedyResult.data && remedyResult.data[0]) {
15
+ const data = remedyResult.data[0];
16
+ requestData['CI Name'] = data['Name'];
17
+ }
18
+
19
+ }
20
+ resolve()
21
+ ```
22
+
23
+ The above script will lookup the service name for a given reconciliation id.
24
+
25
+ # Accessible Variables
26
+
27
+ Within scripts the following variables are available.
28
+
29
+ ## params
30
+
31
+ The parameter params can be defined in a script and used when another script is called. This is useful to reuse scripts.
32
+
33
+ e.g.
34
+ ```javascript
35
+ const subScriptParams = {
36
+ myAttribute1: "myValue1",
37
+ myAttribute2: [
38
+ "val1",
39
+ "val2"
40
+ ]
41
+ }
42
+ const returnValue = await script('ars101', {}, subScriptParams);
43
+ ```
44
+
45
+ Within the called script params can be accessed:
46
+
47
+ ```javascript
48
+ if (params && params.myAttribute1 === "myValue1") {
49
+ requestData.message = "Value was set"
50
+ }
51
+ ```
52
+
53
+
54
+ ## globalScriptParams
55
+
56
+ Global script params are set by the application and handed over to the script. They include the following parameter:
57
+
58
+ **query**: This property is an object containing a property for each query string parameter in the route.
59
+
60
+ **id**: the id of the ticket. Only set in GET & PUT actions
61
+
62
+ **id2**: the id of child ticket. e.g. Tasks or Worklogs. Only set in GET & PUT actions
63
+
64
+ **id2**: the id of child worklogs. e.g. Tasksworklog. Only set in GET & PUT actions
65
+
66
+ **classId**: the classId of cmdbobjects. Only set in POST & PUT actions
67
+
68
+ ```json
69
+ {
70
+ "query": {
71
+ "includeObjects": "true",
72
+ "limit": "3",
73
+ "include": "supportGroupRelations,persons"
74
+ },
75
+ "id": "INC000000001507"
76
+ }
77
+ ```
78
+
79
+ ## requestData
80
+
81
+ This parameter holds the complete request data.
82
+
83
+ ## clientId
84
+
85
+ This id of the client who executes the script.
86
+
87
+ ## executedByScript
88
+
89
+ This parameter will be set to *true* if the script is executed by another script.
90
+
91
+ ## env
92
+
93
+ This parameter allows access to the environment variables.
94
+
95
+ ## log
96
+
97
+ Can be used to write data to the applications log stream.
98
+
99
+ The following log level can be used:
100
+
101
+ * trace
102
+ * debug
103
+ * info
104
+ * warn
105
+ * error
106
+ * fatal
107
+
108
+ e.g.
109
+
110
+ ```javascript
111
+ log.debug('log text', variable);
112
+ log.info('log text', variable);
113
+ log.error('error text', variable);
114
+ ```
115
+
116
+ ## script
117
+
118
+ Can be used to execute a script within a script.
119
+
120
+ script(scriptId, requestData, params)
121
+
122
+ e.g.
123
+ ```javascript
124
+ const returnValue = await script('ars101', {}, params);
125
+ ```
126
+
127
+ ## fetch
128
+
129
+ Allows access to external webservices via the package *node-fetch*
130
+
131
+ See https://www.npmjs.com/package/node-fetch for details.
132
+
133
+ ## adapter
134
+
135
+ Allows to make adapter calls. [See details](../configuration/adapter.md)
136
+
137
+ # Returning values
138
+
139
+ Values can be returned with the function *resolve()*
140
+
141
+ e.g.
142
+
143
+ ```javascript
144
+ const values = [
145
+ "value1",
146
+ "value2",
147
+ "value3"
148
+ ]
149
+ resolve (values)
150
+ ```
151
+
152
+ # Error handling
153
+
154
+ Values can be returned with the fuction *reject()*
155
+
156
+ e.g.
157
+
158
+ ```javascript
159
+ if (!params.form) {
160
+ reject("The parameter form is required")
161
+ }
162
+ ```
163
+
164
+ # Async calls
165
+
166
+ Within scripts *await* can be used to make async calls.
167
+
168
+ ```javascript
169
+ const returnValue = await script('ars101', {}, params);
170
+ ```
171
+
172
+ # Samples
173
+
174
+ ## Simple Assign Back Script
175
+
176
+ This script looks up the previous assignment group if an incident is set to "assigned"
177
+
178
+ ```javascript
179
+ //lookup Previous Assigned Support Group for Incident
180
+ // and assign this group if status is changed to "assigned", and assignedGroup is not set.
181
+
182
+
183
+ if ( requestData['id'] && requestData['status']=="Assigned" && !requestData.hasOwnProperty("assignedGroup") ) {
184
+ const remedyResult = await adapter.remedy.search("HPD:Help Desk Assignment Log", `'Incident Number' = "${requestData.id}"`, "Submit Date,Assigned Support Company,Assigned Support Organization,Assigned Group,Assigned Group ID")
185
+
186
+ if (remedyResult && remedyResult.data && Array.isArray(remedyResult.data)) {
187
+ const data = remedyResult.data;
188
+ let entry = 0;
189
+ if (data.length > 1) {
190
+ entry = data.length - 2;
191
+ }
192
+
193
+ if (data[entry] && data[entry].hasOwnProperty("Assigned Group ID")) {
194
+ requestData['assignedGroup'] = data[entry]['Assigned Group ID'];
195
+ } else {
196
+ reject("could not find previous group. automatic re-ssignement failed. set assigendGroup manually")
197
+ }
198
+
199
+ }
200
+ }
201
+
202
+ resolve()
203
+
204
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manyos/smileconnect-api",
3
- "version": "1.39.0",
3
+ "version": "1.40.0",
4
4
  "description": "A proxy and abstraction layer for BMCs IT Service Management Suite",
5
5
  "main": "app.js",
6
6
  "scripts": {
@@ -107,6 +107,7 @@ module.exports = (function () {
107
107
  cmdbObjectRoutes.get('/:id', passport.authenticate('jwt', {session: false}),
108
108
  function (req, res, next) {
109
109
  const id = req.params.id;
110
+ req.globalScriptParams.id = id
110
111
  const includeString = req.query.include;
111
112
  eventLog.setEventData(
112
113
  req,
@@ -165,6 +166,8 @@ module.exports = (function () {
165
166
  const id = req.params.id;
166
167
  const classId = req.body.classId;
167
168
  const includeString = req.query.include;
169
+ req.globalScriptParams.id = id
170
+ req.globalScriptParams.classId = classId
168
171
  eventLog.setEventData(
169
172
  req,
170
173
  CONSTANTS.EVENT_BASE_AST,
@@ -200,6 +203,7 @@ module.exports = (function () {
200
203
  cmdbObjectRoutes.post('/', checkSchema(fieldMappingSchemas.CMDBCreateDataSchema), async function (req, res, next) {
201
204
  const classId = req.body.classId;
202
205
  const includeString = req.query.include;
206
+ req.globalScriptParams.classId = classId
203
207
  eventLog.setEventData(
204
208
  req,
205
209
  CONSTANTS.EVENT_BASE_AST,
@@ -215,6 +219,7 @@ module.exports = (function () {
215
219
  const result = [];
216
220
  try {
217
221
  const ciInstanceId = await cmdbobjects.createCmdbObject(req.ticketConfig, req.user.config, classId, req.body.data, req.globalScriptParams);
222
+ req.globalScriptParams.id = ciInstanceId
218
223
  const ci = await cmdbobjects.getCmdbObject(req.user.config, ciInstanceId, includeString, undefined, req.globalScriptParams);
219
224
  req.result = ci;
220
225
  next();
@@ -130,6 +130,7 @@ module.exports = (function() {
130
130
  });
131
131
 
132
132
  function getRecord(req, res, next, clientConfig, id, mapping, includeString) {
133
+ req.globalScriptParams.id = id
133
134
  customFormController.getRecord(req.formConfig, clientConfig, id, mapping, includeString, globalScriptParams).then(function (result) {
134
135
  log.debug('result', result);
135
136
  req.includeObjectsList = result.included;
@@ -145,6 +146,7 @@ module.exports = (function() {
145
146
 
146
147
  routes.put('/:id', function (req, res, next) {
147
148
  const id = req.params.id;
149
+ req.globalScriptParams.id = id
148
150
  const origData = JSON.parse(JSON.stringify(req.body));
149
151
  const includeString = req.query.include;
150
152
  eventLog.setEventData(
@@ -85,6 +85,8 @@ module.exports = (function () {
85
85
  taskRoutes.get('/:taskId', async function (req, res, next) {
86
86
  const parentId = req.parentId;
87
87
  const taskId = req.params.taskId;
88
+ req.globalScriptParams.id = parentId
89
+ req.globalScriptParams.id2 = taskId
88
90
  eventLog.setEventData(
89
91
  req,
90
92
  req.parentEventBase + '_' + CONSTANTS.EVENT_BASE_TAS,
@@ -103,6 +105,8 @@ module.exports = (function () {
103
105
 
104
106
  taskRoutes.put('/:taskId', function (req, res, next) {
105
107
  const taskId = req.params.taskId;
108
+ req.globalScriptParams.id = req.parentId;
109
+ req.globalScriptParams.id2 = taskId
106
110
  const origData = JSON.parse(JSON.stringify(req.body));
107
111
  eventLog.setEventData(
108
112
  req,
@@ -134,6 +138,8 @@ module.exports = (function () {
134
138
 
135
139
  taskRoutes.get('/:taskId/worklogs', async function (req, res, next) {
136
140
  const taskId = req.params.taskId;
141
+ req.globalScriptParams.id = req.parentId;
142
+ req.globalScriptParams.id2 = taskId
137
143
  eventLog.setEventData(
138
144
  req,
139
145
  req.parentEventBase + '_' + CONSTANTS.EVENT_BASE_TAS,
@@ -158,6 +164,8 @@ module.exports = (function () {
158
164
 
159
165
  const origData = JSON.parse(JSON.stringify(req.body));
160
166
  const taskId = req.params.taskId;
167
+ req.globalScriptParams.id = req.parentId;
168
+ req.globalScriptParams.id2 = taskId
161
169
  eventLog.setEventData(
162
170
  req,
163
171
  req.parentEventBase + '_' + CONSTANTS.EVENT_BASE_TAS,
@@ -199,6 +207,9 @@ module.exports = (function () {
199
207
  taskRoutes.get('/:taskId/worklogs/:worklogId', async function (req, res, next) {
200
208
  const taskId = req.params.taskId;
201
209
  const worklogId = req.params.worklogId;
210
+ req.globalScriptParams.id = req.parentId;
211
+ req.globalScriptParams.id2 = taskId
212
+ req.globalScriptParams.id3 = worklogId
202
213
  eventLog.setEventData(
203
214
  req,
204
215
  req.parentEventBase + '_' + CONSTANTS.EVENT_BASE_TAS,
@@ -136,6 +136,7 @@ module.exports = (function() {
136
136
  });
137
137
 
138
138
  function getTicket(req, res, next, clientConfig, id, mapping, includeString) {
139
+ req.globalScriptParams.id = id
139
140
  ticketController.getTicket(req.ticketConfig, clientConfig, id, mapping, includeString, req.globalScriptParams).then(function (result) {
140
141
  log.debug('result', result);
141
142
  req.includeObjectsList = result.included;
@@ -151,6 +152,7 @@ module.exports = (function() {
151
152
 
152
153
  ticketRoutes.put('/:id', function (req, res, next) {
153
154
  const id = req.params.id;
155
+ req.globalScriptParams.id = id
154
156
  const origData = JSON.parse(JSON.stringify(req.body));
155
157
  const includeString = req.query.include;
156
158
  eventLog.setEventData(
@@ -36,6 +36,8 @@ module.exports = (function() {
36
36
  ticketWorkLogRoutes.get('/:worklogId', function (req, res, next) {
37
37
  const ticketId = req.parentId;
38
38
  const worklogId = req.params.worklogId;
39
+ req.globalScriptParams.id = ticketId
40
+ req.globalScriptParams.id2 = worklogId
39
41
  eventLog.setEventData(
40
42
  req,
41
43
  req.parentEventBase,
@@ -167,6 +169,8 @@ module.exports = (function() {
167
169
  .then(result => {
168
170
  const worklogId = result['0'];
169
171
  req.eventData.ticketNumber2 = worklogId;
172
+ req.globalScriptParams.id = ticketId
173
+ req.globalScriptParams.id2 = worklogId
170
174
  log.debug('WorkLog created', worklogId);
171
175
  ticketWorkLogController.getWorklog(req.ticketConfig, req.user.config, ticketId, worklogId, undefined, req.globalScriptParams).then(worklogResult => {
172
176
  req.result = worklogResult;
@@ -1,48 +0,0 @@
1
- # Define standard eol format
2
-
3
- # Web Files
4
- *.html text eol=lf
5
- *.md text eol=lf
6
- *.css text eol=lf
7
- *.js text eol=lf
8
-
9
- # Jekyll related files
10
- *.yml text eol=lf
11
-
12
- # Git related files
13
- .gittattributes text eol=lf
14
- .gitignore text eol=lf
15
- .gitkeep text eol=lf
16
-
17
- # Ruby files
18
- *.rb text eol=lf
19
- Gemfile text eol=lf
20
- Gemfile.lock text eol=lf
21
-
22
- # Github specific fies
23
- LICENCE text eol=lf
24
-
25
- # Docker specific files
26
- Dockerfile text eol=lf
27
-
28
- # VSCode files
29
- *.json text eol=lf
30
-
31
- # General multimedia files
32
- *.jpg binary
33
- *.jpeg binary
34
- *.gif binary
35
- *.png binary
36
- *.t3x binary
37
- *.t3d binary
38
- *.exe binary
39
- *.data binary
40
- *.ttf binary
41
- *.eof binary
42
- *.eot binary
43
- *.swf binary
44
- *.mov binary
45
- *.mp4 binary
46
- *.mp3 binary
47
- *.ogg binary
48
- *.flv binary
package/docs/404.html DELETED
@@ -1,13 +0,0 @@
1
- ---
2
- layout: default
3
- title: 404 - Page not found
4
- permalink: /404.html
5
- ---
6
-
7
- <div class="text-center">
8
- <h1>Whoops, this page doesn't exist.</h1>
9
- <h1>Move along. (404 error)</h1>
10
- <br/>
11
-
12
- <img src="{{ 'img/404-southpark.jpg' | relative_url }}" />
13
- </div>
package/docs/Gemfile DELETED
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem "github-pages", '197', group: :jekyll_plugins
4
-
5
- # enable tzinfo-data for local build
6
- # gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
7
- gem 'jekyll-paginate'
package/docs/Gemfile.lock DELETED
@@ -1,249 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- activesupport (4.2.10)
5
- i18n (~> 0.7)
6
- minitest (~> 5.1)
7
- thread_safe (~> 0.3, >= 0.3.4)
8
- tzinfo (~> 1.1)
9
- addressable (2.5.2)
10
- public_suffix (>= 2.0.2, < 4.0)
11
- coffee-script (2.4.1)
12
- coffee-script-source
13
- execjs
14
- coffee-script-source (1.11.1)
15
- colorator (1.1.0)
16
- commonmarker (0.17.13)
17
- ruby-enum (~> 0.5)
18
- concurrent-ruby (1.1.3)
19
- dnsruby (1.61.2)
20
- addressable (~> 2.5)
21
- em-websocket (0.5.1)
22
- eventmachine (>= 0.12.9)
23
- http_parser.rb (~> 0.6.0)
24
- ethon (0.11.0)
25
- ffi (>= 1.3.0)
26
- eventmachine (1.2.7-x64-mingw32)
27
- execjs (2.7.0)
28
- faraday (0.15.3)
29
- multipart-post (>= 1.2, < 3)
30
- ffi (1.9.25-x64-mingw32)
31
- forwardable-extended (2.6.0)
32
- gemoji (3.0.0)
33
- github-pages (193)
34
- activesupport (= 4.2.10)
35
- github-pages-health-check (= 1.8.1)
36
- jekyll (= 3.7.4)
37
- jekyll-avatar (= 0.6.0)
38
- jekyll-coffeescript (= 1.1.1)
39
- jekyll-commonmark-ghpages (= 0.1.5)
40
- jekyll-default-layout (= 0.1.4)
41
- jekyll-feed (= 0.11.0)
42
- jekyll-gist (= 1.5.0)
43
- jekyll-github-metadata (= 2.9.4)
44
- jekyll-mentions (= 1.4.1)
45
- jekyll-optional-front-matter (= 0.3.0)
46
- jekyll-paginate (= 1.1.0)
47
- jekyll-readme-index (= 0.2.0)
48
- jekyll-redirect-from (= 0.14.0)
49
- jekyll-relative-links (= 0.5.3)
50
- jekyll-remote-theme (= 0.3.1)
51
- jekyll-sass-converter (= 1.5.2)
52
- jekyll-seo-tag (= 2.5.0)
53
- jekyll-sitemap (= 1.2.0)
54
- jekyll-swiss (= 0.4.0)
55
- jekyll-theme-architect (= 0.1.1)
56
- jekyll-theme-cayman (= 0.1.1)
57
- jekyll-theme-dinky (= 0.1.1)
58
- jekyll-theme-hacker (= 0.1.1)
59
- jekyll-theme-leap-day (= 0.1.1)
60
- jekyll-theme-merlot (= 0.1.1)
61
- jekyll-theme-midnight (= 0.1.1)
62
- jekyll-theme-minimal (= 0.1.1)
63
- jekyll-theme-modernist (= 0.1.1)
64
- jekyll-theme-primer (= 0.5.3)
65
- jekyll-theme-slate (= 0.1.1)
66
- jekyll-theme-tactile (= 0.1.1)
67
- jekyll-theme-time-machine (= 0.1.1)
68
- jekyll-titles-from-headings (= 0.5.1)
69
- jemoji (= 0.10.1)
70
- kramdown (= 1.17.0)
71
- liquid (= 4.0.0)
72
- listen (= 3.1.5)
73
- mercenary (~> 0.3)
74
- minima (= 2.5.0)
75
- nokogiri (>= 1.8.2, < 2.0)
76
- rouge (= 2.2.1)
77
- terminal-table (~> 1.4)
78
- github-pages-health-check (1.8.1)
79
- addressable (~> 2.3)
80
- dnsruby (~> 1.60)
81
- octokit (~> 4.0)
82
- public_suffix (~> 2.0)
83
- typhoeus (~> 1.3)
84
- html-pipeline (2.9.1)
85
- activesupport (>= 2)
86
- nokogiri (>= 1.4)
87
- http_parser.rb (0.6.0)
88
- i18n (0.9.5)
89
- concurrent-ruby (~> 1.0)
90
- jekyll (3.7.4)
91
- addressable (~> 2.4)
92
- colorator (~> 1.0)
93
- em-websocket (~> 0.5)
94
- i18n (~> 0.7)
95
- jekyll-sass-converter (~> 1.0)
96
- jekyll-watch (~> 2.0)
97
- kramdown (~> 1.14)
98
- liquid (~> 4.0)
99
- mercenary (~> 0.3.3)
100
- pathutil (~> 0.9)
101
- rouge (>= 1.7, < 4)
102
- safe_yaml (~> 1.0)
103
- jekyll-avatar (0.6.0)
104
- jekyll (~> 3.0)
105
- jekyll-coffeescript (1.1.1)
106
- coffee-script (~> 2.2)
107
- coffee-script-source (~> 1.11.1)
108
- jekyll-commonmark (1.2.0)
109
- commonmarker (~> 0.14)
110
- jekyll (>= 3.0, < 4.0)
111
- jekyll-commonmark-ghpages (0.1.5)
112
- commonmarker (~> 0.17.6)
113
- jekyll-commonmark (~> 1)
114
- rouge (~> 2)
115
- jekyll-default-layout (0.1.4)
116
- jekyll (~> 3.0)
117
- jekyll-feed (0.11.0)
118
- jekyll (~> 3.3)
119
- jekyll-gist (1.5.0)
120
- octokit (~> 4.2)
121
- jekyll-github-metadata (2.9.4)
122
- jekyll (~> 3.1)
123
- octokit (~> 4.0, != 4.4.0)
124
- jekyll-mentions (1.4.1)
125
- html-pipeline (~> 2.3)
126
- jekyll (~> 3.0)
127
- jekyll-optional-front-matter (0.3.0)
128
- jekyll (~> 3.0)
129
- jekyll-paginate (1.1.0)
130
- jekyll-readme-index (0.2.0)
131
- jekyll (~> 3.0)
132
- jekyll-redirect-from (0.14.0)
133
- jekyll (~> 3.3)
134
- jekyll-relative-links (0.5.3)
135
- jekyll (~> 3.3)
136
- jekyll-remote-theme (0.3.1)
137
- jekyll (~> 3.5)
138
- rubyzip (>= 1.2.1, < 3.0)
139
- jekyll-sass-converter (1.5.2)
140
- sass (~> 3.4)
141
- jekyll-seo-tag (2.5.0)
142
- jekyll (~> 3.3)
143
- jekyll-sitemap (1.2.0)
144
- jekyll (~> 3.3)
145
- jekyll-swiss (0.4.0)
146
- jekyll-theme-architect (0.1.1)
147
- jekyll (~> 3.5)
148
- jekyll-seo-tag (~> 2.0)
149
- jekyll-theme-cayman (0.1.1)
150
- jekyll (~> 3.5)
151
- jekyll-seo-tag (~> 2.0)
152
- jekyll-theme-dinky (0.1.1)
153
- jekyll (~> 3.5)
154
- jekyll-seo-tag (~> 2.0)
155
- jekyll-theme-hacker (0.1.1)
156
- jekyll (~> 3.5)
157
- jekyll-seo-tag (~> 2.0)
158
- jekyll-theme-leap-day (0.1.1)
159
- jekyll (~> 3.5)
160
- jekyll-seo-tag (~> 2.0)
161
- jekyll-theme-merlot (0.1.1)
162
- jekyll (~> 3.5)
163
- jekyll-seo-tag (~> 2.0)
164
- jekyll-theme-midnight (0.1.1)
165
- jekyll (~> 3.5)
166
- jekyll-seo-tag (~> 2.0)
167
- jekyll-theme-minimal (0.1.1)
168
- jekyll (~> 3.5)
169
- jekyll-seo-tag (~> 2.0)
170
- jekyll-theme-modernist (0.1.1)
171
- jekyll (~> 3.5)
172
- jekyll-seo-tag (~> 2.0)
173
- jekyll-theme-primer (0.5.3)
174
- jekyll (~> 3.5)
175
- jekyll-github-metadata (~> 2.9)
176
- jekyll-seo-tag (~> 2.0)
177
- jekyll-theme-slate (0.1.1)
178
- jekyll (~> 3.5)
179
- jekyll-seo-tag (~> 2.0)
180
- jekyll-theme-tactile (0.1.1)
181
- jekyll (~> 3.5)
182
- jekyll-seo-tag (~> 2.0)
183
- jekyll-theme-time-machine (0.1.1)
184
- jekyll (~> 3.5)
185
- jekyll-seo-tag (~> 2.0)
186
- jekyll-titles-from-headings (0.5.1)
187
- jekyll (~> 3.3)
188
- jekyll-watch (2.1.2)
189
- listen (~> 3.0)
190
- jemoji (0.10.1)
191
- gemoji (~> 3.0)
192
- html-pipeline (~> 2.2)
193
- jekyll (~> 3.0)
194
- kramdown (1.17.0)
195
- liquid (4.0.0)
196
- listen (3.1.5)
197
- rb-fsevent (~> 0.9, >= 0.9.4)
198
- rb-inotify (~> 0.9, >= 0.9.7)
199
- ruby_dep (~> 1.2)
200
- mercenary (0.3.6)
201
- mini_portile2 (2.3.0)
202
- minima (2.5.0)
203
- jekyll (~> 3.5)
204
- jekyll-feed (~> 0.9)
205
- jekyll-seo-tag (~> 2.1)
206
- minitest (5.11.3)
207
- multipart-post (2.0.0)
208
- nokogiri (1.8.5-x64-mingw32)
209
- mini_portile2 (~> 2.3.0)
210
- octokit (4.13.0)
211
- sawyer (~> 0.8.0, >= 0.5.3)
212
- pathutil (0.16.2)
213
- forwardable-extended (~> 2.6)
214
- public_suffix (2.0.5)
215
- rb-fsevent (0.10.3)
216
- rb-inotify (0.9.10)
217
- ffi (>= 0.5.0, < 2)
218
- rouge (2.2.1)
219
- ruby-enum (0.7.2)
220
- i18n
221
- ruby_dep (1.5.0)
222
- rubyzip (1.2.2)
223
- safe_yaml (1.0.4)
224
- sass (3.7.2)
225
- sass-listen (~> 4.0.0)
226
- sass-listen (4.0.0)
227
- rb-fsevent (~> 0.9, >= 0.9.4)
228
- rb-inotify (~> 0.9, >= 0.9.7)
229
- sawyer (0.8.1)
230
- addressable (>= 2.3.5, < 2.6)
231
- faraday (~> 0.8, < 1.0)
232
- terminal-table (1.8.0)
233
- unicode-display_width (~> 1.1, >= 1.1.1)
234
- thread_safe (0.3.6)
235
- typhoeus (1.3.1)
236
- ethon (>= 0.9.0)
237
- tzinfo (1.2.5)
238
- thread_safe (~> 0.1)
239
- unicode-display_width (1.4.0)
240
-
241
- PLATFORMS
242
- x64-mingw32
243
-
244
- DEPENDENCIES
245
- github-pages (= 193)
246
- jekyll-paginate
247
-
248
- BUNDLED WITH
249
- 1.17.1