Skip to content

Conversation

octavia-squidington-iii
Copy link
Contributor

@octavia-squidington-iii octavia-squidington-iii commented Apr 23, 2025

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

    • Introduced comprehensive GitHub data models and schemas for issues, pull requests, users, repositories, teams, labels, comments, and related entities.
    • Added multiple transformation configurations to map and process GitHub data into standardized target tables, with detailed field mappings and evaluation metadata.
    • Provided initial dbt project setup, including configuration files, model SQL files, dependency management, and profiles for GitHub data integration.
    • Included a new configuration file defining project metadata and coverage exclusions for the GitHub integration.
    • Added evaluation and annotation metadata to transformation configurations for improved mapping transparency.
  • Documentation

    • Added README files documenting the structure and purpose of the dbt models, mapping files, and rejected mappings.
  • Chores

    • Included .gitignore and configuration files to manage build artifacts, dependencies, task runner setups, and environment settings.

Copy link

coderabbitai bot commented Apr 23, 2025

Walkthrough

This 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

File(s) Change Summary
build/github/airbyte-interop.morph-lock.toml Added project metadata and configuration for airbyte-interop, including source/target info, file hashes, unused streams/tables, and mapping placeholders.
build/github/erd/source-schema-erd.dbml,
build/github/erd/target-schema-erd.dbml
Added detailed DBML schema definitions for GitHub source and target data models, covering a wide range of GitHub entities and their relationships.
build/github/requirements/airbyte-interop/src_dbt_requirements.yml Introduced dbt source configuration YAML for GitHub datasets, specifying tables, columns, and freshness criteria.
catalog/github/README.md Added documentation describing autogenerated dbt models derived from mapping files, including confidence and completion scores, and referencing rejected mappings.
catalog/github/rejected-mappings.md Added documentation listing rejected mappings between Airbyte source tables and Fivetran target tables due to insufficient confidence or incomplete mappings, including detailed field-level evaluations.
catalog/github/airbyte-interop-dbt-project/.gitignore Added dbt-specific .gitignore to exclude build artifacts, logs, and user config files.
catalog/github/airbyte-interop-dbt-project/dbt_project.yml Introduced dbt project configuration with model paths, materialization settings, and variables for database/schema.
catalog/github/airbyte-interop-dbt-project/package-lock.yml,
packages.yml
Added dbt package dependency configuration files specifying dbt_utils as a dependency.
catalog/github/airbyte-interop-dbt-project/poe_tasks.toml Added Poe task runner configuration to include external task files via environment variable references.
catalog/github/airbyte-interop-dbt-project/profiles/profiles.yml Added dbt profiles configuration for DuckDB and MotherDuck targets, with connection and extension settings.
catalog/github/airbyte-interop-dbt-project/models/issue.sql,
issue_comment.sql,
issue_merged.sql,
label.sql,
pull_request_review.sql,
pull_request.sql,
repo_team.sql,
team.sql,
user.sql
Added autogenerated dbt SQL models for GitHub issues, comments, merged events, labels, reviews, pull requests, repo-team associations, teams, and users, each transforming and selecting relevant fields from source tables; some models include NULL placeholders for missing source mappings.
src/transforms/github/transforms/issue.yml,
issue_assignee.yml,
issue_closed_history.yml,
issue_comment.yml,
issue_label.yml,
issue_merged.yml,
label.yml,
pull_request.yml,
pull_request_review.yml,
repo_team.yml,
repository.yml,
requested_reviewer_history.yml,
team.yml,
user.yml
Added YAML transformation configurations mapping fields from GitHub source streams to target schemas, with some fields fully mapped and others as placeholders; included annotations and evaluation metadata for each transform, reflecting varying levels of mapping completeness and confidence.

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
Loading

Poem

🐇
New schemas bloom, transforms align,
GitHub data in tidy design.
Models and configs, all in a row,
dbt hops where the data flows.
From raw to refined, each field in place—
A rabbit’s delight in this data race!

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.sql

User Error: No dialect was specified. You must configure a dialect or specify one on the command line using --dialect after the command. Available dialects:
ansi, athena, bigquery, clickhouse, databricks, db2, duckdb, exasol, greenplum, hive, impala, mariadb, materialize, mysql, oracle, postgres, redshift, snowflake, soql, sparksql, sqlite, starrocks, teradata, trino, tsql, vertica

catalog/github/airbyte-interop-dbt-project/models/pull_request.sql

User Error: No dialect was specified. You must configure a dialect or specify one on the command line using --dialect after the command. Available dialects:
ansi, athena, bigquery, clickhouse, databricks, db2, duckdb, exasol, greenplum, hive, impala, mariadb, materialize, mysql, oracle, postgres, redshift, snowflake, soql, sparksql, sqlite, starrocks, teradata, trino, tsql, vertica


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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@aaronsteers aaronsteers marked this pull request as ready for review April 23, 2025 19:29
Copy link
Collaborator

@aaronsteers aaronsteers left a 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.

@aaronsteers aaronsteers changed the title Auto-generated PR: poe morph-build github --with-generate Feat: Add github mappings Apr 23, 2025
@aaronsteers aaronsteers changed the title Feat: Add github mappings Feat: Add GitHub mappings Apr 23, 2025
@aaronsteers
Copy link
Collaborator

aaronsteers commented Apr 23, 2025

/poe morph-eval github

Running poe morph-eval github...

Link to job logs.

✅ Poe command morph-eval github completed successfully.

Copy link

@coderabbitai coderabbitai bot left a 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‑heavy issues table will explode column widths & break warehouse limits
labels, assignees, and pull_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:

  1. Keeping only the canonical issue columns here.
  2. Moving repeatable entities to bridging tables (issue_labels, issue_assignees, etc.) – you already have issue_labels upstream, leverage it instead of duplicating.

( )


865-888: Potential reserved‑word collision: type / user columns
In many SQL dialects user and type are keywords. Although DBML quotes them, generated DDL for BigQuery/Postgres may fail.

Options:
• Rename to user_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 patterns

The 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 CTE

Since 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 uses SELECT *, 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 only id, user.id, and created_at are used. Narrowing the CTE to those fields will enhance clarity and performance.


11-14: Validate and refine issue_id placeholder
Setting issue_id to NULL means comments won’t link to issues. Confirm whether this is a temporary placeholder. Additionally, consider explicitly casting the NULL 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 does SELECT *, 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: Update unmapped_target_tables to reflect implemented models
Tables like issue_comment, issue_merged, and pull_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 and label_id
Both fields are marked MISSING—this must be filled in before approval. Likely expressions are:

expression: issue_labels.issue_id
expression: issue_labels.label_id

Please 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 -C2

Length 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"
fi

Length of output: 319


Missing issue_id & label_id expressions – manual verification required

The 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 field
src/transforms/github/transforms/user.yml (1)

13-18:

❓ Verification inconclusive

Critical: name and company still MISSING
These fields need expressions—likely:

expression: users.name
expression: users.company

Please 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.yml

Length of output: 1658


🏁 Script executed:

#!/bin/bash
# Search for occurrences of 'github.users' across the repository to locate its schema definition
rg "github\\.users" -n

Length of output: 95


Critical: name and company mappings are still MISSING
The user transform in src/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 and users.company exist on the github.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 for pull_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.
For milestone_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

📥 Commits

Reviewing files that changed from the base of the PR and between 589750d and ecbe4e3.

⛔ 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 correct

The packages.yml correctly declares the dbt_utils package at version 1.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.toml

Length of output: 557


All included Poe task files are present
Both poe_tasks_dbt.toml and poe_tasks.toml exist at the repository root, so the ${POE_GIT_ROOT}‑based include paths in catalog/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 correct

The model aligns with the transform configuration, projecting id and login and setting name and company to NULL 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 of issue_id and merged_at
Using _airbyte_extracted_at for both issue_id and merged_at appears to be a placeholder rather than the actual id and merged_at fields. Please confirm whether this is intentional or if the mappings should be updated to pull_requests.id and pull_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
The domain and transform name 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: Validate pull_request_id and user_id mappings

  • Mapping pull_request_url to pull_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: Verify unused_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, and config-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 both target and dbt_packages is standard for reproducible builds.


19-26: Model materialization and rejected mappings are set appropriately.

Defaulting to view materialization and disabling the rejected folder by default makes sense for an approval-based workflow.


27-29: Verify the usage of project variables.

You’ve declared airbyte_github_database and airbyte_github_schema but they aren’t referenced in this file. Ensure that your sources and models consume these vars (e.g., in source: 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 and issues.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
The domain, transforms block, and from declaration for teams: 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 to teams.<field> expressions with clear descriptions. This ensures the target team table will be fully populated.


25-33: Annotations summary aligns with mappings
The top‐level annotations (approved: true, no missing_fields) accurately reflect a complete and approved mapping. The table_match_score and completion_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
The domain and transforms name declaration follow the same structure as other GitHub transforms.


13-17: Skip: Annotation flags missing fields
The approved: false and missing_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 current MISSING 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, and from aliasing (users: github.users) are consistent with other transforms.


6-12: Approve existing mappings for id and login
Both users.id and users.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
The domain, transform name label, and source alias issue_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 empty missing_fields list correctly indicate this transform is production‐ready.


32-39: Evaluation summary is consistent
High table_match_score and completion_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, and from alias (reviews: github.reviews) follow the established pattern.


7-23: Field mappings are clear but verify foreign keys and nested paths

  • id, submitted_at, and state map directly and are straightforward.
  • pull_request_id uses reviews.pull_request_url—confirm that the target expects a URL rather than an ID, or adjust to reviews.pull_request_id if available.
  • user_id refers to reviews.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.
The domain: github.airbyte-interop and from: 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 map github.issues to the target issue table, and the transform is properly marked as approved.

Comment on lines +4 to +5
from:
- MISSING: github.MISSING
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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).

Comment on lines +7 to +12
issue_id:
expression: MISSING
description: Foreign key that references the issue table
user_id:
expression: MISSING
description: Foreign key that references the user table
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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).

Comment on lines +7 to +13
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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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.

Suggested change
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

Comment on lines +7 to +16
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)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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.

Comment on lines +10 to +13
issue_id:
expression: MISSING
description: Foreign key that references the issue table
user_id:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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.

Suggested change
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:

Comment on lines +6 to +12
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.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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.

Comment on lines +1 to +103
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
Copy link

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.']
  ...
}

Copy link

@coderabbitai coderabbitai bot left a 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 for issue_id.
The expression: MISSING placeholder must be replaced with the actual field from issue_timeline_events, for example:

issue_id:
  expression: issue_timeline_events.issue_id

13-16: Provide source expression for closed.
Replace the MISSING 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.
The from block currently references a placeholder:

from:
  - MISSING: github.MISSING

You 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 to MISSING. 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

📥 Commits

Reviewing files that changed from the base of the PR and between ecbe4e3 and d1ed4c7.

📒 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, update source_stream_name (currently MISSING), and recalculate table_match_score and completion_score to reflect the new mapping completeness.

catalog/github/README.md (5)

5-20: Mapping for teams 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.
The reviewspull_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 the merged_at field mapping.
Currently it uses pull_requests._airbyte_extracted_at, which may not capture the actual merge timestamp. Confirm if there’s a dedicated merged_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 references domain: github.airbyte-interop and from: 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.
The table_match_score and completion_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.

Comment on lines +114 to +127
### 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.* |

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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)

Comment on lines +128 to +141
### 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.* |

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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)

Comment on lines +60 to +73
### 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.* |

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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)

Comment on lines +36 to +47
### 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.* |

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants