ammitto 0.1.0 → 1.0.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/.github/workflows/ci.yml +57 -0
- data/.github/workflows/docs.yml +69 -0
- data/.github/workflows/fetch-sources.yml +53 -0
- data/.github/workflows/links.yml +94 -0
- data/.github/workflows/rake.yml +15 -0
- data/.github/workflows/release.yml +28 -0
- data/.gitignore +7 -0
- data/.hound.yml +5 -0
- data/.rubocop.yml +29 -5
- data/.rubocop_todo.yml +318 -0
- data/Gemfile +6 -6
- data/README.adoc +562 -0
- data/Rakefile +37 -3
- data/ammitto.gemspec +33 -22
- data/bin/console +3 -3
- data/docs/Gemfile +26 -0
- data/docs/INDEX.adoc +185 -0
- data/docs/_config.yml +191 -0
- data/docs/getting-started/configuration.adoc +281 -0
- data/docs/getting-started/installation.adoc +116 -0
- data/docs/getting-started/quick-start.adoc +225 -0
- data/docs/interfaces/cli/index.adoc +449 -0
- data/docs/interfaces/ruby-api/index.adoc +336 -0
- data/docs/reference/entity-types.adoc +402 -0
- data/docs/sources/index.adoc +355 -0
- data/exe/ammitto +9 -0
- data/lib/ammitto/cli/data_command.rb +223 -0
- data/lib/ammitto/cli/export_command.rb +215 -0
- data/lib/ammitto/cli/fetch_command.rb +404 -0
- data/lib/ammitto/cli/get_command.rb +81 -0
- data/lib/ammitto/cli/harmonize_command.rb +626 -0
- data/lib/ammitto/cli/process_command.rb +133 -0
- data/lib/ammitto/cli/search_command.rb +194 -0
- data/lib/ammitto/cli/sources_command.rb +89 -0
- data/lib/ammitto/cli/status_command.rb +137 -0
- data/lib/ammitto/cli.rb +322 -0
- data/lib/ammitto/client/api_client.rb +94 -0
- data/lib/ammitto/client/cache.rb +126 -0
- data/lib/ammitto/client/cache_manager.rb +127 -0
- data/lib/ammitto/config/defaults.rb +97 -0
- data/lib/ammitto/config/env_provider.rb +81 -0
- data/lib/ammitto/config/override_resolver.rb +89 -0
- data/lib/ammitto/configuration.rb +131 -0
- data/lib/ammitto/data/repository.rb +323 -0
- data/lib/ammitto/errors/base_error.rb +212 -0
- data/lib/ammitto/exporter/json_ld_export.rb +418 -0
- data/lib/ammitto/exporter/simple_exporter.rb +196 -0
- data/lib/ammitto/extractors/au_extractor.rb +466 -0
- data/lib/ammitto/extractors/base_extractor.rb +182 -0
- data/lib/ammitto/extractors/ca_extractor.rb +253 -0
- data/lib/ammitto/extractors/ch_extractor.rb +288 -0
- data/lib/ammitto/extractors/cn_extractor.rb +281 -0
- data/lib/ammitto/extractors/eu_extractor.rb +453 -0
- data/lib/ammitto/extractors/eu_vessels_extractor.rb +76 -0
- data/lib/ammitto/extractors/jp_extractor.rb +84 -0
- data/lib/ammitto/extractors/nz_extractor.rb +73 -0
- data/lib/ammitto/extractors/registry.rb +113 -0
- data/lib/ammitto/extractors/ru_extractor.rb +278 -0
- data/lib/ammitto/extractors/tr_extractor.rb +110 -0
- data/lib/ammitto/extractors/uk_extractor.rb +403 -0
- data/lib/ammitto/extractors/un_extractor.rb +236 -0
- data/lib/ammitto/extractors/un_vessels_extractor.rb +84 -0
- data/lib/ammitto/extractors/us_extractor.rb +306 -0
- data/lib/ammitto/extractors/wb_extractor.rb +283 -0
- data/lib/ammitto/logger.rb +112 -0
- data/lib/ammitto/models/address.rb +50 -0
- data/lib/ammitto/models/aircraft_entity.rb +73 -0
- data/lib/ammitto/models/birth_info.rb +47 -0
- data/lib/ammitto/models/contact_info.rb +33 -0
- data/lib/ammitto/models/entity.rb +77 -0
- data/lib/ammitto/models/entity_link.rb +58 -0
- data/lib/ammitto/models/identification.rb +61 -0
- data/lib/ammitto/models/name_variant.rb +57 -0
- data/lib/ammitto/models/organization_entity.rb +82 -0
- data/lib/ammitto/models/person_entity.rb +81 -0
- data/lib/ammitto/models/source_reference.rb +28 -0
- data/lib/ammitto/models/tonnage.rb +31 -0
- data/lib/ammitto/models/vessel_entity.rb +83 -0
- data/lib/ammitto/ontology/entities/aircraft_entity.rb +145 -0
- data/lib/ammitto/ontology/entities/entity.rb +136 -0
- data/lib/ammitto/ontology/entities/organization_entity.rb +186 -0
- data/lib/ammitto/ontology/entities/person_entity.rb +175 -0
- data/lib/ammitto/ontology/entities/vessel_entity.rb +212 -0
- data/lib/ammitto/ontology/entities.rb +38 -0
- data/lib/ammitto/ontology/ontology.rb +182 -0
- data/lib/ammitto/ontology/sanction/authority.rb +65 -0
- data/lib/ammitto/ontology/sanction/sanction_entry.rb +182 -0
- data/lib/ammitto/ontology/sanction/sanction_reason.rb +117 -0
- data/lib/ammitto/ontology/sanction/sanction_regime.rb +58 -0
- data/lib/ammitto/ontology/sanction/status_history.rb +83 -0
- data/lib/ammitto/ontology/sanction.rb +20 -0
- data/lib/ammitto/ontology/types.rb +210 -0
- data/lib/ammitto/ontology/value_objects/address.rb +116 -0
- data/lib/ammitto/ontology/value_objects/birth_info.rb +121 -0
- data/lib/ammitto/ontology/value_objects/contact_info.rb +78 -0
- data/lib/ammitto/ontology/value_objects/entity_link.rb +117 -0
- data/lib/ammitto/ontology/value_objects/identification.rb +88 -0
- data/lib/ammitto/ontology/value_objects/legal_instrument.rb +116 -0
- data/lib/ammitto/ontology/value_objects/name_variant.rb +146 -0
- data/lib/ammitto/ontology/value_objects/sanction_effect.rb +98 -0
- data/lib/ammitto/ontology/value_objects/source_reference.rb +74 -0
- data/lib/ammitto/ontology/value_objects/temporal_period.rb +98 -0
- data/lib/ammitto/ontology/value_objects/tonnage.rb +71 -0
- data/lib/ammitto/ontology/value_objects.rb +28 -0
- data/lib/ammitto/ontology.rb +163 -0
- data/lib/ammitto/options/registry.rb +248 -0
- data/lib/ammitto/parsers/cn_announcement_parser.rb +194 -0
- data/lib/ammitto/parsers/cn_anti_sanctions_scraper.rb +273 -0
- data/lib/ammitto/parsers/ru_list_parser.rb +155 -0
- data/lib/ammitto/sanction/authority.rb +61 -0
- data/lib/ammitto/sanction/legal_instrument.rb +54 -0
- data/lib/ammitto/sanction/list_type.rb +44 -0
- data/lib/ammitto/sanction/official_announcement.rb +40 -0
- data/lib/ammitto/sanction/raw_source_data.rb +47 -0
- data/lib/ammitto/sanction/sanction_effect.rb +51 -0
- data/lib/ammitto/sanction/sanction_entry.rb +127 -0
- data/lib/ammitto/sanction/sanction_reason.rb +48 -0
- data/lib/ammitto/sanction/sanction_regime.rb +32 -0
- data/lib/ammitto/sanction/status_change.rb +87 -0
- data/lib/ammitto/sanction/temporal_period.rb +55 -0
- data/lib/ammitto/schema/context.rb +217 -0
- data/lib/ammitto/schema/validator.rb +138 -0
- data/lib/ammitto/scrapers/base_page.rb +183 -0
- data/lib/ammitto/scrapers/cn/cn_sanctions_scraper.rb +152 -0
- data/lib/ammitto/scrapers/cn/mfa_page.rb +293 -0
- data/lib/ammitto/scrapers/cn/mofcom_page.rb +346 -0
- data/lib/ammitto/scrapers/ru/mid_page.rb +339 -0
- data/lib/ammitto/scrapers/ru/ru_sanctions_scraper.rb +110 -0
- data/lib/ammitto/search/query_builder.rb +77 -0
- data/lib/ammitto/search/result_set.rb +182 -0
- data/lib/ammitto/serialization/json_ld_graph_exporter.rb +688 -0
- data/lib/ammitto/serialization/json_ld_serializer.rb +439 -0
- data/lib/ammitto/serialization/ontology_exporter.rb +385 -0
- data/lib/ammitto/serialization/rdf_serializer.rb +241 -0
- data/lib/ammitto/serialization/search_index_exporter.rb +448 -0
- data/lib/ammitto/serialization/turtle_exporter.rb +262 -0
- data/lib/ammitto/sources/au/sanctions_list.rb +762 -0
- data/lib/ammitto/sources/au/transformer.rb +319 -0
- data/lib/ammitto/sources/au.rb +51 -0
- data/lib/ammitto/sources/au_source.rb +38 -0
- data/lib/ammitto/sources/base_source.rb +148 -0
- data/lib/ammitto/sources/ca/sanctions_list.rb +127 -0
- data/lib/ammitto/sources/ca/transformer.rb +140 -0
- data/lib/ammitto/sources/ca.rb +51 -0
- data/lib/ammitto/sources/ca_source.rb +38 -0
- data/lib/ammitto/sources/ch/sanctions_list.rb +270 -0
- data/lib/ammitto/sources/ch/transformer.rb +123 -0
- data/lib/ammitto/sources/ch.rb +51 -0
- data/lib/ammitto/sources/ch_source.rb +38 -0
- data/lib/ammitto/sources/cn/sanctions_list.rb +155 -0
- data/lib/ammitto/sources/cn/transformer.rb +216 -0
- data/lib/ammitto/sources/cn.rb +60 -0
- data/lib/ammitto/sources/cn_source.rb +55 -0
- data/lib/ammitto/sources/eu/address.rb +56 -0
- data/lib/ammitto/sources/eu/birthdate.rb +75 -0
- data/lib/ammitto/sources/eu/citizenship.rb +46 -0
- data/lib/ammitto/sources/eu/export.rb +36 -0
- data/lib/ammitto/sources/eu/identification.rb +46 -0
- data/lib/ammitto/sources/eu/name_alias.rb +66 -0
- data/lib/ammitto/sources/eu/processed_entity.rb +193 -0
- data/lib/ammitto/sources/eu/regulation.rb +53 -0
- data/lib/ammitto/sources/eu/regulation_summary.rb +39 -0
- data/lib/ammitto/sources/eu/sanction_entity.rb +109 -0
- data/lib/ammitto/sources/eu/subject_type.rb +31 -0
- data/lib/ammitto/sources/eu/transformer.rb +345 -0
- data/lib/ammitto/sources/eu.rb +25 -0
- data/lib/ammitto/sources/eu_source.rb +48 -0
- data/lib/ammitto/sources/eu_vessels/sanctions_list.rb +68 -0
- data/lib/ammitto/sources/eu_vessels/transformer.rb +118 -0
- data/lib/ammitto/sources/eu_vessels/vessel.rb +59 -0
- data/lib/ammitto/sources/eu_vessels.rb +52 -0
- data/lib/ammitto/sources/jp/entity.rb +71 -0
- data/lib/ammitto/sources/jp/sanctions_list.rb +60 -0
- data/lib/ammitto/sources/jp/transformer.rb +162 -0
- data/lib/ammitto/sources/jp.rb +49 -0
- data/lib/ammitto/sources/nz/entity.rb +113 -0
- data/lib/ammitto/sources/nz/individual.rb +155 -0
- data/lib/ammitto/sources/nz/sanctions_list.rb +112 -0
- data/lib/ammitto/sources/nz/ship.rb +116 -0
- data/lib/ammitto/sources/nz/transformer.rb +192 -0
- data/lib/ammitto/sources/nz.rb +56 -0
- data/lib/ammitto/sources/registry.rb +71 -0
- data/lib/ammitto/sources/ru/sanctions_list.rb +143 -0
- data/lib/ammitto/sources/ru/transformer.rb +219 -0
- data/lib/ammitto/sources/ru.rb +60 -0
- data/lib/ammitto/sources/ru_source.rb +48 -0
- data/lib/ammitto/sources/tr/sanctions_list.rb +196 -0
- data/lib/ammitto/sources/tr/transformer.rb +151 -0
- data/lib/ammitto/sources/tr.rb +64 -0
- data/lib/ammitto/sources/uk/address.rb +83 -0
- data/lib/ammitto/sources/uk/date_normalizer.rb +73 -0
- data/lib/ammitto/sources/uk/designation.rb +214 -0
- data/lib/ammitto/sources/uk/designations.rb +50 -0
- data/lib/ammitto/sources/uk/individual_details.rb +125 -0
- data/lib/ammitto/sources/uk/name.rb +71 -0
- data/lib/ammitto/sources/uk/non_latin_name.rb +28 -0
- data/lib/ammitto/sources/uk/sanctions_indicators.rb +175 -0
- data/lib/ammitto/sources/uk/transformer.rb +331 -0
- data/lib/ammitto/sources/uk.rb +57 -0
- data/lib/ammitto/sources/uk_source.rb +44 -0
- data/lib/ammitto/sources/un/consolidated_list.rb +48 -0
- data/lib/ammitto/sources/un/designation.rb +25 -0
- data/lib/ammitto/sources/un/entities_wrapper.rb +23 -0
- data/lib/ammitto/sources/un/entity.rb +75 -0
- data/lib/ammitto/sources/un/entity_address.rb +35 -0
- data/lib/ammitto/sources/un/entity_alias.rb +26 -0
- data/lib/ammitto/sources/un/individual.rb +122 -0
- data/lib/ammitto/sources/un/individual_address.rb +35 -0
- data/lib/ammitto/sources/un/individual_alias.rb +26 -0
- data/lib/ammitto/sources/un/individual_date_of_birth.rb +29 -0
- data/lib/ammitto/sources/un/individual_document.rb +32 -0
- data/lib/ammitto/sources/un/individual_place_of_birth.rb +29 -0
- data/lib/ammitto/sources/un/individuals_wrapper.rb +23 -0
- data/lib/ammitto/sources/un/nationality.rb +23 -0
- data/lib/ammitto/sources/un/transformer.rb +421 -0
- data/lib/ammitto/sources/un/value_wrapper.rb +25 -0
- data/lib/ammitto/sources/un.rb +30 -0
- data/lib/ammitto/sources/un_source.rb +52 -0
- data/lib/ammitto/sources/un_vessels/sanctions_list.rb +60 -0
- data/lib/ammitto/sources/un_vessels/transformer.rb +139 -0
- data/lib/ammitto/sources/un_vessels/vessel.rb +119 -0
- data/lib/ammitto/sources/un_vessels.rb +52 -0
- data/lib/ammitto/sources/us/address.rb +44 -0
- data/lib/ammitto/sources/us/address_list.rb +23 -0
- data/lib/ammitto/sources/us/aka.rb +39 -0
- data/lib/ammitto/sources/us/aka_list.rb +23 -0
- data/lib/ammitto/sources/us/date_of_birth_item.rb +29 -0
- data/lib/ammitto/sources/us/date_of_birth_list.rb +23 -0
- data/lib/ammitto/sources/us/id.rb +38 -0
- data/lib/ammitto/sources/us/id_list.rb +23 -0
- data/lib/ammitto/sources/us/place_of_birth_item.rb +29 -0
- data/lib/ammitto/sources/us/place_of_birth_list.rb +23 -0
- data/lib/ammitto/sources/us/program_list.rb +23 -0
- data/lib/ammitto/sources/us/publish_information.rb +26 -0
- data/lib/ammitto/sources/us/sdn_entry.rb +117 -0
- data/lib/ammitto/sources/us/sdn_list.rb +59 -0
- data/lib/ammitto/sources/us/transformer.rb +405 -0
- data/lib/ammitto/sources/us.rb +29 -0
- data/lib/ammitto/sources/us_source.rb +51 -0
- data/lib/ammitto/sources/wb/response.rb +59 -0
- data/lib/ammitto/sources/wb/sanctioned_firm.rb +121 -0
- data/lib/ammitto/sources/wb/transformer.rb +216 -0
- data/lib/ammitto/sources/wb.rb +16 -0
- data/lib/ammitto/sources/wb_source.rb +39 -0
- data/lib/ammitto/transformers/base_transformer.rb +226 -0
- data/lib/ammitto/transformers/registry.rb +85 -0
- data/lib/ammitto/version.rb +1 -1
- data/lib/ammitto.rb +161 -35
- data/scripts/parse_jp_end_user_list.rb +65 -0
- data/scripts/parse_un_vessels_list.rb +88 -0
- metadata +391 -38
- data/.github/workflows/macos.yml +0 -34
- data/.github/workflows/ubuntu.yml +0 -32
- data/.github/workflows/windows.yml +0 -35
- data/.idea/.gitignore +0 -8
- data/.idea/ammitto.iml +0 -16
- data/.idea/inspectionProfiles/Project_Default.xml +0 -6
- data/.idea/inspectionProfiles/profiles_settings.xml +0 -5
- data/.idea/misc.xml +0 -4
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -6
- data/README.md +0 -43
- data/lib/ammitto/address.rb +0 -17
- data/lib/ammitto/document.rb +0 -16
- data/lib/ammitto/hash.rb +0 -15
- data/lib/ammitto/sanction_item.rb +0 -26
- data/lib/ammitto/sanction_item_collection.rb +0 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b8083a37ce1c0b7fbb4bab41d0468428540dde0203361784fcce14ee17144244
|
|
4
|
+
data.tar.gz: f1927fb6fbf2974937cfbe0054fd467f1e6328e0856009f24f3185e398579aa3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 541bfdd4743b69e63c90fa12cd4829eb907cc5209739bac6abc46ead3dee9ffcd2d65340efa43ee73f5e9e3351d73dd27be3e56ca956929f1fd7a1ef1ba454f4
|
|
7
|
+
data.tar.gz: 35c9eda6cedc4d5564916e7a556f84b52057836455dc81ca232841a95061b38d287741af8dda9e78fd701c946ef2e02a9ab3dc5f2941f68939b861ccf5a2a1d0
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
name: CI
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches: [main]
|
|
8
|
+
pull_request:
|
|
9
|
+
branches: ['**']
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
test:
|
|
13
|
+
name: Test on Ruby ${{ matrix.ruby }}
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
ruby: ['3.0', '3.1', '3.2', '3.3']
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- name: Set up Ruby
|
|
23
|
+
uses: ruby/setup-ruby@v1
|
|
24
|
+
with:
|
|
25
|
+
ruby-version: ${{ matrix.ruby }}
|
|
26
|
+
bundler-cache: true
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: bundle install
|
|
30
|
+
|
|
31
|
+
- name: Run specs
|
|
32
|
+
run: bundle exec rake
|
|
33
|
+
|
|
34
|
+
- name: Run Rubocop
|
|
35
|
+
run: bundle exec rubocop
|
|
36
|
+
|
|
37
|
+
- name: Upload coverage
|
|
38
|
+
if: matrix.ruby == '3.2'
|
|
39
|
+
uses: actions/upload-artifact@v4
|
|
40
|
+
with:
|
|
41
|
+
name: coverage-${{ matrix.ruby }}
|
|
42
|
+
path: coverage/
|
|
43
|
+
|
|
44
|
+
lint:
|
|
45
|
+
name: Lint
|
|
46
|
+
runs-on: ubuntu-latest
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@v4
|
|
49
|
+
|
|
50
|
+
- name: Set up Ruby
|
|
51
|
+
uses: ruby/setup-ruby@v1
|
|
52
|
+
with:
|
|
53
|
+
ruby-version: '3.2'
|
|
54
|
+
bundler-cache: true
|
|
55
|
+
|
|
56
|
+
- name: Run Rubocop
|
|
57
|
+
run: bundle exec rubocop --parallel
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'docs/**'
|
|
9
|
+
- '.github/workflows/docs.yml'
|
|
10
|
+
pull_request:
|
|
11
|
+
paths:
|
|
12
|
+
- 'docs/**'
|
|
13
|
+
workflow_dispatch:
|
|
14
|
+
|
|
15
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
pages: write
|
|
19
|
+
id-token: write
|
|
20
|
+
|
|
21
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
22
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
23
|
+
concurrency:
|
|
24
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
25
|
+
cancel-in-progress: false
|
|
26
|
+
|
|
27
|
+
jobs:
|
|
28
|
+
build:
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout
|
|
32
|
+
uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- name: Setup Ruby
|
|
35
|
+
uses: ruby/setup-ruby@v1
|
|
36
|
+
with:
|
|
37
|
+
ruby-version: '3.4'
|
|
38
|
+
bundler-cache: true
|
|
39
|
+
cache-version: 0
|
|
40
|
+
working-directory: docs
|
|
41
|
+
|
|
42
|
+
- name: Setup Pages
|
|
43
|
+
id: pages
|
|
44
|
+
uses: actions/configure-pages@v5
|
|
45
|
+
|
|
46
|
+
- name: Build with Jekyll
|
|
47
|
+
run: bundle exec jekyll build --verbose --trace --baseurl "${{ steps.pages.outputs.base_path }}"
|
|
48
|
+
working-directory: docs
|
|
49
|
+
env:
|
|
50
|
+
JEKYLL_ENV: production
|
|
51
|
+
JEKYLL_LOG_LEVEL: debug
|
|
52
|
+
|
|
53
|
+
- name: Upload artifact
|
|
54
|
+
uses: actions/upload-pages-artifact@v4
|
|
55
|
+
with:
|
|
56
|
+
path: docs/_site
|
|
57
|
+
|
|
58
|
+
# Deployment job
|
|
59
|
+
deploy:
|
|
60
|
+
environment:
|
|
61
|
+
name: github-pages
|
|
62
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
63
|
+
if: ${{ github.ref == 'refs/heads/main' }}
|
|
64
|
+
runs-on: ubuntu-latest
|
|
65
|
+
needs: build
|
|
66
|
+
steps:
|
|
67
|
+
- name: Deploy to GitHub Pages
|
|
68
|
+
id: deployment
|
|
69
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
name: fetch-sources
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '0 6 * * *' # Daily at 6am UTC
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
sources:
|
|
9
|
+
description: 'Comma-separated list of sources to fetch'
|
|
10
|
+
required: false
|
|
11
|
+
default: 'all'
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
fetch:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- uses: ruby/setup-ruby@v1
|
|
20
|
+
with:
|
|
21
|
+
bundler-cache: true
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: bundle install --jobs 4 --retry 3
|
|
25
|
+
|
|
26
|
+
- name: Fetch latest data
|
|
27
|
+
run: |
|
|
28
|
+
bundle exec ammitto fetch ${{ github.event.inputs.sources != 'all' && github.event.inputs.sources || '' }} --verbose
|
|
29
|
+
continue-on-error: true
|
|
30
|
+
|
|
31
|
+
- name: Process data
|
|
32
|
+
run: bundle exec ammitto process --verbose
|
|
33
|
+
continue-on-error: true
|
|
34
|
+
|
|
35
|
+
- name: Export JSON-LD
|
|
36
|
+
run: bundle exec ammitto export jsonld --output-dir ./data/api/v1 --verbose
|
|
37
|
+
|
|
38
|
+
- name: Generate all formats
|
|
39
|
+
run: |
|
|
40
|
+
bundle exec ammitto export ttl --output-dir ./data/api/v1
|
|
41
|
+
bundle exec ammitto export nt --output-dir ./data/api/v1
|
|
42
|
+
continue-on-error: true
|
|
43
|
+
|
|
44
|
+
- name: Commit changes
|
|
45
|
+
run: |
|
|
46
|
+
git config user.name "github-actions[bot]"
|
|
47
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
48
|
+
git add data/api/v1
|
|
49
|
+
git diff --quiet && git diff --staged --quiet || git commit -m "chore(data): update sanctions data $(date '+%Y-%m-%d')"
|
|
50
|
+
|
|
51
|
+
- name: Push changes
|
|
52
|
+
run: git push
|
|
53
|
+
if: success()
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
name: Link Checker
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'docs/**'
|
|
9
|
+
pull_request:
|
|
10
|
+
paths:
|
|
11
|
+
- 'docs/**'
|
|
12
|
+
schedule:
|
|
13
|
+
# Run weekly on Sunday at 00:00 UTC
|
|
14
|
+
- cron: '0 0 * * 0'
|
|
15
|
+
workflow_dispatch:
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
link_checker:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Setup Ruby
|
|
24
|
+
uses: ruby/setup-ruby@v1
|
|
25
|
+
with:
|
|
26
|
+
ruby-version: '3.4'
|
|
27
|
+
bundler-cache: true
|
|
28
|
+
working-directory: docs
|
|
29
|
+
|
|
30
|
+
- name: Build site
|
|
31
|
+
env:
|
|
32
|
+
JEKYLL_ENV: production
|
|
33
|
+
run: bundle exec jekyll build --trace
|
|
34
|
+
working-directory: docs
|
|
35
|
+
|
|
36
|
+
- name: Restore lychee cache
|
|
37
|
+
uses: actions/cache@v4
|
|
38
|
+
with:
|
|
39
|
+
path: .lycheecache
|
|
40
|
+
key: cache-lychee-${{ github.sha }}
|
|
41
|
+
restore-keys: cache-lychee-
|
|
42
|
+
|
|
43
|
+
- name: Check if site was built
|
|
44
|
+
run: |
|
|
45
|
+
if [ ! -d "_site" ]; then
|
|
46
|
+
echo "Error: _site directory not created"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
echo "Site built successfully"
|
|
50
|
+
ls -la _site/
|
|
51
|
+
working-directory: docs
|
|
52
|
+
|
|
53
|
+
- name: Link Checker
|
|
54
|
+
uses: lycheeverse/lychee-action@v2
|
|
55
|
+
with:
|
|
56
|
+
args: >-
|
|
57
|
+
--verbose
|
|
58
|
+
--no-progress
|
|
59
|
+
--config docs/lychee.toml
|
|
60
|
+
--root-dir "$(pwd)/docs/_site"
|
|
61
|
+
--base-url file://${{ github.workspace }}/docs/_site
|
|
62
|
+
'docs/_site/**/*.html'
|
|
63
|
+
fail: true
|
|
64
|
+
output: link-check-results.md
|
|
65
|
+
format: markdown
|
|
66
|
+
workingDirectory: .
|
|
67
|
+
|
|
68
|
+
- name: Upload link check results
|
|
69
|
+
if: always()
|
|
70
|
+
uses: actions/upload-artifact@v4
|
|
71
|
+
with:
|
|
72
|
+
name: link-check-results
|
|
73
|
+
path: link-check-results.md
|
|
74
|
+
retention-days: 30
|
|
75
|
+
|
|
76
|
+
- name: Comment PR with results
|
|
77
|
+
if: failure() && github.event_name == 'pull_request'
|
|
78
|
+
uses: actions/github-script@v7
|
|
79
|
+
with:
|
|
80
|
+
script: |
|
|
81
|
+
const fs = require('fs');
|
|
82
|
+
let comment = '## 🔗 Link Check Failed\n\n';
|
|
83
|
+
|
|
84
|
+
if (fs.existsSync('link-check-results.md')) {
|
|
85
|
+
const results = fs.readFileSync('link-check-results.md', 'utf8');
|
|
86
|
+
comment += '### Results\n\n' + results + '\n\n';
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
github.rest.issues.createComment({
|
|
90
|
+
issue_number: context.issue.number,
|
|
91
|
+
owner: context.repo.owner,
|
|
92
|
+
repo: context.repo.repo,
|
|
93
|
+
body: comment
|
|
94
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
|
2
|
+
# See https://github.com/metanorma/cimas
|
|
3
|
+
name: release
|
|
4
|
+
|
|
5
|
+
permissions:
|
|
6
|
+
contents: write
|
|
7
|
+
packages: write
|
|
8
|
+
id-token: write
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
inputs:
|
|
13
|
+
next_version:
|
|
14
|
+
description: |
|
|
15
|
+
Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
|
|
16
|
+
required: true
|
|
17
|
+
default: "skip"
|
|
18
|
+
repository_dispatch:
|
|
19
|
+
types: [do-release]
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
release:
|
|
23
|
+
uses: metanorma/ci/.github/workflows/rubygems-release.yml@main
|
|
24
|
+
with:
|
|
25
|
+
next_version: ${{ github.event.inputs.next_version }}
|
|
26
|
+
secrets:
|
|
27
|
+
rubygems-api-key: ${{ secrets.AMMITTO_CI_RUBYGEMS_API_KEY }}
|
|
28
|
+
pat_token: ${{ secrets.GITHUB_TOKEN }}
|
data/.gitignore
CHANGED
data/.hound.yml
ADDED
data/.rubocop.yml
CHANGED
|
@@ -1,10 +1,34 @@
|
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
|
2
|
+
|
|
1
3
|
# This project follows the Ribose OSS style guide.
|
|
2
4
|
# https://github.com/riboseinc/oss-guides
|
|
3
5
|
# All project-specific additions and overrides should be specified in this file.
|
|
4
6
|
|
|
5
|
-
inherit_from:
|
|
6
|
-
- https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
|
|
7
7
|
AllCops:
|
|
8
|
-
TargetRubyVersion:
|
|
9
|
-
Rails:
|
|
10
|
-
|
|
8
|
+
TargetRubyVersion: 3.0
|
|
9
|
+
Rails:
|
|
10
|
+
Enabled: false
|
|
11
|
+
Layout:
|
|
12
|
+
IndentationWidth: 2
|
|
13
|
+
LineLength: 80
|
|
14
|
+
NewCops: enable
|
|
15
|
+
SuggestExtensions: false
|
|
16
|
+
|
|
17
|
+
Style/FrozenStringLiteralComment:
|
|
18
|
+
Enabled: false
|
|
19
|
+
|
|
20
|
+
Metrics/MethodLength:
|
|
21
|
+
Max: 50
|
|
22
|
+
|
|
23
|
+
Metrics/ClassLength:
|
|
24
|
+
Max: 300
|
|
25
|
+
|
|
26
|
+
Metrics/BlockLength:
|
|
27
|
+
Max: 50
|
|
28
|
+
Exclude:
|
|
29
|
+
- 'spec/**/*.rb'
|
|
30
|
+
- 'docs/**/*.rb'
|
|
31
|
+
|
|
32
|
+
Lint/ConstantDefinitionInBlock:
|
|
33
|
+
Exclude:
|
|
34
|
+
- 'spec/**/*.rb'
|