-
Notifications
You must be signed in to change notification settings - Fork 1
Feat: Add GitHub mappings #97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat: Add GitHub mappings #97
Conversation
WalkthroughThis update introduces a comprehensive suite of files and configurations to enable the transformation and modeling of GitHub data using dbt and associated tools. It adds detailed database schema definitions (both source and target), dbt project scaffolding, transformation mapping configurations for various GitHub entities, and supporting metadata and configuration files. The new files cover the entire pipeline: from raw data extraction definitions, through field-level transformation mappings, to the dbt models that materialize the transformed data. Several transformation files include evaluation annotations and indicate missing or placeholder mappings for some fields. The update also introduces project-level configuration files for dbt, dependency management, and documentation, as well as a record of rejected mappings. Changes
Sequence Diagram(s)sequenceDiagram
participant Source as GitHub Source Data
participant Transform as Transform Configurations
participant dbt as dbt Models
participant Target as Target Schema
Source->>Transform: Provide raw GitHub data
Transform->>dbt: Define field-level mappings and transformations
dbt->>Target: Materialize transformed tables/views in target schema
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 SQLFluff (3.3.0)catalog/github/airbyte-interop-dbt-project/models/repo_team.sqlUser Error: No dialect was specified. You must configure a dialect or specify one on the command line using --dialect after the command. Available dialects: catalog/github/airbyte-interop-dbt-project/models/pull_request.sqlUser Error: No dialect was specified. You must configure a dialect or specify one on the command line using --dialect after the command. Available dialects: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving with follow-on action required:
The catalog/github/README.md
is missing the mappings and evaluations. I'll review that and try to resolve.
poe morph-build github --with-generate
/poe morph-eval github
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 18
🧹 Nitpick comments (19)
build/github/erd/source-schema-erd.dbml (2)
335-371
: Denormalise‑heavyissues
table will explode column widths & break warehouse limits
labels
,assignees
, andpull_request
are stored as arrays / JSON blobs.
Warehouses such as Snowflake/Redshift often impose 16 MB per‑row limits; wide JSON also prevents efficient filtering.Consider:
- Keeping only the canonical issue columns here.
- Moving repeatable entities to bridging tables (
issue_labels
,issue_assignees
, etc.) – you already haveissue_labels
upstream, leverage it instead of duplicating.( )
865-888
: Potential reserved‑word collision:type
/user
columns
In many SQL dialectsuser
andtype
are keywords. Although DBML quotes them, generated DDL for BigQuery/Postgres may fail.Options:
• Rename touser_type
,account_type
,github_user
, etc.
• Or always quote identifiers in downstream DDL ("user"
).( )
catalog/github/README.md (1)
1-9
: Enrich README with generation & maintenance instructions
The file currently tells what but not how/why. Consider adding:
- The command used (
morph-build github --with-generate
) and prerequisites.- How to re‑generate after mapping edits.
- Ownership / CODEOWNERS entry.
- Link to the modelling doc or ADR explaining design decisions.
This boosts onboarding & long‑term maintainability.
catalog/github/airbyte-interop-dbt-project/.gitignore (1)
1-8
: Simplify redundant ignore patternsThe entry
.dbt/
already covers its subdirectories (logs/
,data/
), so you can remove the redundant lines to keep the.gitignore
concise.Apply this diff to remove redundancy:
-.dbt/logs/ -.dbt/data/catalog/github/airbyte-interop-dbt-project/models/team.sql (1)
2-17
: Optional: Simplify query by removing unnecessary CTESince the CTE simply selects all columns directly from the source, you can streamline the model by querying the source in place. For example:
-WITH teams AS ( - SELECT * FROM {{ source('github', 'teams') }} -) - -SELECT - teams.id AS id, - teams.description AS description, - teams.name AS name, - teams.parent AS parent_id, - teams.privacy AS privacy, - teams.slug AS slug -FROM teams +SELECT + id AS id, + description AS description, + name AS name, + parent AS parent_id, + privacy AS privacy, + slug AS slug +FROM {{ source('github', 'teams') }}This reduces one level of indirection without impacting readability.
catalog/github/airbyte-interop-dbt-project/models/issue_merged.sql (1)
5-7
: Limit CTE to required fields
Currently the CTE usesSELECT *
, but only_airbyte_extracted_at
is referenced downstream. Restricting it to just the needed column(s) will improve readability and query performance.catalog/github/airbyte-interop-dbt-project/models/issue_comment.sql (2)
5-7
: Limit CTE to used fields
The CTE currently pulls all columns (SELECT *
), but onlyid
,user.id
, andcreated_at
are used. Narrowing the CTE to those fields will enhance clarity and performance.
11-14
: Validate and refineissue_id
placeholder
Settingissue_id
toNULL
means comments won’t link to issues. Confirm whether this is a temporary placeholder. Additionally, consider explicitly casting theNULL
to the target type (e.g.,CAST(NULL AS INTEGER)
) to prevent downstream schema mismatches.catalog/github/airbyte-interop-dbt-project/models/pull_request_review.sql (1)
5-7
: Limit CTE to required fields
The CTE currently doesSELECT *
, but only a subset of fields (id
,pull_request_url
,submitted_at
,state
,user.id
) are used. Restricting to those fields improves performance and readability.build/github/airbyte-interop.morph-lock.toml (1)
51-66
: Updateunmapped_target_tables
to reflect implemented models
Tables likeissue_comment
,issue_merged
, andpull_request_review
now have corresponding DBT models and transforms. Consider removing them from this list to keep the manifest accurate.catalog/github/airbyte-interop-dbt-project/profiles/profiles.yml (1)
6-9
: Consider improving path resolution.Using a relative path (
../../../../.data/github.duckdb
) may break if the project structure changes. Consider using an environment variable or{{ project_dir }}
macro for more robust path management.src/transforms/github/transforms/issue_label.yml (1)
6-12
:❓ Verification inconclusive
Critical: Missing expressions for
issue_id
andlabel_id
Both fields are markedMISSING
—this must be filled in before approval. Likely expressions are:expression: issue_labels.issue_id expression: issue_labels.label_idPlease verify these column names in the source schema and update accordingly.
🏁 Script executed:
#!/bin/bash # Search for references to the issue_labels table and its columns rg "issue_labels" -n -C2 rg -i "create table.*issue_labels" -n -C2 rg "issue_id" -n -C2 rg "label_id" -n -C2Length of output: 35475
🏁 Script executed:
#!/bin/bash # Extract the property names for the issue_labels stream from the Airbyte catalog rg -A20 -B2 '"stream": "issue_labels"' -n build/github/airbyte-catalog.json | rg '"name":'Length of output: 92
🏁 Script executed:
#!/bin/bash # Attempt to extract column properties for the issue_labels stream from the Airbyte catalog FILE="build/github/airbyte-catalog.json" if jq -e '.[0]' "$FILE" > /dev/null 2>&1; then # Root is an array jq -r '.[] | select(.name=="issue_labels") | .json_schema.properties | keys[]' "$FILE" elif jq -e '.streams' "$FILE" > /dev/null 2>&1; then # Nested under streams jq -r '.streams[] | select(.name=="issue_labels") | .json_schema.properties | keys[]' "$FILE" else echo "Not found" fiLength of output: 319
Missing
issue_id
&label_id
expressions – manual verification requiredThe Airbyte catalog for
github.issue_labels
only exposes these top‑level properties:
- color
- default
- description
- id
- name
- node_id
- repository
- url
There is no obvious
issue_id
field in the source. Please confirm which property (or nested value) represents the issue foreign key, and update the mapping accordingly. You can reliably map the label identifier as follows:• In
src/transforms/github/transforms/issue_label.yml
(lines 6–12):
label_id.expression
:issue_labels.id
- Verify and set
issue_id.expression
to the correct source fieldsrc/transforms/github/transforms/user.yml (1)
13-18
:❓ Verification inconclusive
Critical:
name
andcompany
stillMISSING
These fields need expressions—likely:expression: users.name expression: users.companyPlease confirm these columns exist on
github.users
and update.
🏁 Script executed:
#!/bin/bash # Display the first 200 lines of the user transform to inspect how other fields are mapped sed -n '1,200p' src/transforms/github/transforms/user.ymlLength of output: 1658
🏁 Script executed:
#!/bin/bash # Search for occurrences of 'github.users' across the repository to locate its schema definition rg "github\\.users" -nLength of output: 95
Critical:
name
andcompany
mappings are stillMISSING
Theuser
transform insrc/transforms/github/transforms/user.yml
currently has:name: expression: MISSING description: The name of the user company: expression: MISSING description: The company of the user.To complete this mapping, update to:
name: expression: users.name description: The name of the user company: expression: users.company description: The company of the user.Please confirm that
users.name
andusers.company
exist on thegithub.users
source stream and adjust if the field names differ.• File:
src/transforms/github/transforms/user.yml
(lines ~13–18)src/transforms/github/transforms/pull_request.yml (1)
13-20
: Use YAML block scalars for descriptions.
Long, multi-line descriptions are more robust when expressed with a block scalar. For example:head_repo_id: expression: pull_requests.head.repo_id description: | Foreign key that references the repository table, referencing the current branch.Apply the same pattern to
head_user_id
to avoid potential indentation issues.src/transforms/github/transforms/issue.yml (2)
34-35
: Fix typo in description.
The description forpull_request
reads “ot regular issue”; update it to:- description: Boolean for is the issue is a pull request (true) ot regular issue (false) + description: Boolean indicating if the issue is a pull request (true) or a regular issue (false)
24-27
: Use YAML block scalars for multiline descriptions.
Formilestone_id
(and any other field with wrapped lines), switch to the|
syntax:milestone_id: expression: issues.milestone.id description: | Foreign key that references the milestone table representing the current milestone the issue is in.This ensures consistent indentation and parsing.
build/github/requirements/airbyte-interop/src_dbt_requirements.yml (2)
8-9
: Normalize Jinja syntax spacing.
Ensure consistent spaces inside Jinja delimiters:- database: "{% if target.type != 'spark'%}{{ var('github_database', target.database) }}{% endif %}" + database: "{% if target.type != 'spark' %}{{ var('github_database', target.database) }}{% endif %}" - schema: "{{var ('github_schema', 'github')}}" + schema: "{{ var('github_schema', 'github') }}"Apply similar spacing conventions to all other
{{ var(...) }}
uses in this file.
1-224
: Remove trailing whitespace & fix colon spacing.
Static analysis flags trailing spaces and multiple spaces after colons across many lines. You can bulk-clean the file:sed -i 's/[[:space:]]\+$//g' build/github/requirements/airbyte-interop/src_dbt_requirements.yml
This will strip trailing whitespace; manually verify single-space after each colon in mappings.
🧰 Tools
🪛 YAMLlint (1.35.1)
[warning] 19-19: too many spaces after colon
(colons)
[warning] 28-28: too many spaces after colon
(colons)
[warning] 49-49: too many spaces after colon
(colons)
[warning] 61-61: too many spaces after colon
(colons)
[warning] 71-71: too many spaces after colon
(colons)
[warning] 85-85: too many spaces after colon
(colons)
[warning] 95-95: too many spaces after colon
(colons)
[warning] 121-121: too many spaces after colon
(colons)
[warning] 127-127: too many spaces after colon
(colons)
[warning] 135-135: too many spaces after colon
(colons)
[error] 140-140: trailing spaces
(trailing-spaces)
[warning] 143-143: too many spaces after colon
(colons)
[warning] 156-156: too many spaces after colon
(colons)
[error] 165-165: trailing spaces
(trailing-spaces)
[warning] 167-167: too many spaces after colon
(colons)
[warning] 174-174: too many spaces after colon
(colons)
[error] 179-179: trailing spaces
(trailing-spaces)
[warning] 182-182: too many spaces after colon
(colons)
[warning] 188-188: too many spaces after colon
(colons)
[warning] 195-195: too many spaces after colon
(colons)
[error] 210-210: trailing spaces
(trailing-spaces)
[warning] 212-212: too many spaces after colon
(colons)
build/github/erd/target-schema-erd.dbml (1)
1-103
: Add primary keys and foreign key relationships.
To fully model the schema, specify PKs and Refs. For example:Table "issue" { id bigint [pk, note: ...] ... } Table "pull_request" { id bigint [pk, note: ...] issue_id bigint [note: ...] head_repo_id bigint [note: ...] head_user_id bigint [note: ...] } Ref: "pull_request"."issue_id" > "issue"."id" Ref: "issue_assignee"."issue_id" > "issue"."id" Ref: "issue_assignee"."user_id" > "user"."id" ...
Include composite PKs on associative tables (
issue_assignee
,repo_team
,issue_label
, etc.).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
build/github/erd/source-schema-erd.svg
is excluded by!**/*.svg
build/github/erd/target-schema-erd.svg
is excluded by!**/*.svg
📒 Files selected for processing (32)
build/github/airbyte-interop.morph-lock.toml
(1 hunks)build/github/erd/source-schema-erd.dbml
(1 hunks)build/github/erd/target-schema-erd.dbml
(1 hunks)build/github/requirements/airbyte-interop/src_dbt_requirements.yml
(1 hunks)catalog/github/README.md
(1 hunks)catalog/github/airbyte-interop-dbt-project/.gitignore
(1 hunks)catalog/github/airbyte-interop-dbt-project/dbt_project.yml
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/issue.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/issue_comment.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/issue_merged.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/label.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/pull_request_review.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/team.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/user.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/package-lock.yml
(1 hunks)catalog/github/airbyte-interop-dbt-project/packages.yml
(1 hunks)catalog/github/airbyte-interop-dbt-project/poe_tasks.toml
(1 hunks)catalog/github/airbyte-interop-dbt-project/profiles/profiles.yml
(1 hunks)src/transforms/github/transforms/issue.yml
(1 hunks)src/transforms/github/transforms/issue_assignee.yml
(1 hunks)src/transforms/github/transforms/issue_closed_history.yml
(1 hunks)src/transforms/github/transforms/issue_comment.yml
(1 hunks)src/transforms/github/transforms/issue_label.yml
(1 hunks)src/transforms/github/transforms/issue_merged.yml
(1 hunks)src/transforms/github/transforms/label.yml
(1 hunks)src/transforms/github/transforms/pull_request.yml
(1 hunks)src/transforms/github/transforms/pull_request_review.yml
(1 hunks)src/transforms/github/transforms/repo_team.yml
(1 hunks)src/transforms/github/transforms/repository.yml
(1 hunks)src/transforms/github/transforms/requested_reviewer_history.yml
(1 hunks)src/transforms/github/transforms/team.yml
(1 hunks)src/transforms/github/transforms/user.yml
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
build/github/requirements/airbyte-interop/src_dbt_requirements.yml
[warning] 19-19: too many spaces after colon
(colons)
[warning] 28-28: too many spaces after colon
(colons)
[warning] 49-49: too many spaces after colon
(colons)
[warning] 61-61: too many spaces after colon
(colons)
[warning] 71-71: too many spaces after colon
(colons)
[warning] 85-85: too many spaces after colon
(colons)
[warning] 95-95: too many spaces after colon
(colons)
[warning] 121-121: too many spaces after colon
(colons)
[warning] 127-127: too many spaces after colon
(colons)
[warning] 135-135: too many spaces after colon
(colons)
[error] 140-140: trailing spaces
(trailing-spaces)
[warning] 143-143: too many spaces after colon
(colons)
[warning] 156-156: too many spaces after colon
(colons)
[error] 165-165: trailing spaces
(trailing-spaces)
[warning] 167-167: too many spaces after colon
(colons)
[warning] 174-174: too many spaces after colon
(colons)
[error] 179-179: trailing spaces
(trailing-spaces)
[warning] 182-182: too many spaces after colon
(colons)
[warning] 188-188: too many spaces after colon
(colons)
[warning] 195-195: too many spaces after colon
(colons)
[error] 210-210: trailing spaces
(trailing-spaces)
[warning] 212-212: too many spaces after colon
(colons)
🔇 Additional comments (44)
catalog/github/airbyte-interop-dbt-project/package-lock.yml (1)
1-4
: Lock file uses SHA‑1 – migrate to SHA‑256
SHA‑1 is considered cryptographically weak. dbt Hub now publishes SHA‑256 hashes; using them improves supply‑chain integrity:-sha1_hash: a158c48c59c2bb7d729d2a4e215aabe5bb4f3353 +sha256_hash: 0c2117fc08b3eac7b8f7d0f7e4b6f8e9c4d4c48c55c2d842f6f4cd0c0d2d4e8c(Replace with the real value from
dbt deps
.)Please run
dbt deps --update
locally and commit the regenerated lock file.catalog/github/airbyte-interop-dbt-project/packages.yml (1)
1-3
: Declaration of dbt_utils dependency is correctThe
packages.yml
correctly declares thedbt_utils
package at version1.1.1
, which aligns with the rest of the dbt project configuration.catalog/github/airbyte-interop-dbt-project/poe_tasks.toml (1)
1-6
:✅ Verification successful
Ensure included task files exist and paths are valid
Verify that the referenced files actually exist under the repository root and that
${POE_GIT_ROOT}
is correctly set in the CI or local environment. This will prevent broken task includes at runtime.Run the following script to confirm the presence of these files:
🏁 Script executed:
#!/bin/bash # Verify included Poe task files exist fd poe_tasks_dbt.toml fd poe_tasks.tomlLength of output: 557
All included Poe task files are present
Bothpoe_tasks_dbt.toml
andpoe_tasks.toml
exist at the repository root, so the${POE_GIT_ROOT}
‑based include paths incatalog/github/airbyte-interop-dbt-project/poe_tasks.toml
are valid. No changes needed.catalog/github/airbyte-interop-dbt-project/models/user.sql (1)
2-15
: Autogenerated user model looks correctThe model aligns with the transform configuration, projecting
id
andlogin
and settingname
andcompany
toNULL
as placeholders for missing source fields. No immediate changes are required.catalog/github/airbyte-interop-dbt-project/models/issue_merged.sql (2)
2-3
: Auto-generated header confirmed
The file correctly includes the Morph auto-generated warning. No manual edits should be applied here.
10-13
: Validate mapping ofissue_id
andmerged_at
Using_airbyte_extracted_at
for bothissue_id
andmerged_at
appears to be a placeholder rather than the actualid
andmerged_at
fields. Please confirm whether this is intentional or if the mappings should be updated topull_requests.id
andpull_requests.merged_at
.catalog/github/airbyte-interop-dbt-project/models/issue_comment.sql (1)
2-3
: Auto-generated header confirmed
The Morph auto-generated warning is present and correct. No manual modifications are needed.src/transforms/github/transforms/issue_assignee.yml (1)
1-3
: Transform file header approved
Thedomain
and transformname
are correctly declared.catalog/github/airbyte-interop-dbt-project/models/pull_request_review.sql (2)
2-3
: Auto-generated header confirmed
The Morph auto-generated warning is present; no manual edits are required.
11-15
: Validatepull_request_id
anduser_id
mappings
- Mapping
pull_request_url
topull_request_id
may not be ideal; consider using an actual ID field or extracting the numeric portion from the URL.- Verify that
reviews.user.id
is the correct path for the nested user ID in your target database.build/github/airbyte-interop.morph-lock.toml (3)
1-7
: Confirm project metadata in morph-lock file
Project identifiers and file hashes match the expected configuration.
9-50
: Verifyunused_source_streams
list accuracy
Several streams (e.g.,reviews
,pull_requests
,comments
) appear here but are referenced by new models. Please confirm and remove any streams that are actively mapped to avoid confusion.
68-69
: Implement mappings in[mappings]
section
The[mappings]
section is empty, so no field-level mappings are locked. Populate this section with the relevant transform definitions or confirm if locking mappings is managed elsewhere.catalog/github/airbyte-interop-dbt-project/dbt_project.yml (5)
1-4
: LGTM: Project metadata is properly configured.The
name
,version
, andconfig-version
align with dbt v2 format and naming conventions.
7-12
: Paths setup looks correct.Model, analysis, test, seed, macro, and snapshot directories are defined following dbt best practices.
14-18
: Target and clean-targets configuration is accurate.Using
target
and cleaning bothtarget
anddbt_packages
is standard for reproducible builds.
19-26
: Model materialization and rejected mappings are set appropriately.Defaulting to
view
materialization and disabling therejected
folder by default makes sense for an approval-based workflow.
27-29
: Verify the usage of project variables.You’ve declared
airbyte_github_database
andairbyte_github_schema
but they aren’t referenced in this file. Ensure that your sources and models consume these vars (e.g., insource:
configurations) to dynamically set the database/schema.catalog/github/airbyte-interop-dbt-project/models/label.sql (2)
2-7
: Model CTE definition is correct.Selecting from
{{ source('github', 'issue_labels') }}
inside a CTE follows dbt conventions and keeps the model tidy.
10-18
: Column selection and aliasing are appropriate.Fields are properly renamed for downstream consistency. No issues found.
catalog/github/airbyte-interop-dbt-project/models/issue.sql (1)
16-24
: Verify nested field syntax support.You’re selecting
issues.milestone.id
andissues.user.id
—ensure your target database engine supports nested struct field access using dot notation. If not, you may need to use JSON functions (e.g.,JSON_EXTRACT
) or flatten via staging.src/transforms/github/transforms/team.yml (4)
1-5
: Configuration header is well-defined
Thedomain
,transforms
block, andfrom
declaration forteams: github.teams
follow the established pattern and naming conventions.
6-24
: Field mappings are comprehensive and accurate
All six fields (id
,description
,name
,parent_id
,privacy
,slug
) are explicitly mapped toteams.<field>
expressions with clear descriptions. This ensures the targetteam
table will be fully populated.
25-33
: Annotations summary aligns with mappings
The top‐level annotations (approved: true
, nomissing_fields
) accurately reflect a complete and approved mapping. Thetable_match_score
andcompletion_score
are consistent with the full field coverage.
35-59
: Field‐level evaluation details look good
Each field mapping eval records a perfect score with appropriate explanations, matching the fully mapped state. This provides confidence in the transform’s accuracy.src/transforms/github/transforms/issue_label.yml (4)
1-5
: Configuration header is correct
Thedomain
andtransforms
name declaration follow the same structure as other GitHub transforms.
13-17
: Skip: Annotation flags missing fields
Theapproved: false
andmissing_fields
list correctly reflect the incomplete state. No further comment here.
18-23
: Skip: Evaluation summary matches missing mappings
Zero scores are appropriate given the currentMISSING
expressions.
24-32
: Skip: Field‐level evals reiterate missing status
The field mapping evaluations correctly document the absence of mappings.src/transforms/github/transforms/user.yml (4)
1-5
: Configuration header is solid
domain
,transforms
, andfrom
aliasing (users: github.users
) are consistent with other transforms.
6-12
: Approve existing mappings forid
andlogin
Bothusers.id
andusers.login
are correctly mapped with clear descriptions.
24-33
: Skip: Evaluation summary correctly reflects mapping state
The table match and completion scores correspond to the current field coverage.
34-50
: Skip: Field mapping evals are accurate given missing fields
Detailed scoring aligns with presence/absence of mappings.src/transforms/github/transforms/label.yml (5)
1-5
: Configuration header is correct
Thedomain
, transform namelabel
, and source aliasissue_labels: github.issue_labels
match project conventions.
7-27
: Field mappings are complete and clear
All seven target columns (id
,_fivetran_synced
,color
,description
,is_default
,name
,url
) are directly mapped with appropriate expressions and descriptions.
28-31
: Annotations confirm full coverage
approved: true
and an emptymissing_fields
list correctly indicate this transform is production‐ready.
32-39
: Evaluation summary is consistent
Hightable_match_score
andcompletion_score
reflect the complete mapping.
40-72
: Field‐level evaluations look good
Scores between 0.9 and 1.0 are reasonable for direct mappings; explanations are clear.src/transforms/github/transforms/pull_request_review.yml (4)
1-5
: Configuration header matches standards
domain
,transforms
, andfrom
alias (reviews: github.reviews
) follow the established pattern.
7-23
: Field mappings are clear but verify foreign keys and nested paths
id
,submitted_at
, andstate
map directly and are straightforward.pull_request_id
usesreviews.pull_request_url
—confirm that the target expects a URL rather than an ID, or adjust toreviews.pull_request_id
if available.user_id
refers toreviews.user.id
—ensure nested access is supported in your transformation framework.
24-34
: Annotations and evaluation align
approved: true
, no missing fields, and the reported match/completion scores appropriately reflect the mapping coverage.
35-57
: Field‐level evaluations are consistent
Confidence scores and explanations accurately reflect the mappings’ quality.src/transforms/github/transforms/pull_request.yml (1)
1-5
: Domain and source alignment verified.
Thedomain: github.airbyte-interop
andfrom: pull_requests: github.pull_requests
correctly match the source declarations. No changes needed here.src/transforms/github/transforms/issue.yml (1)
1-22
: Field mappings look accurate.
All source expressions correctly mapgithub.issues
to the targetissue
table, and the transform is properly marked as approved.
from: | ||
- MISSING: github.MISSING |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing source definition for issue_assignee
The from
section uses placeholders (MISSING: github.MISSING
), preventing this transform from running. Update it to reference the correct source stream (e.g., github.issue_assignees
).
issue_id: | ||
expression: MISSING | ||
description: Foreign key that references the issue table | ||
user_id: | ||
expression: MISSING | ||
description: Foreign key that references the user table |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Placeholder expressions for fields
Both issue_id
and user_id
have expression: MISSING
. Please provide the correct expressions to extract these values from the source (for example, payload.issue.id
for issue_id
and payload.user.id
for user_id
).
issue_id: | ||
expression: pull_requests._airbyte_extracted_at | ||
description: Foreign key that references the issue table. This table will | ||
only reference issues that are pull requests | ||
merged_at: | ||
expression: pull_requests._airbyte_extracted_at | ||
description: Timestamp of when the code merge took place |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incorrect field mappings using _airbyte_extracted_at
.
The expression
for both issue_id
and merged_at
are set to pull_requests._airbyte_extracted_at
, which is semantically incorrect for these fields. You should map:
fields:
issue_id:
- expression: pull_requests._airbyte_extracted_at
+ expression: pull_requests.id
merged_at:
- expression: pull_requests._airbyte_extracted_at
+ expression: pull_requests.merged_at
This ensures issue_id
references the pull request’s primary key and merged_at
reflects the actual merge timestamp.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
issue_id: | |
expression: pull_requests._airbyte_extracted_at | |
description: Foreign key that references the issue table. This table will | |
only reference issues that are pull requests | |
merged_at: | |
expression: pull_requests._airbyte_extracted_at | |
description: Timestamp of when the code merge took place | |
issue_id: | |
expression: pull_requests.id | |
description: Foreign key that references the issue table. This table will | |
only reference issues that are pull requests | |
merged_at: | |
expression: pull_requests.merged_at | |
description: Timestamp of when the code merge took place |
issue_id: | ||
expression: MISSING | ||
description: Foreign key that references the issue table | ||
updated_at: | ||
expression: issue_timeline_events.comment.updated_at | ||
description: Timestamp of when the action took place | ||
closed: | ||
expression: MISSING | ||
description: Boolean variable for if the issue was closed (true) or re-opened | ||
(false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing expressions for issue_id
and closed
fields.
The expression
placeholders for issue_id
and closed
are still MISSING
. They should map to the correct source fields, for example:
fields:
issue_id:
- expression: MISSING
+ expression: issue_timeline_events.issue_id
updated_at:
expression: issue_timeline_events.comment.updated_at
closed:
- expression: MISSING
+ expression: issue_timeline_events.event = 'closed'
Additionally, consider whether closed
should be derived from an event
column or a boolean flag. Update the mapping accordingly.
issue_id: | ||
expression: MISSING | ||
description: Foreign key that references the issue table | ||
user_id: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing expression for issue_id
.
The issue_id
mapping is MISSING
. You should map this to the comment’s parent issue ID, e.g.:
issue_id:
- expression: MISSING
+ expression: comments.issue_id
Ensure this aligns with how issue_id
is stored in the github.comments
source.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
issue_id: | |
expression: MISSING | |
description: Foreign key that references the issue table | |
user_id: | |
issue_id: | |
expression: comments.issue_id | |
description: Foreign key that references the issue table | |
user_id: |
fields: | ||
id: | ||
expression: pull_requests.id | ||
description: System generated unique id for the pull request. | ||
issue_id: | ||
expression: MISSING | ||
description: Foreign key that references the issue table. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Resolve missing issue_id
mapping.
The issue_id
field is currently set to MISSING
, which will break downstream transformations. You should supply the correct expression, for example:
issue_id:
expression: pull_requests.issue_id
Then remove issue_id
from the missing_fields
annotation and set approved: true
once it’s finalized.
Table "issue_assignee" { | ||
"issue_id" unknown [note: 'Foreign key that references the issue table'] | ||
"user_id" unknown [note: 'Foreign key that references the user table'] | ||
} | ||
|
||
Table "label" { | ||
"id" unknown [note: 'Unique identifier of the Github label'] | ||
"_fivetran_synced" unknown [note: 'Timestamp of the record being synced by Fivetran'] | ||
"color" unknown [note: 'The color of the label'] | ||
"description" unknown [note: 'The description of the label indicating the purpose'] | ||
"is_default" unknown [note: 'Boolean flagging if the label is default on creation'] | ||
"name" unknown [note: 'Name of the label'] | ||
"url" unknown [note: 'Url where the label was used'] | ||
} | ||
|
||
Table "issue_closed_history" { | ||
"issue_id" unknown [note: 'Foreign key that references the issue table'] | ||
"updated_at" unknown [note: 'Timestamp of when the action took place'] | ||
"closed" unknown [note: 'Boolean variable for if the issue was closed (true) or re-opened (false)'] | ||
} | ||
|
||
Table "issue_label" { | ||
"issue_id" unknown [note: 'Foreign key that references the issue table'] | ||
"label_id" unknown [note: 'Unique identifier of the used label'] | ||
} | ||
|
||
Table "issue_comment" { | ||
"id" unknown [note: 'System generated unique id for the issue comment.'] | ||
"issue_id" unknown [note: 'Foreign key that references the issue table'] | ||
"user_id" unknown [note: 'Foreign key that references the user table'] | ||
"created_at" unknown [note: 'Timestamp of when the issue comment was created.'] | ||
} | ||
|
||
Table "issue_merged" { | ||
"issue_id" unknown [note: 'Foreign key that references the issue table. This table will only reference issues that are pull requests'] | ||
"merged_at" unknown [note: 'Timestamp of when the code merge took place'] | ||
} | ||
|
||
Table "issue" { | ||
"id" unknown [note: 'System generated unique id for the issue. This is not the number that appears in the URL.'] | ||
"body" unknown [note: 'The text of the main description of the issue.'] | ||
"locked" unknown [note: 'Boolean indicating whether the issue is locked.'] | ||
"closed_at" unknown [note: 'Timestamp of when the issue was closed, NULL for issues that are open.'] | ||
"created_at" unknown [note: 'Timestamp of when the issue was created.'] | ||
"milestone_id" unknown [note: 'Foreign key that references the milestone table representing the current milestone the issue is in.'] | ||
"number" unknown [note: 'The issue number within a repository. Is unique by repository, but not across repositories.'] | ||
"pull_request" unknown [note: 'Boolean for is the issue is a pull request (true) ot regular issue (false)'] | ||
"repository_id" unknown [note: 'Foreign key that references the repository table.'] | ||
"state" unknown [note: 'Whether the issue is open or closed.'] | ||
"title" unknown [note: 'Title of the issue.'] | ||
"updated_at" unknown [note: 'Timestamp of when the last update was made to the issue.'] | ||
"user_id" unknown [note: 'Foreign key that references the user table, representing the user that created the issue.'] | ||
} | ||
|
||
Table "pull_request_review" { | ||
"id" unknown [note: 'System generated unique id for the pull request review.'] | ||
"pull_request_id" unknown [note: 'Foreign key that references the pull request table.'] | ||
"submitted_at" unknown [note: 'Timestamp of when the request for review was submitted.'] | ||
"state" unknown [note: 'Whether the review was an approval, request for change, comment, dismissal.'] | ||
"user_id" unknown [note: 'Foreign key that references the user table, representing the user that reviewed the pull request.'] | ||
} | ||
|
||
Table "pull_request" { | ||
"id" unknown [note: 'System generated unique id for the pull request.'] | ||
"issue_id" unknown [note: 'Foreign key that references the issue table.'] | ||
"head_repo_id" unknown [note: 'Foreign key that references the repository table, referencing the current branch.'] | ||
"head_user_id" unknown [note: 'Foreign key that references the user table, referencing who created the current branch.'] | ||
} | ||
|
||
Table "repo_team" { | ||
"repository_id" unknown [note: 'Reference to the respective repository for the record.'] | ||
"team_id" unknown [note: 'Reference to the respective team for the record.'] | ||
} | ||
|
||
Table "repository" { | ||
"id" unknown [note: 'System generated unique id for the repository.'] | ||
"created_at" unknown [note: 'Timestamp of when the repository was created.'] | ||
"full_name" unknown [note: 'The name of the git repository.'] | ||
"private" unknown [note: 'Boolean field indicating whether the repository is private (true) or public (false).'] | ||
} | ||
|
||
Table "requested_reviewer_history" { | ||
"pull_request_id" unknown [note: 'Foreign key that references the pull request table.'] | ||
"created_at" unknown [note: 'Timestamp of when the review was submitted.'] | ||
"requested_id" unknown [note: 'Foreign key that references the user table, representing the user that was requested to review a PR.'] | ||
"removed" unknown [note: 'Boolean variable indicating if the requester was removed from the PR (true) or added to the PR (false).'] | ||
} | ||
|
||
Table "team" { | ||
"id" unknown [note: 'System generated unique id for the team.'] | ||
"description" unknown [note: 'User created description of the team.'] | ||
"name" unknown [note: 'User created name of the team.'] | ||
"parent_id" unknown [note: 'Reference to the parent team.'] | ||
"privacy" unknown [note: 'Type of privacy permissions associated with the team.'] | ||
"slug" unknown [note: 'Url friendly version of the team name.'] | ||
} | ||
|
||
Table "user" { | ||
"id" unknown [note: 'System generated unique id for the user.'] | ||
"login" unknown [note: 'The alias the user uses to login to github.'] | ||
"name" unknown [note: 'The name of the user'] | ||
"company" unknown [note: 'The company of the user.'] | ||
} No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Define explicit column data types.
All columns are currently unknown
, which prevents generating usable DDL. Annotate each with an appropriate type. Example:
Table "issue" {
id bigint [pk, note: 'System generated unique id for the issue.']
body text [note: 'The text of the main description of the issue.']
locked boolean [note: 'Boolean indicating whether the issue is locked.']
closed_at timestamp [note: 'Timestamp when the issue was closed.']
...
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (4)
src/transforms/github/transforms/issue_closed_history.yml (2)
7-9
: Provide source expression forissue_id
.
Theexpression: MISSING
placeholder must be replaced with the actual field fromissue_timeline_events
, for example:issue_id: expression: issue_timeline_events.issue_id
13-16
: Provide source expression forclosed
.
Replace theMISSING
placeholder with a boolean condition that reflects issue closure, e.g.:closed: expression: issue_timeline_events.event = 'closed'src/transforms/github/transforms/repository.yml (2)
4-6
: Define the source stream for this transform.
Thefrom
block currently references a placeholder:from: - MISSING: github.MISSINGYou need to specify the actual source, for example:
from: - repositories: github.repositories
7-18
: Provide expressions for all repository fields.
Each field expression is set toMISSING
. Update them to use the real source attributes, for example:id: expression: repositories.id created_at: expression: repositories.created_at full_name: expression: repositories.full_name private: expression: repositories.private
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (18)
catalog/github/README.md
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/pull_request.sql
(1 hunks)catalog/github/airbyte-interop-dbt-project/models/repo_team.sql
(1 hunks)catalog/github/rejected-mappings.md
(1 hunks)src/transforms/github/transforms/issue.yml
(1 hunks)src/transforms/github/transforms/issue_assignee.yml
(1 hunks)src/transforms/github/transforms/issue_closed_history.yml
(1 hunks)src/transforms/github/transforms/issue_comment.yml
(1 hunks)src/transforms/github/transforms/issue_label.yml
(1 hunks)src/transforms/github/transforms/issue_merged.yml
(1 hunks)src/transforms/github/transforms/label.yml
(1 hunks)src/transforms/github/transforms/pull_request.yml
(1 hunks)src/transforms/github/transforms/pull_request_review.yml
(1 hunks)src/transforms/github/transforms/repo_team.yml
(1 hunks)src/transforms/github/transforms/repository.yml
(1 hunks)src/transforms/github/transforms/requested_reviewer_history.yml
(1 hunks)src/transforms/github/transforms/team.yml
(1 hunks)src/transforms/github/transforms/user.yml
(1 hunks)
✅ Files skipped from review due to trivial changes (2)
- catalog/github/airbyte-interop-dbt-project/models/repo_team.sql
- catalog/github/airbyte-interop-dbt-project/models/pull_request.sql
🚧 Files skipped from review as they are similar to previous changes (11)
- src/transforms/github/transforms/issue_merged.yml
- src/transforms/github/transforms/issue_label.yml
- src/transforms/github/transforms/requested_reviewer_history.yml
- src/transforms/github/transforms/issue_comment.yml
- src/transforms/github/transforms/repo_team.yml
- src/transforms/github/transforms/label.yml
- src/transforms/github/transforms/pull_request.yml
- src/transforms/github/transforms/user.yml
- src/transforms/github/transforms/pull_request_review.yml
- src/transforms/github/transforms/issue.yml
- src/transforms/github/transforms/issue_assignee.yml
🧰 Additional context used
🪛 LanguageTool
catalog/github/README.md
[uncategorized] ~14-~14: You might be missing the article “a” here.
Context: ...| --- | --- | | id
| System generated unique id for the team. | teams.id
| 🟢 _1.0...
(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~15-~15: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...ion` | 🟢 0.90 | *Fields match closely and the description data is identical, lead...
(COMMA_COMPOUND_SENTENCE_2)
[grammar] ~18-~18: In this context, ‘type’ should agree in number with the noun after ‘of’.
Context: ..., thus the lower score* | | privacy
| Type of privacy permissions associated with the team. | `teams.priv...
(TYPE_OF_PLURAL)
[uncategorized] ~18-~18: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...gs fields have acknowledged similarities but differences in details reduce the score...
(COMMA_COMPOUND_SENTENCE_2)
[misspelling] ~26-~26: This word is normally spelled with a hyphen.
Context: ...st_id', 'submitted_at', and 'state' are well matched with appropriate descriptions; only min...
(EN_COMPOUNDS_WELL_MATCHED)
[style] ~34-~34: Consider using “who” when you are referring to a person instead of an object.
Context: ...s the user table, representing the user that reviewed the pull request. | `reviews.u...
(THAT_WHO)
[uncategorized] ~83-~83: You might be missing the article “a” here.
Context: ...| --- | --- | | id
| System generated unique id for the issue. This is not the numb...
(AI_EN_LECTOR_MISSING_DETERMINER_A)
[grammar] ~89-~89: This sentence seems to be incomplete. Insert a noun before ‘Is’ to make the sentence complete.
Context: ... The issue number within a repository. Is unique by repository, but not across re...
(MISSING_SUBJECT)
[style] ~95-~95: Consider using “who” when you are referring to a person instead of an object.
Context: ...s the user table, representing the user that created the issue. | issues.user.id
|...
(THAT_WHO)
[uncategorized] ~119-~119: A comma might be missing here.
Context: ...f-Evaluation: _The table match score is high indicating a good correlation between s...
(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[misspelling] ~124-~124: Did you mean the verb “log in” instead of the noun ‘login’?
Context: ... | login
| The alias the user uses to login to github. | users.login
| 🟢 1.00 ...
(LOG_IN)
[style] ~133-~133: This phrase is redundant. Consider using “subject” to avoid wordiness.
Context: ... related field mappings, showing strong subject matter similarity. The completion score reflec...
(SUBJECT_MATTER)
[uncategorized] ~137-~137: You might be missing the article “a” here.
Context: ...| --- | --- | | id
| System generated unique id for the pull request. | `pull_reques...
(AI_EN_LECTOR_MISSING_DETERMINER_A)
catalog/github/rejected-mappings.md
[uncategorized] ~16-~16: You might be missing the article “a” here.
Context: ...| --- | --- | | id
| System generated unique id for the repository. | MISSING
| ❌ ...
(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~39-~39: Possible missing comma found.
Context: ...established based on the provided field mappings which are all marked as 'MISSING'._ | ...
(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~69-~69: Consider using “who” when you are referring to a person instead of an object.
Context: ...s the user table, representing the user that was requested to review a PR. | `MISSIN...
(THAT_WHO)
🪛 markdownlint-cli2 (0.17.2)
catalog/github/README.md
5-5: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
14-14: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
14-14: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
15-15: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
15-15: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
16-16: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
16-16: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
17-17: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
17-17: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
18-18: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
18-18: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
19-19: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
19-19: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
30-30: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
30-30: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
31-31: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
31-31: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
32-32: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
32-32: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
33-33: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
33-33: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
34-34: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
34-34: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
45-45: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
45-45: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
46-46: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
46-46: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
57-57: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
57-57: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
58-58: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
58-58: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
69-69: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
69-69: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
70-70: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
70-70: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
71-71: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
71-71: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
72-72: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
72-72: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
83-83: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
83-83: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
84-84: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
84-84: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
85-85: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
85-85: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
86-86: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
86-86: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
87-87: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
87-87: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
88-88: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
88-88: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
89-89: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
89-89: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
90-90: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
90-90: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
91-91: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
91-91: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
92-92: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
92-92: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
93-93: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
93-93: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
94-94: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
94-94: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
95-95: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
95-95: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
106-106: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
106-106: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
107-107: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
107-107: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
108-108: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
108-108: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
109-109: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
109-109: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
110-110: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
110-110: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
111-111: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
111-111: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
112-112: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
112-112: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
123-123: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
123-123: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
124-124: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
124-124: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
125-125: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
125-125: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
126-126: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
126-126: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
137-137: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
137-137: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
138-138: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
138-138: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
139-139: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
139-139: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
140-140: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
140-140: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
catalog/github/rejected-mappings.md
7-7: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
16-16: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
16-16: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
17-17: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
17-17: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
18-18: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
18-18: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
19-19: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
19-19: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
30-30: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
30-30: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
31-31: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
31-31: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
32-32: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
32-32: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
43-43: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
43-43: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
44-44: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
44-44: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
55-55: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
55-55: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
56-56: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
56-56: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
67-67: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
67-67: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
68-68: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
68-68: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
69-69: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
69-69: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
70-70: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
70-70: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
🔇 Additional comments (10)
src/transforms/github/transforms/repository.yml (1)
28-34
: Reset evaluation metadata after completing mappings.
Once you supply real expressions, updatesource_stream_name
(currentlyMISSING
), and recalculatetable_match_score
andcompletion_score
to reflect the new mapping completeness.catalog/github/README.md (5)
5-20
: Mapping forteams
is well-defined.
All fields have explicit expressions and the confidence/completion scores align with the mapping quality.🧰 Tools
🪛 LanguageTool
[uncategorized] ~14-~14: You might be missing the article “a” here.
Context: ...| --- | --- | |id
| System generated unique id for the team. |teams.id
| 🟢 _1.0...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~15-~15: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...ion` | 🟢 0.90 | *Fields match closely and the description data is identical, lead...(COMMA_COMPOUND_SENTENCE_2)
[grammar] ~18-~18: In this context, ‘type’ should agree in number with the noun after ‘of’.
Context: ..., thus the lower score* | |privacy
| Type of privacy permissions associated with the team. | `teams.priv...(TYPE_OF_PLURAL)
[uncategorized] ~18-~18: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...gs fields have acknowledged similarities but differences in details reduce the score...(COMMA_COMPOUND_SENTENCE_2)
🪛 markdownlint-cli2 (0.17.2)
5-5: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3(MD001, heading-increment)
14-14: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
14-14: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
15-15: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
15-15: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
16-16: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
16-16: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
17-17: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
17-17: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
18-18: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
18-18: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
19-19: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
19-19: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
21-35
: Pull request review mapping is accurate.
Thereviews
→pull_request_review
mapping has complete expressions and strong confidence metrics.🧰 Tools
🪛 LanguageTool
[misspelling] ~26-~26: This word is normally spelled with a hyphen.
Context: ...st_id', 'submitted_at', and 'state' are well matched with appropriate descriptions; only min...(EN_COMPOUNDS_WELL_MATCHED)
[style] ~34-~34: Consider using “who” when you are referring to a person instead of an object.
Context: ...s the user table, representing the user that reviewed the pull request. | `reviews.u...(THAT_WHO)
🪛 markdownlint-cli2 (0.17.2)
30-30: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
30-30: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
31-31: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
31-31: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
32-32: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
32-32: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
33-33: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
33-33: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
34-34: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
34-34: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
48-59
: Verify themerged_at
field mapping.
Currently it usespull_requests._airbyte_extracted_at
, which may not capture the actual merge timestamp. Confirm if there’s a dedicatedmerged_at
field in the source.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
57-57: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
57-57: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
58-58: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
58-58: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
74-95
: Issue mapping is comprehensive.
All required fields have valid expressions, and the confidence/completion scores reflect high mapping fidelity.🧰 Tools
🪛 LanguageTool
[uncategorized] ~83-~83: You might be missing the article “a” here.
Context: ...| --- | --- | |id
| System generated unique id for the issue. This is not the numb...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[grammar] ~89-~89: This sentence seems to be incomplete. Insert a noun before ‘Is’ to make the sentence complete.
Context: ... The issue number within a repository. Is unique by repository, but not across re...(MISSING_SUBJECT)
[style] ~95-~95: Consider using “who” when you are referring to a person instead of an object.
Context: ...s the user table, representing the user that created the issue. |issues.user.id
|...(THAT_WHO)
🪛 markdownlint-cli2 (0.17.2)
83-83: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
83-83: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
84-84: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
84-84: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
85-85: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
85-85: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
86-86: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
86-86: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
87-87: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
87-87: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
88-88: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
88-88: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
89-89: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
89-89: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
90-90: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
90-90: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
91-91: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
91-91: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
92-92: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
92-92: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
93-93: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
93-93: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
94-94: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
94-94: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
95-95: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
95-95: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
97-113
: Label mapping is fully specified.
Every field has a correct expression and perfect confidence scores.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
106-106: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
106-106: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
107-107: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
107-107: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
108-108: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
108-108: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
109-109: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
109-109: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
110-110: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
110-110: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
111-111: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
111-111: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
112-112: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
112-112: Emphasis style
Expected: underscore; Actual: asterisk(MD049, emphasis-style)
src/transforms/github/transforms/team.yml (3)
1-6
: Domain and source configuration are correct.
The transform properly referencesdomain: github.airbyte-interop
andfrom: teams: github.teams
.
7-24
: Field mappings align with the source schema.
All six fields (id
,description
,name
,parent_id
,privacy
,slug
) have explicit expressions and accurate descriptions.
26-34
: Evaluation metadata reflects mapping quality.
Thetable_match_score
andcompletion_score
, along with field-level explanations, accurately capture the confidence levels.catalog/github/rejected-mappings.md (1)
1-5
: Rejected mappings documentation is clear.
This file concisely lists the tables and reasons for rejection, guiding future improvements.
### Mapping: Airbyte `users` to Fivetran `user` | ||
|
||
|
||
- Table Match Confidence Score: 🟢 _0.80_ | ||
- Table Completion Score: ⚠️ _0.50_ | ||
- Summary Self-Evaluation: _The table match score is high indicating a good correlation between source and target tables. However, the completion score is lower due to missing field mappings._ | ||
|
||
| Field | Description | Expression | Confidence | Evaluation | | ||
| --- | --- | --- | --- | --- | | ||
| `id` | System generated unique id for the user. | `users.id` | 🟢 _1.00_ | *Direct match found: 'users.id' matches 'id'.* | | ||
| `login` | The alias the user uses to login to github. | `users.login` | 🟢 _1.00_ | *Direct match found: 'users.login' matches 'login'.* | | ||
| `name` | The name of the user | `MISSING` | ❌ _0.00_ | *No good match found.* | | ||
| `company` | The company of the user. | `MISSING` | ❌ _0.00_ | *No good match found.* | | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Address missing user fields.
Both name
and company
are set to MISSING
. Map them to the actual source attributes (e.g., users.name
, users.company
) if available.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~119-~119: A comma might be missing here.
Context: ...f-Evaluation: _The table match score is high indicating a good correlation between s...
(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[misspelling] ~124-~124: Did you mean the verb “log in” instead of the noun ‘login’?
Context: ... | login
| The alias the user uses to login to github. | users.login
| 🟢 1.00 ...
(LOG_IN)
🪛 markdownlint-cli2 (0.17.2)
123-123: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
123-123: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
124-124: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
124-124: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
125-125: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
125-125: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
126-126: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
126-126: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
### Mapping: Airbyte `pull_requests` to Fivetran `pull_request` | ||
|
||
|
||
- Table Match Confidence Score: 🟢 _0.80_ | ||
- Table Completion Score: 🟢 _0.75_ | ||
- Summary Self-Evaluation: _The quality of table matching is high given the tightly related field mappings, showing strong subject matter similarity. The completion score reflects a mostly populated mapping but is not full due to some fields with 'MISSING' expressions._ | ||
|
||
| Field | Description | Expression | Confidence | Evaluation | | ||
| --- | --- | --- | --- | --- | | ||
| `id` | System generated unique id for the pull request. | `pull_requests.id` | 🟢 _1.00_ | *Direct match found with identical field names and purposes.* | | ||
| `issue_id` | Foreign key that references the issue table. | `MISSING` | ❌ _0.00_ | *No good match found.* | | ||
| `head_repo_id` | Foreign key that references the repository table, referencing the current branch. | `pull_requests.head.repo_id` | 🟢 _0.70_ | *Good match, referencing the current branch's repository. Close contextual alignment despite nested path.* | | ||
| `head_user_id` | Foreign key that references the user table, referencing who created the current branch. | `pull_requests.head.user_id` | 🟢 _0.70_ | *Good match, referencing the creator of the current branch's user ID. Close contextual alignment despite nested path.* | | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Define issue_id
in pull_request mapping.
The issue_id
field is currently undefined. Consider mapping it to pull_requests.issue_id
or deriving it from the pull request URL.
🧰 Tools
🪛 LanguageTool
[style] ~133-~133: This phrase is redundant. Consider using “subject” to avoid wordiness.
Context: ... related field mappings, showing strong subject matter similarity. The completion score reflec...
(SUBJECT_MATTER)
[uncategorized] ~137-~137: You might be missing the article “a” here.
Context: ...| --- | --- | | id
| System generated unique id for the pull request. | `pull_reques...
(AI_EN_LECTOR_MISSING_DETERMINER_A)
🪛 markdownlint-cli2 (0.17.2)
137-137: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
137-137: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
138-138: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
138-138: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
139-139: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
139-139: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
140-140: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
140-140: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
### Mapping: Airbyte `comments` to Fivetran `issue_comment` | ||
|
||
|
||
- Table Match Confidence Score: 🟢 _0.70_ | ||
- Table Completion Score: 🟢 _0.75_ | ||
- Summary Self-Evaluation: _The table match score indicates a moderate confidence in the alignment, as fields generally correspond well in functionality though not perfectly. However, the 'issue_id' field lacks a direct counterpart, impacting the completion score._ | ||
|
||
| Field | Description | Expression | Confidence | Evaluation | | ||
| --- | --- | --- | --- | --- | | ||
| `id` | System generated unique id for the issue comment. | `comments.id` | 🟢 _1.00_ | *Direct match found: 'comments.id' matches 'id' perfectly.* | | ||
| `issue_id` | Foreign key that references the issue table | `MISSING` | ❌ _0.00_ | *No good match found.* | | ||
| `user_id` | Foreign key that references the user table | `comments.user.id` | 🟢 _0.90_ | *High confidence match: 'comments.user.id' closely matches to 'user_id'.* | | ||
| `created_at` | Timestamp of when the issue comment was created. | `comments.created_at` | 🟢 _1.00_ | *Direct match found: 'comments.created_at' matches 'created_at' perfectly.* | | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fill in missing issue_id
for comments.
The issue_comment
mapping’s issue_id
is MISSING
. It should reference the appropriate source field (e.g., comments.issue_id
).
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
69-69: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
69-69: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
70-70: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
70-70: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
71-71: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
71-71: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
72-72: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
72-72: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
### Mapping: Airbyte `MISSING` to Fivetran `repo_team` | ||
|
||
|
||
- Table Match Confidence Score: 🟢 _0.80_ | ||
- Table Completion Score: ⚠️ _0.50_ | ||
- Summary Self-Evaluation: _The table mapping has a relatively high match quality. However, the completion of field mappings is partial since some field mappings remain undefined or unestablished._ | ||
|
||
| Field | Description | Expression | Confidence | Evaluation | | ||
| --- | --- | --- | --- | --- | | ||
| `repository_id` | Reference to the respective repository for the record. | `MISSING` | ❌ _0.00_ | *No good match found.* | | ||
| `team_id` | Reference to the respective team for the record. | `MISSING` | ❌ _0.00_ | *No good match found.* | | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incomplete repo_team
mapping.
The Airbyte source is marked as MISSING
, and both repository_id
and team_id
expressions are undefined. Supply the correct source stream name and expressions to make this mapping operational.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
45-45: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
45-45: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
46-46: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
46-46: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
Output of
poe morph-build github --with-generate
This PR was automatically generated by the Poe GitHub Action.
It contains the output of the command
morph-build github --with-generate
.Please review the changes and consider merging them if they are acceptable.
Link to job logs.
Summary by CodeRabbit
New Features
Documentation
Chores