outliner 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f21fefa59fb5ff2a67d87273bcaa82096ba5b1166a42ffa6802003b422c991f
4
- data.tar.gz: 14f75297d7f94c001e0f7a43dde6d29f146f575f662e10b614b3e94a1f2d4339
3
+ metadata.gz: f9c33ead5965c7d3343b0cb626eb725655e4e618938451363c314496648a41e6
4
+ data.tar.gz: 910e51e24b3e976454f302ca3f348bcfe2405758f34fcbc16c6e5aba08b13f6e
5
5
  SHA512:
6
- metadata.gz: 83dae751c834a29fe279ef18fbe1d6fcc20062466b9bdfd61411dd189aadb6367c16b3fc92dade5087ecfdf86de81e2e4e8cb6db88fea0eb6a1d24f1fcbc142b
7
- data.tar.gz: 437a5728107aa019ef6e031fde94f3078d332cc096a294d3ce563a8a6a862d0eebd29a44f3ba8fe5a97cc2ee23507c3a39c125790cf9cbd250b50dcf7da7d7b8
6
+ metadata.gz: a223dfcc0f99b2071559b842ceba71db4992c99af1601a9c7e7e8b40758614e69eed123f045ae48ab69e0c8e73542daaf63e05bade507986bc05d9631c4d047a
7
+ data.tar.gz: 459b25c411aec74177ee55eca5290f1a89a3614747f6ff48b89ebab83fa6a8f72b6b392b76e5eadf74170656c7f78e621bcaa27ea4d4b1eb1eb1353dc2ed0b59
data/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## 1.0.1 - 2020-04-26
11
+
12
+ ### Changed
13
+
14
+ - Dependency Updates
15
+
10
16
  ## 1.0.0 - 2020-04-26
11
17
 
12
18
  ### Changed
data/Dockerfile CHANGED
@@ -1,12 +1,18 @@
1
- FROM ruby:2.7-alpine
1
+ FROM ruby:3.3-alpine3.19
2
+
3
+ RUN apk add --no-cache git openssh-client rsync && \
4
+ echo -e "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
5
+ mkdir /root/.ssh
2
6
 
3
7
  WORKDIR /outliner
4
8
  COPY . /outliner/
5
9
 
6
- RUN gem install bundler && \
10
+ RUN echo "gem: --no-ri --no-rdoc" > ~/.gemrc && \
11
+ apk add --no-cache alpine-sdk && \
12
+ gem update --system && \
13
+ gem install bundler && \
7
14
  bundle install && \
8
- apk add --no-cache git openssh-client rsync && \
9
- echo -e "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
10
- mkdir /root/.ssh
15
+ apk del --no-cache alpine-sdk && \
16
+ rm ~/.gemrc
11
17
 
12
18
  ENTRYPOINT ["/outliner/entrypoint.sh"]
data/Gemfile.lock CHANGED
@@ -1,42 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- outliner (0.2.2)
4
+ outliner (1.0.2)
5
5
  httparty (~> 0.17)
6
+ rake (>= 12.3)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- addressable (2.7.0)
11
- public_suffix (>= 2.0.2, < 5.0)
12
- crack (0.4.3)
13
- safe_yaml (~> 1.0.0)
14
- hashdiff (1.0.1)
15
- httparty (0.18.0)
16
- mime-types (~> 3.0)
11
+ addressable (2.8.6)
12
+ public_suffix (>= 2.0.2, < 6.0)
13
+ bigdecimal (3.1.6)
14
+ crack (1.0.0)
15
+ bigdecimal
16
+ rexml
17
+ hashdiff (1.1.0)
18
+ httparty (0.21.0)
19
+ mini_mime (>= 1.0.0)
17
20
  multi_xml (>= 0.5.2)
18
- mime-types (3.3.1)
19
- mime-types-data (~> 3.2015)
20
- mime-types-data (3.2019.1009)
21
- minitest (5.8.5)
21
+ json (2.7.1)
22
+ mini_mime (1.1.5)
23
+ minitest (5.22.2)
22
24
  multi_xml (0.6.0)
23
- public_suffix (4.0.4)
24
- rake (10.5.0)
25
- safe_yaml (1.0.5)
26
- webmock (3.6.2)
27
- addressable (>= 2.3.6)
25
+ public_suffix (5.0.4)
26
+ rake (13.1.0)
27
+ rexml (3.2.6)
28
+ webmock (3.23.0)
29
+ addressable (>= 2.8.0)
28
30
  crack (>= 0.3.2)
29
31
  hashdiff (>= 0.4.0, < 2.0.0)
30
32
 
31
33
  PLATFORMS
32
34
  ruby
35
+ x86_64-linux
33
36
 
34
37
  DEPENDENCIES
35
38
  bundler (~> 2.0)
36
- minitest (~> 5.8.4)
39
+ json (~> 2.7)
40
+ minitest (~> 5.8)
37
41
  outliner!
38
- rake (~> 10.0)
39
- webmock (~> 3.6.0)
42
+ webmock (~> 3.6)
40
43
 
41
44
  BUNDLED WITH
42
- 2.1.4
45
+ 2.5.4
data/README.md CHANGED
@@ -28,6 +28,13 @@ require 'outliner'
28
28
  client = Outliner.new('https://knowledge.example.com')
29
29
  pp client.auth_info
30
30
  pp client.collections_list(offset: 0, limit: 10)
31
+ # This works around a 302 redirect bug in httparty
32
+ begin
33
+ r = @client.fileOperations__redirect({id: FILE_OPERATION_ID}, format: nil, no_follow: true)
34
+ rescue HTTParty::RedirectionTooDeep => e
35
+ # Download this using response = HTTParty.get e.response.header['location'] if needed
36
+ pp e.response.header['location']
37
+ end
31
38
  ```
32
39
 
33
40
  ### Import
data/exe/outliner-export CHANGED
@@ -20,13 +20,30 @@ local_directory = ARGV[0]
20
20
  CLIENT = Outliner::Client.new ENV['OUTLINE_BASE_URI']
21
21
 
22
22
  # Download the complete zip
23
- response = CLIENT.collections_exportAll(download: true)
23
+ response = CLIENT.collections__export_all(format: "outline-markdown")
24
+
25
+ raise 'Failed to trigger export_all action' if not response['success']
26
+
27
+ file_operation_id = response['data']['fileOperation']['id']
28
+ fop_info_response = nil
29
+ i = 0
30
+ loop do
31
+ i += 1
32
+ raise 'Timed out waiting for the file export operation to complete' if i > 20
33
+ sleep(2*i)
34
+ fop_info_response = CLIENT.fileOperations__info(id: file_operation_id)
35
+ raise 'Failed to query export file operation info' if not fop_info_response['ok']
36
+ break if fop_info_response['data']['state'] == 'complete'
37
+ end
24
38
 
25
- # Extract it to a tempfle
26
- file = Tempfile.new('download.zip')
27
- File.open(file.path, 'w') { |f| f.write(response.body) }
39
+ begin
40
+ fop_redirect_response = CLIENT.fileOperations__redirect({id: file_operation_id}, {no_follow: true})
41
+ rescue HTTParty::RedirectionTooDeep => e
42
+ response = HTTParty.get e.response.header['location']
43
+ file = Tempfile.new('download.zip')
44
+ File.open(file.path, 'w') { |f| f.write(response.body) }
45
+ `unzip -o "#{file.path}" -d "#{local_directory}"`
46
+ file.unlink
47
+ end
28
48
 
29
- `unzip -o "#{file.path}" -d "#{local_directory}"`
30
49
 
31
- # Delete tempfile
32
- file.unlink
data/exe/outliner-import CHANGED
@@ -28,7 +28,7 @@ def create_documents_recursively(directory, collection_id, parent_document_id =
28
28
  }
29
29
 
30
30
  params[:parentDocumentId] = parent_document_id if parent_document_id
31
- CLIENT.documents_create(params)
31
+ CLIENT.documents__create(params)
32
32
  puts "[-] #{file}"
33
33
  end
34
34
 
@@ -42,7 +42,7 @@ def create_documents_recursively(directory, collection_id, parent_document_id =
42
42
  publish: true,
43
43
  parentDocumentId: parent_document_id
44
44
  }
45
- response = CLIENT.documents_create(params)
45
+ response = CLIENT.documents__create(params)
46
46
  create_documents_recursively(dir, collection_id, response['data']['id'])
47
47
  end
48
48
  Dir.chdir cwd
@@ -65,7 +65,7 @@ begin
65
65
  rescue StandardError? => e
66
66
  # If we fail, print an error, and delete the collection
67
67
  puts "[E] Import failed with error: #{e.message}"
68
- CLIENT.collections_delete(id: root_collection_id)
68
+ CLIENT.collections__delete(id: root_collection_id)
69
69
  puts '[E] Deleted collection, please report the issue or retry'
70
70
  exit 1
71
71
  end
@@ -11,27 +11,28 @@ module Outliner
11
11
  end
12
12
 
13
13
  def find_or_create_collection(name)
14
- collections = self.collections_list(limit: 100)['data']
14
+ collections = self.collections__list(limit: 100)['data']
15
15
  collections.filter!{|c|c['name'] == name}
16
16
  if collections.size >= 1
17
17
  collections[0]['id']
18
18
  else
19
- self.collections_create(name: name, description: 'Imported Collection')['data']['id']
19
+ self.collections__create(name: name, description: 'Imported Collection')['data']['id']
20
20
  end
21
21
  end
22
22
 
23
- def method_missing(method_name, params = {})
24
- method_name = '/' + method_name.to_s.sub('_', '.')
25
- body = {token: @token}.merge(params).to_json
23
+ def method_missing(method_name, params = {}, options = {})
24
+ method_name = "/#{method_name.to_s.sub('__', '.')}"
25
+
26
26
  options = {
27
- body: body,
27
+ body: params.to_json,
28
28
  headers: {
29
- 'Accept'=>'application/json',
30
- 'Content-Type': 'application/json',
31
- 'User-Agent': "Outliner/#{Outliner::VERSION}"
29
+ 'Accept' => 'application/json',
30
+ 'Content-Type' => 'application/json',
31
+ 'User-Agent' => "Outliner/#{Outliner::VERSION}",
32
+ 'Authorization' => "Bearer #{@token}"
32
33
  },
33
- format: :json
34
- }
34
+ format: :json,
35
+ }.merge!(options)
35
36
 
36
37
  self.class.post(method_name, options)
37
38
  end
@@ -1,3 +1,3 @@
1
1
  module Outliner
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.2"
3
3
  end
data/outliner.gemspec CHANGED
@@ -23,10 +23,11 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_dependency "httparty", "~> 0.17"
26
+ spec.add_dependency "httparty", "~> 0.21"
27
+ spec.add_dependency "json", "~> 2.7"
27
28
 
28
- spec.add_development_dependency "bundler", "~> 2.0"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "webmock", "~> 3.6.0"
31
- spec.add_development_dependency "minitest", "~> 5.8.4"
29
+ spec.add_development_dependency "bundler", "~> 2.1"
30
+ spec.add_dependency "rake", ">= 13.1"
31
+ spec.add_development_dependency "webmock", "~> 3.23"
32
+ spec.add_development_dependency "minitest", "~> 5.22"
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: outliner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nemo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-26 00:00:00.000000000 Z
11
+ date: 2024-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -16,71 +16,85 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.17'
19
+ version: '0.21'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.17'
26
+ version: '0.21'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
34
- type: :development
33
+ version: '2.7'
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.0'
40
+ version: '2.7'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '2.1'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '2.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '13.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '13.1'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: webmock
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: 3.6.0
75
+ version: '3.23'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: 3.6.0
82
+ version: '3.23'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: minitest
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 5.8.4
89
+ version: '5.22'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 5.8.4
83
- description:
96
+ version: '5.22'
97
+ description:
84
98
  email:
85
99
  - outliner@captnemo.in
86
100
  executables:
@@ -114,7 +128,7 @@ metadata:
114
128
  homepage_uri: https://github.com/captn3m0/outliner
115
129
  source_code_uri: https://github.com/captn3m0/outliner
116
130
  changelog_uri: https://github.com/captn3m0/outliner/blob/master/CHANGELOG.md
117
- post_install_message:
131
+ post_install_message:
118
132
  rdoc_options: []
119
133
  require_paths:
120
134
  - lib
@@ -129,8 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
143
  - !ruby/object:Gem::Version
130
144
  version: '0'
131
145
  requirements: []
132
- rubygems_version: 3.1.2
133
- signing_key:
146
+ rubygems_version: 3.3.25
147
+ signing_key:
134
148
  specification_version: 4
135
149
  summary: A simple HTTParty based client for outline knowledge base.
136
150
  test_files: []