diff --git a/.github/workflows/package-action.yml b/.github/workflows/package-action.yml index 01dca77..0f49969 100644 --- a/.github/workflows/package-action.yml +++ b/.github/workflows/package-action.yml @@ -21,9 +21,7 @@ jobs: run: | npm i npm run build - git config --global user.email "it@atlan.com" - git config --global user.name "Atlan" - git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} + git config --global user.name "GitHub Actions" git add . - git commit -am "chore: package action" - git push -u origin main + git commit -m "chore: Update dist" || echo "No changes to commit" + git push origin HEAD:master diff --git a/.gitignore b/.gitignore index cf33b70..7a83fc2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .env node_modules/ -event.json \ No newline at end of file +event.json +.idea +.DS_Store \ No newline at end of file diff --git a/README.md b/README.md index a319ffa..d0786df 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,60 @@ -# Atlan dbt action +# Atlan dbt Action -Get comments about downstream assets affected when you make changes to your dbt model SQL files. +### Overview -## Prerequisites +--- -- Login to your Atlan Instance. -- [Create Atlan Bearer Token.](https://ask.atlan.com/hc/en-us/articles/8312649180049) +Have you changed a dbt model and realised that it broke a table or a dashboard downstream? -## Usage +To solve that, we’ve created a GitHub action that will add Atlan's lineage context right in your pull request. So before merging the PR, you know the downstream impact of the change -1. Set up your credentials as secrets in your repository settings using `ATLAN_INSTANCE_URL` and `ATLAN_API_TOKEN`. +![Github Action comment screenshot](https://iili.io/HI7d0zB.png) -2. Add the following to your workflow +### Prerequisites - ```yml - name: Atlan dbt action +--- - on: - pull_request: - types: [opened, edited, synchronize, reopened, closed] +- **Atlan API token** → [How to create Atlan api key.](https://ask.atlan.com/hc/en-us/articles/8312649180049) - jobs: - get-downstream-assets: - name: Get Downstream Assets - runs-on: ubuntu-latest - steps: - - name: Run Action - uses: atlanhq/dbt-action@v1 - with: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - ATLAN_INSTANCE_URL: ${{secrets.ATLAN_INSTANCE_URL}} - ATLAN_API_TOKEN: ${{secrets.ATLAN_API_TOKEN}} - ``` +### How to setup -## Inputs - -| Name | Description | Required | -| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -| `GITHUB_TOKEN` | Needed to write comments on PRs to print all the downstream assets. [How Github Tokens work?](https://dev.to/github/the-githubtoken-in-github-actions-how-it-works-change-permissions-customizations-3cgp) | `true` | -| `ATLAN_INSTANCE_URL` | Needed for making API requests to the user's tenant. | `true` | -| `ATLAN_API_TOKEN` | Needed for authenticating API requests to the user's tenant. [Create an Atlan Bearer Token.](https://ask.atlan.com/hc/en-us/articles/8312649180049) | `true` | +--- -## Setup +1. Set Atlan Instance URL and API Token as repository secrets in your repository. + 1. [How to set GitHub Action secrets in your repository.](https://github.com/Azure/actions-workflow-samples/blob/master/assets/create-secrets-for-GitHub-workflows.md#creating-secrets) -Check out the [documentation](https://github.com/atlanhq/dbt-action/blob/main/SETUP.md) for setting up this action and testing it locally. + ![Actions Secrets Screenshot](https://iili.io/HI7gfx2.png) -## Third Party Licenses +2. Add the GitHub Action to your workflow + 1. Create a file in the root directory of your repository, `.github/workflows/atlan-action.yml` + 2. Add the following code to your workflow file. -This GitHub Action uses a couple of Node.js modules to work. + ```yaml + name: Atlan dbt action + + on: + pull_request: + types: [opened, edited, synchronize, reopened, closed] + + jobs: + get-downstream-impact: + name: Get Downstream Assets + runs-on: ubuntu-latest + steps: + - name: Run Action + uses: atlanhq/dbt-action@v1 + with: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + ATLAN_INSTANCE_URL: ${{secrets.ATLAN_INSTANCE_URL}} + ATLAN_API_TOKEN: ${{secrets.ATLAN_API_TOKEN}} + + ``` -License and other copyright information for each module are included in the release branch of each action version under `node_modules/{module}`. -More information for each package can be found at `https://www.npmjs.com/package/{package}` - -## License +## Inputs -[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/) +| Name | Description | Required | +| --- | --- | --- | +| GITHUB_TOKEN | Needed to write comments on PRs to print all the downstream assets. https://dev.to/github/the-githubtoken-in-github-actions-how-it-works-change-permissions-customizations-3cgp | true | +| ATLAN_INSTANCE_URL | Needed for making API requests to the user's tenant. | true | +| ATLAN_API_TOKEN | Needed for authenticating API requests to the user's tenant. https://ask.atlan.com/hc/en-us/articles/8312649180049 | true | \ No newline at end of file diff --git a/action.yml b/action.yml index bcf5acc..790625b 100644 --- a/action.yml +++ b/action.yml @@ -1,5 +1,5 @@ name: "Atlan dbt Action" -description: "Get all the downstream assets that get affected when dbt model sql files are changed on pull request conversations." +description: "Whenever you make a change to a dbt model, Atlan will add downstream lienage impact context right in your pull requests." author: "Atlan" inputs: diff --git a/dist/index.js b/dist/index.js index 6b1d970..a58951e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -17738,6 +17738,8 @@ async function sendSegmentEvent(action, properties) { "content-type": "application/json", }; + var domain = new URL(segment_ATLAN_INSTANCE_URL).hostname; + var raw = JSON.stringify({ category: "integrations", object: "github", @@ -17745,6 +17747,7 @@ async function sendSegmentEvent(action, properties) { properties: { ...properties, github_action_id: `https://github.com/${github.context.payload.repository.full_name}/actions/runs/${github.context.runId}`, + domain, }, }); @@ -17754,12 +17757,16 @@ async function sendSegmentEvent(action, properties) { body: raw, }; - console.log("send segment event", action, properties); - var response = await fetch( `${segment_ATLAN_INSTANCE_URL}/api/service/segment/track`, requestOptions - ); + ) + .then(() => { + console.log("send segment event", action, raw); + }) + .catch((err) => { + console.log("couldn't send segment event", err); + }); return response; } diff --git a/src/api/segment.js b/src/api/segment.js index 6120220..292e53d 100644 --- a/src/api/segment.js +++ b/src/api/segment.js @@ -16,6 +16,8 @@ export default async function sendSegmentEvent(action, properties) { "content-type": "application/json", }; + var domain = new URL(ATLAN_INSTANCE_URL).hostname; + var raw = JSON.stringify({ category: "integrations", object: "github", @@ -23,6 +25,7 @@ export default async function sendSegmentEvent(action, properties) { properties: { ...properties, github_action_id: `https://github.com/${context.payload.repository.full_name}/actions/runs/${context.runId}`, + domain, }, }); @@ -32,12 +35,16 @@ export default async function sendSegmentEvent(action, properties) { body: raw, }; - console.log("send segment event", action, properties); - var response = await fetch( `${ATLAN_INSTANCE_URL}/api/service/segment/track`, requestOptions - ); + ) + .then(() => { + console.log("send segment event", action, raw); + }) + .catch((err) => { + console.log("couldn't send segment event", err); + }); return response; }