lex-aha 0.1.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 +7 -0
- data/.github/workflows/ci.yml +16 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.rubocop.yml +66 -0
- data/CHANGELOG.md +12 -0
- data/CLAUDE.md +88 -0
- data/Dockerfile +6 -0
- data/Gemfile +12 -0
- data/LICENSE +21 -0
- data/README.md +62 -0
- data/lex-aha.gemspec +30 -0
- data/lib/legion/extensions/aha/base_client.rb +23 -0
- data/lib/legion/extensions/aha/core/client.rb +42 -0
- data/lib/legion/extensions/aha/core/runners/admin.rb +65 -0
- data/lib/legion/extensions/aha/core/runners/attachments.rb +39 -0
- data/lib/legion/extensions/aha/core/runners/audits.rb +37 -0
- data/lib/legion/extensions/aha/core/runners/comments.rb +66 -0
- data/lib/legion/extensions/aha/core/runners/custom_fields.rb +59 -0
- data/lib/legion/extensions/aha/core/runners/custom_table_records.rb +42 -0
- data/lib/legion/extensions/aha/core/runners/integrations.rb +49 -0
- data/lib/legion/extensions/aha/core/runners/me.rb +35 -0
- data/lib/legion/extensions/aha/core/runners/record_links.rb +42 -0
- data/lib/legion/extensions/aha/core/runners/teams.rb +71 -0
- data/lib/legion/extensions/aha/core/runners/todos.rb +59 -0
- data/lib/legion/extensions/aha/core/runners/users.rb +49 -0
- data/lib/legion/extensions/aha/core/runners/webhooks.rb +25 -0
- data/lib/legion/extensions/aha/core/runners/workflows.rb +30 -0
- data/lib/legion/extensions/aha/core.rb +26 -0
- data/lib/legion/extensions/aha/helpers/client.rb +23 -0
- data/lib/legion/extensions/aha/ideas/client.rb +30 -0
- data/lib/legion/extensions/aha/ideas/runners/idea_categories.rb +25 -0
- data/lib/legion/extensions/aha/ideas/runners/idea_comments.rb +40 -0
- data/lib/legion/extensions/aha/ideas/runners/idea_organizations.rb +45 -0
- data/lib/legion/extensions/aha/ideas/runners/idea_portals.rb +30 -0
- data/lib/legion/extensions/aha/ideas/runners/idea_subscriptions.rb +40 -0
- data/lib/legion/extensions/aha/ideas/runners/idea_users.rb +45 -0
- data/lib/legion/extensions/aha/ideas/runners/idea_votes.rb +50 -0
- data/lib/legion/extensions/aha/ideas/runners/ideas.rb +55 -0
- data/lib/legion/extensions/aha/ideas.rb +20 -0
- data/lib/legion/extensions/aha/knowledge/client.rb +20 -0
- data/lib/legion/extensions/aha/knowledge/runners/knowledge_bases.rb +29 -0
- data/lib/legion/extensions/aha/knowledge/runners/notes.rb +44 -0
- data/lib/legion/extensions/aha/knowledge/runners/pages.rb +44 -0
- data/lib/legion/extensions/aha/knowledge.rb +15 -0
- data/lib/legion/extensions/aha/roadmaps/client.rb +42 -0
- data/lib/legion/extensions/aha/roadmaps/runners/capacity.rb +54 -0
- data/lib/legion/extensions/aha/roadmaps/runners/competitors.rb +44 -0
- data/lib/legion/extensions/aha/roadmaps/runners/epics.rb +59 -0
- data/lib/legion/extensions/aha/roadmaps/runners/features.rb +59 -0
- data/lib/legion/extensions/aha/roadmaps/runners/goals.rb +54 -0
- data/lib/legion/extensions/aha/roadmaps/runners/initiatives.rb +54 -0
- data/lib/legion/extensions/aha/roadmaps/runners/key_results.rb +44 -0
- data/lib/legion/extensions/aha/roadmaps/runners/personas.rb +44 -0
- data/lib/legion/extensions/aha/roadmaps/runners/products.rb +34 -0
- data/lib/legion/extensions/aha/roadmaps/runners/release_phases.rb +49 -0
- data/lib/legion/extensions/aha/roadmaps/runners/releases.rb +49 -0
- data/lib/legion/extensions/aha/roadmaps/runners/requirements.rb +44 -0
- data/lib/legion/extensions/aha/roadmaps/runners/roll_up_releases.rb +39 -0
- data/lib/legion/extensions/aha/roadmaps/runners/strategy.rb +49 -0
- data/lib/legion/extensions/aha/roadmaps.rb +26 -0
- data/lib/legion/extensions/aha/version.rb +9 -0
- data/lib/legion/extensions/aha.rb +17 -0
- metadata +122 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module Goals
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_goals(**)
|
|
14
|
+
response = client(**).get('/goals')
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def list_goals_in_product(product_id:, **)
|
|
19
|
+
response = client(**).get("/products/#{product_id}/goals")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def list_goals_for_initiative(initiative_id:, **)
|
|
24
|
+
response = client(**).get("/initiatives/#{initiative_id}/goals")
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def get_goal(id:, **)
|
|
29
|
+
response = client(**).get("/goals/#{id}")
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def create_goal(product_id:, goal:, **)
|
|
34
|
+
response = client(**).post("/products/#{product_id}/goals", { goal: goal })
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def update_goal(product_id:, id:, goal:, **)
|
|
39
|
+
response = client(**).put("/products/#{product_id}/goals/#{id}", { goal: goal })
|
|
40
|
+
{ result: response.body, status: response.status }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def delete_goal(product_id:, id:, **)
|
|
44
|
+
response = client(**).delete("/products/#{product_id}/goals/#{id}")
|
|
45
|
+
{ result: response.body, status: response.status }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module Initiatives
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_initiatives(**)
|
|
14
|
+
response = client(**).get('/initiatives')
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def list_initiatives_in_product(product_id:, **)
|
|
19
|
+
response = client(**).get("/products/#{product_id}/initiatives")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def list_initiatives_for_goal(goal_id:, **)
|
|
24
|
+
response = client(**).get("/goals/#{goal_id}/initiatives")
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def get_initiative(id:, **)
|
|
29
|
+
response = client(**).get("/initiatives/#{id}")
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def create_initiative(product_id:, initiative:, **)
|
|
34
|
+
response = client(**).post("/products/#{product_id}/initiatives", { initiative: initiative })
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def update_initiative(product_id:, id:, initiative:, **)
|
|
39
|
+
response = client(**).put("/products/#{product_id}/initiatives/#{id}", { initiative: initiative })
|
|
40
|
+
{ result: response.body, status: response.status }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def delete_initiative(product_id:, id:, **)
|
|
44
|
+
response = client(**).delete("/products/#{product_id}/initiatives/#{id}")
|
|
45
|
+
{ result: response.body, status: response.status }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module KeyResults
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_key_results(goal_id:, **)
|
|
14
|
+
response = client(**).get("/goals/#{goal_id}/key_results")
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_key_result(id:, **)
|
|
19
|
+
response = client(**).get("/key_results/#{id}")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_key_result(goal_id:, key_result:, **)
|
|
24
|
+
response = client(**).post("/goals/#{goal_id}/key_results", { key_result: key_result })
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update_key_result(id:, key_result:, **)
|
|
29
|
+
response = client(**).put("/key_results/#{id}", { key_result: key_result })
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def delete_key_result(id:, **)
|
|
34
|
+
response = client(**).delete("/key_results/#{id}")
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module Personas
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_personas(product_id:, **)
|
|
14
|
+
response = client(**).get("/products/#{product_id}/personas")
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_persona(id:, **)
|
|
19
|
+
response = client(**).get("/personas/#{id}")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_persona(product_id:, persona:, **)
|
|
24
|
+
response = client(**).post("/products/#{product_id}/personas", { persona: persona })
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update_persona(product_id:, id:, persona:, **)
|
|
29
|
+
response = client(**).put("/products/#{product_id}/personas/#{id}", { persona: persona })
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def delete_persona(product_id:, id:, **)
|
|
34
|
+
response = client(**).delete("/products/#{product_id}/personas/#{id}")
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module Products
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_products(**)
|
|
14
|
+
response = client(**).get('/products')
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_product(id:, **)
|
|
19
|
+
response = client(**).get("/products/#{id}")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_product(product:, **)
|
|
24
|
+
response = client(**).post('/products', { product: product })
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module ReleasePhases
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_release_phases(**)
|
|
14
|
+
response = client(**).get('/release_phases')
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def list_release_phases_for_release(release_id:, **)
|
|
19
|
+
response = client(**).get("/releases/#{release_id}/release_phases")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def get_release_phase(id:, **)
|
|
24
|
+
response = client(**).get("/release_phases/#{id}")
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def create_release_phase(release_phase:, **)
|
|
29
|
+
response = client(**).post('/release_phases', { release_phase: release_phase })
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def update_release_phase(id:, release_phase:, **)
|
|
34
|
+
response = client(**).put("/release_phases/#{id}", { release_phase: release_phase })
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def delete_release_phase(id:, **)
|
|
39
|
+
response = client(**).delete("/release_phases/#{id}")
|
|
40
|
+
{ result: response.body, status: response.status }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module Releases
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_releases(product_id:, **)
|
|
14
|
+
response = client(**).get("/products/#{product_id}/releases")
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_release(id:, **)
|
|
19
|
+
response = client(**).get("/releases/#{id}")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_release(product_id:, release:, **)
|
|
24
|
+
response = client(**).post("/products/#{product_id}/releases", { release: release })
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update_release(product_id:, id:, release:, **)
|
|
29
|
+
response = client(**).put("/products/#{product_id}/releases/#{id}", { release: release })
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def delete_release(product_id:, id:, **)
|
|
34
|
+
response = client(**).delete("/products/#{product_id}/releases/#{id}")
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def duplicate_release(id:, **)
|
|
39
|
+
response = client(**).post("/releases/#{id}/duplicate")
|
|
40
|
+
{ result: response.body, status: response.status }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module Requirements
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_requirements(feature_id:, **)
|
|
14
|
+
response = client(**).get("/features/#{feature_id}/requirements")
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_requirement(id:, **)
|
|
19
|
+
response = client(**).get("/requirements/#{id}")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_requirement(feature_id:, requirement:, **)
|
|
24
|
+
response = client(**).post("/features/#{feature_id}/requirements", { requirement: requirement })
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def delete_requirement(id:, **)
|
|
29
|
+
response = client(**).delete("/requirements/#{id}")
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def convert_to_feature(id:, **)
|
|
34
|
+
response = client(**).post("/requirements/#{id}/convert_to_feature")
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module RollUpReleases
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_roll_up_releases(product_id:, **)
|
|
14
|
+
response = client(**).get("/products/#{product_id}/roll_up_releases")
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_roll_up_release(id:, **)
|
|
19
|
+
response = client(**).get("/roll_up_releases/#{id}")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_roll_up_release(product_id:, roll_up_release:, **)
|
|
24
|
+
response = client(**).post("/products/#{product_id}/roll_up_releases", { roll_up_release: roll_up_release })
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update_roll_up_release(id:, roll_up_release:, **)
|
|
29
|
+
response = client(**).put("/roll_up_releases/#{id}", { roll_up_release: roll_up_release })
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Aha
|
|
8
|
+
module Roadmaps
|
|
9
|
+
module Runners
|
|
10
|
+
module Strategy
|
|
11
|
+
extend Legion::Extensions::Aha::Helpers::Client
|
|
12
|
+
|
|
13
|
+
def list_strategic_models(**)
|
|
14
|
+
response = client(**).get('/strategy_models')
|
|
15
|
+
{ result: response.body, status: response.status }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_strategic_model(id:, **)
|
|
19
|
+
response = client(**).get("/strategy_models/#{id}")
|
|
20
|
+
{ result: response.body, status: response.status }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def list_strategic_positionings(**)
|
|
24
|
+
response = client(**).get('/strategy_positions')
|
|
25
|
+
{ result: response.body, status: response.status }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def get_strategic_positioning(id:, **)
|
|
29
|
+
response = client(**).get("/strategy_positions/#{id}")
|
|
30
|
+
{ result: response.body, status: response.status }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def list_strategic_visions(**)
|
|
34
|
+
response = client(**).get('/strategy_visions')
|
|
35
|
+
{ result: response.body, status: response.status }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def get_strategic_vision(id:, **)
|
|
39
|
+
response = client(**).get("/strategy_visions/#{id}")
|
|
40
|
+
{ result: response.body, status: response.status }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) && Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/aha/roadmaps/runners/products'
|
|
4
|
+
require 'legion/extensions/aha/roadmaps/runners/releases'
|
|
5
|
+
require 'legion/extensions/aha/roadmaps/runners/release_phases'
|
|
6
|
+
require 'legion/extensions/aha/roadmaps/runners/roll_up_releases'
|
|
7
|
+
require 'legion/extensions/aha/roadmaps/runners/features'
|
|
8
|
+
require 'legion/extensions/aha/roadmaps/runners/epics'
|
|
9
|
+
require 'legion/extensions/aha/roadmaps/runners/requirements'
|
|
10
|
+
require 'legion/extensions/aha/roadmaps/runners/initiatives'
|
|
11
|
+
require 'legion/extensions/aha/roadmaps/runners/goals'
|
|
12
|
+
require 'legion/extensions/aha/roadmaps/runners/key_results'
|
|
13
|
+
require 'legion/extensions/aha/roadmaps/runners/strategy'
|
|
14
|
+
require 'legion/extensions/aha/roadmaps/runners/competitors'
|
|
15
|
+
require 'legion/extensions/aha/roadmaps/runners/personas'
|
|
16
|
+
require 'legion/extensions/aha/roadmaps/runners/capacity'
|
|
17
|
+
require_relative 'roadmaps/client'
|
|
18
|
+
|
|
19
|
+
module Legion
|
|
20
|
+
module Extensions
|
|
21
|
+
module Aha
|
|
22
|
+
module Roadmaps
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'aha/version'
|
|
4
|
+
require_relative 'aha/helpers/client'
|
|
5
|
+
require_relative 'aha/base_client'
|
|
6
|
+
require_relative 'aha/roadmaps'
|
|
7
|
+
require_relative 'aha/ideas'
|
|
8
|
+
require_relative 'aha/knowledge'
|
|
9
|
+
require_relative 'aha/core'
|
|
10
|
+
|
|
11
|
+
module Legion
|
|
12
|
+
module Extensions
|
|
13
|
+
module Aha
|
|
14
|
+
extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lex-aha
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Esity
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: faraday
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '2.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '2.0'
|
|
26
|
+
description: Connects LegionIO to the Aha! product management platform
|
|
27
|
+
email:
|
|
28
|
+
- matthewdiverson@gmail.com
|
|
29
|
+
executables: []
|
|
30
|
+
extensions: []
|
|
31
|
+
extra_rdoc_files: []
|
|
32
|
+
files:
|
|
33
|
+
- ".github/workflows/ci.yml"
|
|
34
|
+
- ".gitignore"
|
|
35
|
+
- ".rspec"
|
|
36
|
+
- ".rubocop.yml"
|
|
37
|
+
- CHANGELOG.md
|
|
38
|
+
- CLAUDE.md
|
|
39
|
+
- Dockerfile
|
|
40
|
+
- Gemfile
|
|
41
|
+
- LICENSE
|
|
42
|
+
- README.md
|
|
43
|
+
- lex-aha.gemspec
|
|
44
|
+
- lib/legion/extensions/aha.rb
|
|
45
|
+
- lib/legion/extensions/aha/base_client.rb
|
|
46
|
+
- lib/legion/extensions/aha/core.rb
|
|
47
|
+
- lib/legion/extensions/aha/core/client.rb
|
|
48
|
+
- lib/legion/extensions/aha/core/runners/admin.rb
|
|
49
|
+
- lib/legion/extensions/aha/core/runners/attachments.rb
|
|
50
|
+
- lib/legion/extensions/aha/core/runners/audits.rb
|
|
51
|
+
- lib/legion/extensions/aha/core/runners/comments.rb
|
|
52
|
+
- lib/legion/extensions/aha/core/runners/custom_fields.rb
|
|
53
|
+
- lib/legion/extensions/aha/core/runners/custom_table_records.rb
|
|
54
|
+
- lib/legion/extensions/aha/core/runners/integrations.rb
|
|
55
|
+
- lib/legion/extensions/aha/core/runners/me.rb
|
|
56
|
+
- lib/legion/extensions/aha/core/runners/record_links.rb
|
|
57
|
+
- lib/legion/extensions/aha/core/runners/teams.rb
|
|
58
|
+
- lib/legion/extensions/aha/core/runners/todos.rb
|
|
59
|
+
- lib/legion/extensions/aha/core/runners/users.rb
|
|
60
|
+
- lib/legion/extensions/aha/core/runners/webhooks.rb
|
|
61
|
+
- lib/legion/extensions/aha/core/runners/workflows.rb
|
|
62
|
+
- lib/legion/extensions/aha/helpers/client.rb
|
|
63
|
+
- lib/legion/extensions/aha/ideas.rb
|
|
64
|
+
- lib/legion/extensions/aha/ideas/client.rb
|
|
65
|
+
- lib/legion/extensions/aha/ideas/runners/idea_categories.rb
|
|
66
|
+
- lib/legion/extensions/aha/ideas/runners/idea_comments.rb
|
|
67
|
+
- lib/legion/extensions/aha/ideas/runners/idea_organizations.rb
|
|
68
|
+
- lib/legion/extensions/aha/ideas/runners/idea_portals.rb
|
|
69
|
+
- lib/legion/extensions/aha/ideas/runners/idea_subscriptions.rb
|
|
70
|
+
- lib/legion/extensions/aha/ideas/runners/idea_users.rb
|
|
71
|
+
- lib/legion/extensions/aha/ideas/runners/idea_votes.rb
|
|
72
|
+
- lib/legion/extensions/aha/ideas/runners/ideas.rb
|
|
73
|
+
- lib/legion/extensions/aha/knowledge.rb
|
|
74
|
+
- lib/legion/extensions/aha/knowledge/client.rb
|
|
75
|
+
- lib/legion/extensions/aha/knowledge/runners/knowledge_bases.rb
|
|
76
|
+
- lib/legion/extensions/aha/knowledge/runners/notes.rb
|
|
77
|
+
- lib/legion/extensions/aha/knowledge/runners/pages.rb
|
|
78
|
+
- lib/legion/extensions/aha/roadmaps.rb
|
|
79
|
+
- lib/legion/extensions/aha/roadmaps/client.rb
|
|
80
|
+
- lib/legion/extensions/aha/roadmaps/runners/capacity.rb
|
|
81
|
+
- lib/legion/extensions/aha/roadmaps/runners/competitors.rb
|
|
82
|
+
- lib/legion/extensions/aha/roadmaps/runners/epics.rb
|
|
83
|
+
- lib/legion/extensions/aha/roadmaps/runners/features.rb
|
|
84
|
+
- lib/legion/extensions/aha/roadmaps/runners/goals.rb
|
|
85
|
+
- lib/legion/extensions/aha/roadmaps/runners/initiatives.rb
|
|
86
|
+
- lib/legion/extensions/aha/roadmaps/runners/key_results.rb
|
|
87
|
+
- lib/legion/extensions/aha/roadmaps/runners/personas.rb
|
|
88
|
+
- lib/legion/extensions/aha/roadmaps/runners/products.rb
|
|
89
|
+
- lib/legion/extensions/aha/roadmaps/runners/release_phases.rb
|
|
90
|
+
- lib/legion/extensions/aha/roadmaps/runners/releases.rb
|
|
91
|
+
- lib/legion/extensions/aha/roadmaps/runners/requirements.rb
|
|
92
|
+
- lib/legion/extensions/aha/roadmaps/runners/roll_up_releases.rb
|
|
93
|
+
- lib/legion/extensions/aha/roadmaps/runners/strategy.rb
|
|
94
|
+
- lib/legion/extensions/aha/version.rb
|
|
95
|
+
homepage: https://github.com/LegionIO/lex-aha
|
|
96
|
+
licenses:
|
|
97
|
+
- MIT
|
|
98
|
+
metadata:
|
|
99
|
+
homepage_uri: https://github.com/LegionIO/lex-aha
|
|
100
|
+
source_code_uri: https://github.com/LegionIO/lex-aha
|
|
101
|
+
documentation_uri: https://github.com/LegionIO/lex-aha
|
|
102
|
+
changelog_uri: https://github.com/LegionIO/lex-aha/blob/main/CHANGELOG.md
|
|
103
|
+
bug_tracker_uri: https://github.com/LegionIO/lex-aha/issues
|
|
104
|
+
rubygems_mfa_required: 'true'
|
|
105
|
+
rdoc_options: []
|
|
106
|
+
require_paths:
|
|
107
|
+
- lib
|
|
108
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
109
|
+
requirements:
|
|
110
|
+
- - ">="
|
|
111
|
+
- !ruby/object:Gem::Version
|
|
112
|
+
version: '3.4'
|
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
requirements: []
|
|
119
|
+
rubygems_version: 3.6.9
|
|
120
|
+
specification_version: 4
|
|
121
|
+
summary: LEX Aha
|
|
122
|
+
test_files: []
|