From 394c06b197de798f754e067a3dc42a8fbadd3782 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 10:19:10 +0200 Subject: [PATCH 01/21] add github & bitbucket template gitops --- .../upload-integration-templates.yaml | 31 ++ integrations/bitbucket/actions.json | 156 ++++++++++ integrations/bitbucket/blueprints.json | 57 ++++ integrations/bitbucket/pages.json | 290 ++++++++++++++++++ integrations/bitbucket/port-app-config.yml | 14 + integrations/bitbucket/scorecards.json | 67 ++++ integrations/github/actions.json | 163 ++++++++++ integrations/github/blueprints.json | 57 ++++ integrations/github/pages.json | 290 ++++++++++++++++++ integrations/github/port-app-config.yml | 14 + integrations/github/scorecards.json | 67 ++++ 11 files changed, 1206 insertions(+) create mode 100644 .github/workflows/upload-integration-templates.yaml create mode 100644 integrations/bitbucket/actions.json create mode 100644 integrations/bitbucket/blueprints.json create mode 100644 integrations/bitbucket/pages.json create mode 100644 integrations/bitbucket/port-app-config.yml create mode 100644 integrations/bitbucket/scorecards.json create mode 100644 integrations/github/actions.json create mode 100644 integrations/github/blueprints.json create mode 100644 integrations/github/pages.json create mode 100644 integrations/github/port-app-config.yml create mode 100644 integrations/github/scorecards.json diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml new file mode 100644 index 0000000..fc7a01f --- /dev/null +++ b/.github/workflows/upload-integration-templates.yaml @@ -0,0 +1,31 @@ +name: Release integrations +on: + push: + branches: + - main + paths: + - integrations/** + +jobs: + upload-specs: + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + needs: release-integration + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Configure AWS Credentials 🔒 + id: aws-credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Upload specifications to s3 + run: | + # AWS S3 bucket details + aws_s3_bucket="advance-templates" + + aws s3 cp integrations/ "s3://$aws_s3_bucket/integrations" --recursive diff --git a/integrations/bitbucket/actions.json b/integrations/bitbucket/actions.json new file mode 100644 index 0000000..e5ada72 --- /dev/null +++ b/integrations/bitbucket/actions.json @@ -0,0 +1,156 @@ +[ + { + "identifier": "bitbucket_scaffold_service", + "title": "Scaffold Service", + "icon": "Microservice", + "userInputs": { + "properties": { + "service_name": { + "title": "Service Name", + "description": "The new service's name", + "type": "string" + } + }, + "required": [ + "service_name" + ], + "order": [ + "service_name" + ] + }, + "invocationMethod": { + "type": "WEBHOOK", + "agent": false, + "url": "https:///generic-webhook-trigger/invoke?token=", + "synchronized": true, + "method": "POST" + }, + "trigger": "CREATE", + "description": "To complete setting up this action, please follow following guide: [Setup scaffold service action ->](https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service/)", + "requiredApproval": false, + "blueprint": "service" + }, + { + "identifier": "bitbucket_send_scorecard_reminder", + "icon": "Slack", + "title": "Send scorecard reminder", + "userInputs": { + "properties": {}, + "required": [] + }, + "invocationMethod": { + "type": "WEBHOOK", + "agent": false, + "url": "https:///generic-webhook-trigger/invoke?token=", + "synchronized": true, + "method": "POST" + }, + "trigger": "CREATE", + "description": "To complete setting up this action, please follow following guide: [Setup send scorecard reminder action ->](https://docs.getport.io/)", + "requiredApproval": false, + "blueprint": "service" + }, + { + "identifier": "bitbucket_enrich_service", + "title": "Enrich service", + "icon": "Git", + "userInputs": { + "properties": { + "type": { + "icon": "BlankPage", + "title": "Type", + "description": "The service's type", + "type": "string", + "enum": [ + "backend", + "frontend", + "integration" + ], + "enumColors": { + "backend": "lightGray", + "frontend": "lightGray", + "integration": "lightGray" + } + }, + "lifecycle": { + "icon": "CICD", + "title": "Lifecycle", + "description": "The service's lifecycle state", + "type": "string", + "enum": [ + "Production", + "Experimental", + "Deprecated" + ], + "enumColors": { + "Production": "green", + "Experimental": "orange", + "Deprecated": "red" + } + } + }, + "required": [], + "order": [ + "type", + "lifecycle" + ] + }, + "invocationMethod": { + "type": "WEBHOOK", + "agent": false, + "url": "https:///generic-webhook-trigger/invoke?token=", + "synchronized": true, + "method": "POST" + }, + "trigger": "DAY-2", + "description": "To complete setting up this action, please follow following guide: [Setup enrich service action ->](https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops/)", + "requiredApproval": false, + "blueprint": "service" + }, + { + "identifier": "bitbucket_create_s3_bucket", + "icon": "S3", + "title": "Create s3 bucket", + "userInputs": { + "properties": { + "name": { + "title": "Name", + "description": "The name of the cloud resource", + "type": "string" + }, + "visibility": { + "title": "Visibility", + "description": "The resource's public/private visibility", + "type": "string", + "enum": [ + "public", + "private" + ], + "enumColors": { + "public": "green", + "private": "red" + } + } + }, + "required": [ + "name", + "visibility" + ], + "order": [ + "name", + "visibility" + ] + }, + "invocationMethod": { + "type": "WEBHOOK", + "agent": false, + "synchronized": false, + "method": "POST", + "url": "https:///generic-webhook-trigger/invoke?token=" + }, + "trigger": "DAY-2", + "description": "To complete setting up this action, please follow following guide: [Setup create s3 bucket ->](https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac/)", + "requiredApproval": false, + "blueprint": "service" + } +] \ No newline at end of file diff --git a/integrations/bitbucket/blueprints.json b/integrations/bitbucket/blueprints.json new file mode 100644 index 0000000..33ebdd1 --- /dev/null +++ b/integrations/bitbucket/blueprints.json @@ -0,0 +1,57 @@ +[ + { + "identifier": "service", + "title": "Service", + "icon": "BitBucket", + "schema": { + "properties": { + "readme": { + "title": "README", + "type": "string", + "format": "markdown", + "icon": "Book" + }, + "url": { + "title": "URL", + "format": "url", + "type": "string", + "icon": "Link" + }, + "language": { + "type": "string", + "title": "Language", + "icon": "Git" + }, + "slack": { + "icon": "Slack", + "type": "string", + "title": "Slack", + "format": "url" + }, + "tier": { + "title": "Tier", + "type": "string", + "description": "How mission-critical the service is", + "enum": [ + "Mission Critical", + "Customer Facing", + "Internal Service", + "Other" + ], + "enumColors": { + "Mission Critical": "turquoise", + "Customer Facing": "green", + "Internal Service": "darkGray", + "Other": "yellow" + }, + "icon": "DefaultProperty" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": {} + } +] \ No newline at end of file diff --git a/integrations/bitbucket/pages.json b/integrations/bitbucket/pages.json new file mode 100644 index 0000000..2154a69 --- /dev/null +++ b/integrations/bitbucket/pages.json @@ -0,0 +1,290 @@ +[ + { + "icon": "Apps", + "title": "Service Dashboard", + "protected": false, + "widgets": [ + { + "id": "1", + "type": "dashboard-widget", + "layout": [ + { + "height": 400, + "columns": [ + { + "id": "bitbucketScorecardReadme", + "size": 8 + }, + { + "id": "bitbucketServicesByLanguageChart", + "size": 4 + } + ] + }, + { + "height": 400, + "columns": [ + { + "id": "bitbucketExternalDashboard", + "size": 6 + }, + { + "id": "bitbucketNumberOfPythonServices", + "size": 6 + } + ] + } + ], + "widgets": [ + { + "id": "bitbucketScorecardReadme", + "title": "Port Dashboards", + "description": "", + "markdown": "[Dashboards](https://docs.getport.io/customize-pages-dashboards-and-plugins/page/dashboard-page) enable you to visualize the data from your catalog. Dashboards contain various widgets that display the data in different ways, such as pie charts, number charts, iframes, and more. You can create pages and dashboards for specific processes and expose them to the relevant people using [page permissions](https://docs.getport.io/customize-pages-dashboards-and-plugins/page/page-permissions).\n\nHere are some ideas for dashboards\n- [SVP engineering dashboard](https://demo.getport.io/dashboard_svp_engineering)\n- [Security dashboard](https://demo.getport.io/dashboard_security)\n- [SRE dashboard](https://demo.getport.io/dashboard_sre)", + "type": "markdown", + "icon": "port" + }, + { + "icon": "PieChart", + "id": "bitbucketServicesByLanguageChart", + "type": "entities-pie-chart", + "description": "", + "title": "Services By Language", + "dataset": { + "combinator": "and", + "rules": [ + { + "operator": "=", + "value": "service", + "property": "$blueprint" + } + ] + }, + "property": "property#language" + }, + { + "title": "External dashboard", + "id": "bitbucketExternalDashboard", + "description": "", + "icon": "Code", + "urlType": "public", + "url": "https://port-graphical-assets.s3.eu-west-1.amazonaws.com/Widget+Preview.html", + "type": "iframe-widget" + }, + { + "blueprint": "service", + "id": "bitbucketNumberOfPythonServices", + "calculationBy": "entities", + "unit": "none", + "description": "", + "title": "Number of Python Services", + "dataset": [ + { + "property": "language", + "operator": "in", + "value": [ + "Python", + "python" + ] + }, + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ], + "func": "count", + "type": "entities-number-chart", + "icon": "Metric" + } + ] + } + ], + "identifier": "bitbucket-Service-Dashboard", + "showInSidebar": true, + "requiredQueryParams": [], + "section": "software_catalog", + "type": "dashboard" + }, + { + "icon": "Scorecards", + "title": "Production Readiness", + "protected": false, + "widgets": [ + { + "id": "bitbucketDashboardWidget", + "type": "dashboard-widget", + "layout": [ + { + "height": 400, + "columns": [ + { + "id": "bitbucketReadme", + "size": 8 + }, + { + "id": "bitbucketLevelsSummaryEntitiesPieChart", + "size": 4 + } + ] + }, + { + "height": 455, + "columns": [ + { + "id": "bitbucketServicesByLevelTable", + "size": 12 + } + ] + }, + { + "height": 400, + "columns": [ + { + "id": "bitbucketHasReadmeEntitiesPieChart", + "size": 4 + }, + { + "id": "bitbucketUseSupLangEntitiesPieChart", + "size": 4 + }, + { + "id": "bitbucketHasTeamEntitiesPieChart", + "size": 4 + } + ] + } + ], + "widgets": [ + { + "title": "Scorecard dashboard", + "description": "", + "markdown": "[Scorecards](https://docs.getport.io/promote-scorecards/) are a way for you and your team to define and measure standards in different categories, such as service maturity, production readiness, quality, productivity, and more. Scorecards contain [rules](https://docs.getport.io/promote-scorecards/#rule-elements) that determine its overall score (such as bronze, silver, and gold).\n\nThis dashboard is based on the \"Production Readiness\" scorecard we automatically created for you. It contains the following rules:\n- Has a readme (Bronze rule) - checks if the service has a readme file in the repository\n- Uses a supported language (Silver rule) - checks if the service is using one of the supported languages\n- Has a team (Gold rule) - checks if the service has a team that owns it (according to the \"team\" property of the service)", + "type": "markdown", + "icon": "port", + "id": "bitbucketReadme" + }, + { + "id": "bitbucketLevelsSummaryEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard#ProductionReadiness", + "title": "Levels summary", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "bitbucketServicesByLevelTable", + "type": "table-entities-explorer", + "title": "Services by level", + "icon": "Users", + "blueprintConfig": { + "service": { + "groupSettings": { + "groupBy": [ + "ProductionReadiness" + ] + }, + "propertiesSettings": { + "hidden": [ + "$identifier", + "$updatedAt", + "$createdAt", + "readme", + "url", + "language", + "slack", + "tier" + ], + "order": [] + }, + "sortSettings": { + "sortBy": [ + { + "property": "ProductionReadiness", + "order": "asc" + } + ] + } + } + }, + "displayMode": "widget", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "bitbucketHasReadmeEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard-rule#ProductionReadiness#hasReadme", + "title": "Has a readme", + "icon": "Star", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "bitbucketUseSupLangEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard-rule#ProductionReadiness#usesASupportedLanguage", + "title": "Uses a supported language", + "icon": "Star", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "bitbucketHasTeamEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard-rule#ProductionReadiness#hasTeam", + "title": "Has Team", + "icon": "Star", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + } + ] + } + ], + "identifier": "bitbucketProductionReadinessDashboard", + "showInSidebar": true, + "requiredQueryParams": [], + "section": "software_catalog", + "type": "dashboard" + } +] \ No newline at end of file diff --git a/integrations/bitbucket/port-app-config.yml b/integrations/bitbucket/port-app-config.yml new file mode 100644 index 0000000..068442e --- /dev/null +++ b/integrations/bitbucket/port-app-config.yml @@ -0,0 +1,14 @@ +resources: + - kind: repository + selector: + query: 'true' + port: + entity: + mappings: + identifier: .name + title: .name + blueprint: '"service"' + properties: + readme: file://README.md + url: .html_url + language: .language \ No newline at end of file diff --git a/integrations/bitbucket/scorecards.json b/integrations/bitbucket/scorecards.json new file mode 100644 index 0000000..eff4511 --- /dev/null +++ b/integrations/bitbucket/scorecards.json @@ -0,0 +1,67 @@ +[ + { + "identifier": "ProductionReadiness", + "title": "Production Readiness", + "blueprint": "service", + "rules": [ + { + "identifier": "hasReadme", + "title": "Has a readme", + "level": "Bronze", + "query": { + "combinator": "and", + "conditions": [ + { + "operator": "isNotEmpty", + "property": "readme" + } + ] + } + }, + { + "identifier": "usesASupportedLanguage", + "title": "Uses a supported language", + "level": "Silver", + "query": { + "combinator": "or", + "conditions": [ + { + "operator": "=", + "property": "language", + "value": "Python" + }, + { + "operator": "=", + "property": "language", + "value": "JavaScript" + }, + { + "operator": "=", + "property": "language", + "value": "React" + }, + { + "operator": "=", + "property": "language", + "value": "GoLang" + } + ] + } + }, + { + "identifier": "hasTeam", + "title": "Has Team", + "level": "Gold", + "query": { + "combinator": "and", + "conditions": [ + { + "operator": "isNotEmpty", + "property": "$team" + } + ] + } + } + ] + } +] \ No newline at end of file diff --git a/integrations/github/actions.json b/integrations/github/actions.json new file mode 100644 index 0000000..1de00d3 --- /dev/null +++ b/integrations/github/actions.json @@ -0,0 +1,163 @@ +[ + { + "identifier": "github_scaffold_service", + "title": "Scaffold Service", + "icon": "Microservice", + "userInputs": { + "properties": { + "service_name": { + "title": "Service Name", + "description": "The new service's name", + "type": "string" + } + }, + "required": [ + "service_name" + ], + "order": [ + "service_name" + ] + }, + "invocationMethod": { + "type": "GITHUB", + "omitPayload": false, + "omitUserInputs": true, + "reportWorkflowStatus": true, + "org": "Fill here your org name", + "repo": "Fill here your repo name", + "workflow": "Fill here your workflow name" + }, + "trigger": "CREATE", + "description": "To complete setting up this action, please follow following guide: [Setup scaffold service action ->](https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service/)", + "requiredApproval": false, + "blueprint": "service" + }, + { + "identifier": "github_send_scorecard_reminder", + "title": "Send scorecard reminder", + "userInputs": { + "properties": {}, + "required": [] + }, + "invocationMethod": { + "type": "GITHUB", + "omitPayload": false, + "omitUserInputs": false, + "reportWorkflowStatus": true, + "org": "Fill here your org name", + "repo": "Fill here your repo name", + "workflow": "Fill here your workflow name" + }, + "trigger": "CREATE", + "description": "To complete setting up this action, please follow following guide: [Setup send scorecard reminder action ->](https://docs.getport.io/)", + "requiredApproval": false, + "blueprint": "service" + }, + { + "identifier": "github_enrich_service", + "title": "Enrich service", + "icon": "Git", + "userInputs": { + "properties": { + "type": { + "icon": "BlankPage", + "title": "Type", + "description": "The service's type", + "type": "string", + "enum": [ + "backend", + "frontend", + "integration" + ], + "enumColors": { + "backend": "lightGray", + "frontend": "lightGray", + "integration": "lightGray" + } + }, + "lifecycle": { + "icon": "CICD", + "title": "Lifecycle", + "description": "The service's lifecycle state", + "type": "string", + "enum": [ + "Production", + "Experimental", + "Deprecated" + ], + "enumColors": { + "Production": "green", + "Experimental": "orange", + "Deprecated": "red" + } + } + }, + "required": [], + "order": [ + "type", + "lifecycle" + ] + }, + "invocationMethod": { + "type": "GITHUB", + "omitPayload": false, + "omitUserInputs": false, + "reportWorkflowStatus": true, + "org": "Fill here your org name", + "repo": "Fill here your repo name", + "workflow": "Fill here your workflow name" + }, + "trigger": "DAY-2", + "description": "To complete setting up this action, please follow following guide: [Setup enrich service action ->](https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops/)", + "requiredApproval": false, + "blueprint": "service" + }, + { + "identifier": "github_create_s3_bucket", + "icon": "S3", + "title": "Create s3 bucket", + "userInputs": { + "properties": { + "name": { + "title": "Name", + "description": "The name of the cloud resource", + "type": "string" + }, + "visibility": { + "title": "Visibility", + "description": "The resource's public/private visibility", + "type": "string", + "enum": [ + "public", + "private" + ], + "enumColors": { + "public": "green", + "private": "red" + } + } + }, + "required": [ + "name", + "visibility" + ], + "order": [ + "name", + "visibility" + ] + }, + "invocationMethod": { + "type": "GITHUB", + "omitPayload": false, + "omitUserInputs": false, + "reportWorkflowStatus": true, + "org": "Fill here your org name", + "repo": "Fill here your repo name", + "workflow": "Fill here your workflow name" + }, + "trigger": "DAY-2", + "description": "To complete setting up this action, please follow following guide: [Setup create s3 bucket ->](https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac/)", + "requiredApproval": false, + "blueprint": "service" + } +] \ No newline at end of file diff --git a/integrations/github/blueprints.json b/integrations/github/blueprints.json new file mode 100644 index 0000000..03ea465 --- /dev/null +++ b/integrations/github/blueprints.json @@ -0,0 +1,57 @@ +[ + { + "identifier": "service", + "title": "Service", + "icon": "Github", + "schema": { + "properties": { + "readme": { + "title": "README", + "type": "string", + "format": "markdown", + "icon": "Book" + }, + "url": { + "title": "URL", + "format": "url", + "type": "string", + "icon": "Link" + }, + "language": { + "type": "string", + "title": "Language", + "icon": "Git" + }, + "slack": { + "icon": "Slack", + "type": "string", + "title": "Slack", + "format": "url" + }, + "tier": { + "title": "Tier", + "type": "string", + "description": "How mission-critical the service is", + "enum": [ + "Mission Critical", + "Customer Facing", + "Internal Service", + "Other" + ], + "enumColors": { + "Mission Critical": "turquoise", + "Customer Facing": "green", + "Internal Service": "darkGray", + "Other": "yellow" + }, + "icon": "DefaultProperty" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": {} + } +] \ No newline at end of file diff --git a/integrations/github/pages.json b/integrations/github/pages.json new file mode 100644 index 0000000..013fad7 --- /dev/null +++ b/integrations/github/pages.json @@ -0,0 +1,290 @@ +[ + { + "icon": "Apps", + "title": "Service Dashboard", + "protected": false, + "widgets": [ + { + "id": "1", + "type": "dashboard-widget", + "layout": [ + { + "height": 400, + "columns": [ + { + "id": "githubScorecardReadme", + "size": 8 + }, + { + "id": "githubServicesByLanguageChart", + "size": 4 + } + ] + }, + { + "height": 400, + "columns": [ + { + "id": "githubExternalDashboard", + "size": 6 + }, + { + "id": "githubNumberOfPythonServices", + "size": 6 + } + ] + } + ], + "widgets": [ + { + "id": "githubScorecardReadme", + "title": "Port Dashboards", + "description": "", + "markdown": "[Dashboards](https://docs.getport.io/customize-pages-dashboards-and-plugins/page/dashboard-page) enable you to visualize the data from your catalog. Dashboards contain various widgets that display the data in different ways, such as pie charts, number charts, iframes, and more. You can create pages and dashboards for specific processes and expose them to the relevant people using [page permissions](https://docs.getport.io/customize-pages-dashboards-and-plugins/page/page-permissions).\n\nHere are some ideas for dashboards\n- [SVP engineering dashboard](https://demo.getport.io/dashboard_svp_engineering)\n- [Security dashboard](https://demo.getport.io/dashboard_security)\n- [SRE dashboard](https://demo.getport.io/dashboard_sre)", + "type": "markdown", + "icon": "port" + }, + { + "icon": "PieChart", + "id": "githubServicesByLanguageChart", + "type": "entities-pie-chart", + "description": "", + "title": "Services By Language", + "dataset": { + "combinator": "and", + "rules": [ + { + "operator": "=", + "value": "service", + "property": "$blueprint" + } + ] + }, + "property": "property#language" + }, + { + "title": "External dashboard", + "id": "githubExternalDashboard", + "description": "", + "icon": "Code", + "urlType": "public", + "url": "https://port-graphical-assets.s3.eu-west-1.amazonaws.com/Widget+Preview.html", + "type": "iframe-widget" + }, + { + "blueprint": "service", + "id": "githubNumberOfPythonServices", + "calculationBy": "entities", + "unit": "none", + "description": "", + "title": "Number of Python Services", + "dataset": [ + { + "property": "language", + "operator": "in", + "value": [ + "Python", + "python" + ] + }, + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ], + "func": "count", + "type": "entities-number-chart", + "icon": "Metric" + } + ] + } + ], + "identifier": "github-Service-Dashboard", + "showInSidebar": true, + "requiredQueryParams": [], + "section": "software_catalog", + "type": "dashboard" + }, + { + "icon": "Scorecards", + "title": "Production Readiness", + "protected": false, + "widgets": [ + { + "id": "githubDashboardWidget", + "type": "dashboard-widget", + "layout": [ + { + "height": 400, + "columns": [ + { + "id": "githubReadme", + "size": 8 + }, + { + "id": "githubLevelsSummaryEntitiesPieChart", + "size": 4 + } + ] + }, + { + "height": 455, + "columns": [ + { + "id": "githubServicesByLevelTable", + "size": 12 + } + ] + }, + { + "height": 400, + "columns": [ + { + "id": "githubHasReadmeEntitiesPieChart", + "size": 4 + }, + { + "id": "githubUseSupLangEntitiesPieChart", + "size": 4 + }, + { + "id": "githubHasTeamEntitiesPieChart", + "size": 4 + } + ] + } + ], + "widgets": [ + { + "title": "Scorecard dashboard", + "description": "", + "markdown": "[Scorecards](https://docs.getport.io/promote-scorecards/) are a way for you and your team to define and measure standards in different categories, such as service maturity, production readiness, quality, productivity, and more. Scorecards contain [rules](https://docs.getport.io/promote-scorecards/#rule-elements) that determine its overall score (such as bronze, silver, and gold).\n\nThis dashboard is based on the \"Production Readiness\" scorecard we automatically created for you. It contains the following rules:\n- Has a readme (Bronze rule) - checks if the service has a readme file in the repository\n- Uses a supported language (Silver rule) - checks if the service is using one of the supported languages\n- Has a team (Gold rule) - checks if the service has a team that owns it (according to the \"team\" property of the service)", + "type": "markdown", + "icon": "port", + "id": "githubReadme" + }, + { + "id": "githubLevelsSummaryEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard#ProductionReadiness", + "title": "Levels summary", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "githubServicesByLevelTable", + "type": "table-entities-explorer", + "title": "Services by level", + "icon": "Users", + "blueprintConfig": { + "service": { + "groupSettings": { + "groupBy": [ + "ProductionReadiness" + ] + }, + "propertiesSettings": { + "hidden": [ + "$identifier", + "$updatedAt", + "$createdAt", + "readme", + "url", + "language", + "slack", + "tier" + ], + "order": [] + }, + "sortSettings": { + "sortBy": [ + { + "property": "ProductionReadiness", + "order": "asc" + } + ] + } + } + }, + "displayMode": "widget", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "githubHasReadmeEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard-rule#ProductionReadiness#hasReadme", + "title": "Has a readme", + "icon": "Star", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "githubUseSupLangEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard-rule#ProductionReadiness#usesASupportedLanguage", + "title": "Uses a supported language", + "icon": "Star", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + }, + { + "id": "githubHasTeamEntitiesPieChart", + "type": "entities-pie-chart", + "property": "scorecard-rule#ProductionReadiness#hasTeam", + "title": "Has Team", + "icon": "Star", + "dataset": { + "combinator": "and", + "rules": [ + { + "property": "$blueprint", + "operator": "=", + "value": "service" + } + ] + } + } + ] + } + ], + "identifier": "githubProductionReadinessDashboard", + "showInSidebar": true, + "requiredQueryParams": [], + "section": "software_catalog", + "type": "dashboard" + } +] \ No newline at end of file diff --git a/integrations/github/port-app-config.yml b/integrations/github/port-app-config.yml new file mode 100644 index 0000000..068442e --- /dev/null +++ b/integrations/github/port-app-config.yml @@ -0,0 +1,14 @@ +resources: + - kind: repository + selector: + query: 'true' + port: + entity: + mappings: + identifier: .name + title: .name + blueprint: '"service"' + properties: + readme: file://README.md + url: .html_url + language: .language \ No newline at end of file diff --git a/integrations/github/scorecards.json b/integrations/github/scorecards.json new file mode 100644 index 0000000..eff4511 --- /dev/null +++ b/integrations/github/scorecards.json @@ -0,0 +1,67 @@ +[ + { + "identifier": "ProductionReadiness", + "title": "Production Readiness", + "blueprint": "service", + "rules": [ + { + "identifier": "hasReadme", + "title": "Has a readme", + "level": "Bronze", + "query": { + "combinator": "and", + "conditions": [ + { + "operator": "isNotEmpty", + "property": "readme" + } + ] + } + }, + { + "identifier": "usesASupportedLanguage", + "title": "Uses a supported language", + "level": "Silver", + "query": { + "combinator": "or", + "conditions": [ + { + "operator": "=", + "property": "language", + "value": "Python" + }, + { + "operator": "=", + "property": "language", + "value": "JavaScript" + }, + { + "operator": "=", + "property": "language", + "value": "React" + }, + { + "operator": "=", + "property": "language", + "value": "GoLang" + } + ] + } + }, + { + "identifier": "hasTeam", + "title": "Has Team", + "level": "Gold", + "query": { + "combinator": "and", + "conditions": [ + { + "operator": "isNotEmpty", + "property": "$team" + } + ] + } + } + ] + } +] \ No newline at end of file From 184bf6a35f0634ee31a6963ea830df58f154c612 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 10:19:47 +0200 Subject: [PATCH 02/21] update --- .github/workflows/upload-integration-templates.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index fc7a01f..d503e2e 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -1,9 +1,10 @@ -name: Release integrations +name: Upload integration templates on: push: branches: - main paths: + # we only want to run this workflow when changes are made to the integrations folder - integrations/** jobs: @@ -12,7 +13,7 @@ jobs: permissions: packages: write contents: read - needs: release-integration + needs: upload-integrations steps: - name: Check out code uses: actions/checkout@v4 From 7af1df317b25d01f50f52fc03a34d2d7e07bb065 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 10:21:34 +0200 Subject: [PATCH 03/21] update naming --- .github/workflows/upload-integration-templates.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index d503e2e..8c41c82 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -8,7 +8,7 @@ on: - integrations/** jobs: - upload-specs: + upload-templates: runs-on: ubuntu-latest permissions: packages: write From cb25b968c977160b9a362bdc8968b4dec1767db9 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 11:43:14 +0200 Subject: [PATCH 04/21] update --- .../upload-integration-templates.yaml | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 8c41c82..c3645e2 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -7,6 +7,14 @@ on: # we only want to run this workflow when changes are made to the integrations folder - integrations/** + # when running the workflow manually upload to stg bucket + workflow_dispatch: + inputs: + bucket_environment: + description: 'Environment to deploy to, either stg or prod' + required: true + default: 'stg' + jobs: upload-templates: runs-on: ubuntu-latest @@ -24,9 +32,15 @@ jobs: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - - name: Upload specifications to s3 + - name: resolve the aws s3 bucket name + id: resolve-bucket-name + # if part of push then always prod, if part of workflow_dispatch then use the input + # if stg then stg-01 if prod then no need to append run: | - # AWS S3 bucket details - aws_s3_bucket="advance-templates" - - aws s3 cp integrations/ "s3://$aws_s3_bucket/integrations" --recursive + if [[ "${{ github.event_name }}" == "push" || "${{ github.event.inputs.environment }}" == "prod" ]]; then + echo "bucket_name=advance-templates" >> $GITHUB_OUTPUT + elif [[ "${{ github.event.inputs.environment }}" == "stg" ]]; then + echo "bucket_name=advance-templates-stg-01" >> $GITHUB_OUTPUT + fi + - name: Upload specifications to s3 + run: aws s3 cp integrations/ "s3://${{ steps.resolve-bucket-name.output.bucket_name }}/integrations" --recursive From 566bfac13204de832b9a4d6da74c93e19663212a Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 11:44:31 +0200 Subject: [PATCH 05/21] update workflow --- .github/workflows/upload-integration-templates.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index c3645e2..71d55d0 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -14,6 +14,9 @@ on: description: 'Environment to deploy to, either stg or prod' required: true default: 'stg' + options: + - 'stg' + - 'prod' jobs: upload-templates: From 5e922225a10a10ef802d8ffafec5aea1948240d9 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 11:57:07 +0200 Subject: [PATCH 06/21] allow on stg runs in manual dispatch --- .github/workflows/upload-integration-templates.yaml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 71d55d0..cdcec9e 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -13,10 +13,9 @@ on: bucket_environment: description: 'Environment to deploy to, either stg or prod' required: true - default: 'stg' + default: 'stg-01' options: - - 'stg' - - 'prod' + - 'stg-01' jobs: upload-templates: @@ -37,13 +36,11 @@ jobs: aws-region: ${{ secrets.AWS_REGION }} - name: resolve the aws s3 bucket name id: resolve-bucket-name - # if part of push then always prod, if part of workflow_dispatch then use the input - # if stg then stg-01 if prod then no need to append run: | - if [[ "${{ github.event_name }}" == "push" || "${{ github.event.inputs.environment }}" == "prod" ]]; then + if [[ "${{ github.event_name }}" == "push"; then echo "bucket_name=advance-templates" >> $GITHUB_OUTPUT - elif [[ "${{ github.event.inputs.environment }}" == "stg" ]]; then - echo "bucket_name=advance-templates-stg-01" >> $GITHUB_OUTPUT + else: + echo "bucket_name=advance-templates-${{ github.event.inputs.bucket_environment }}" >> $GITHUB_OUTPUT fi - name: Upload specifications to s3 run: aws s3 cp integrations/ "s3://${{ steps.resolve-bucket-name.output.bucket_name }}/integrations" --recursive From d416cb763b58dadcd37277f0920a8d2d4f61215a Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:10:38 +0200 Subject: [PATCH 07/21] update actions --- integrations/bitbucket/actions.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/integrations/bitbucket/actions.json b/integrations/bitbucket/actions.json index e5ada72..7d02945 100644 --- a/integrations/bitbucket/actions.json +++ b/integrations/bitbucket/actions.json @@ -20,9 +20,9 @@ }, "invocationMethod": { "type": "WEBHOOK", - "agent": false, - "url": "https:///generic-webhook-trigger/invoke?token=", - "synchronized": true, + "agent": true, + "url": "https://example.com", + "synchronized": false, "method": "POST" }, "trigger": "CREATE", @@ -40,9 +40,9 @@ }, "invocationMethod": { "type": "WEBHOOK", - "agent": false, - "url": "https:///generic-webhook-trigger/invoke?token=", - "synchronized": true, + "agent": true, + "url": "https://example.com", + "synchronized": false, "method": "POST" }, "trigger": "CREATE", @@ -143,10 +143,10 @@ }, "invocationMethod": { "type": "WEBHOOK", - "agent": false, + "agent": true, + "url": "https://example.com", "synchronized": false, - "method": "POST", - "url": "https:///generic-webhook-trigger/invoke?token=" + "method": "POST" }, "trigger": "DAY-2", "description": "To complete setting up this action, please follow following guide: [Setup create s3 bucket ->](https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac/)", From 57d5957276dc626190b9a47d6f8df039c7231797 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:32:50 +0200 Subject: [PATCH 08/21] on pull request need to delete --- .github/workflows/upload-integration-templates.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index cdcec9e..91e8511 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -6,6 +6,7 @@ on: paths: # we only want to run this workflow when changes are made to the integrations folder - integrations/** + pull_request: # when running the workflow manually upload to stg bucket workflow_dispatch: From 7f50d75e612dae3331ffdb2346282e710fb5dd54 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:34:35 +0200 Subject: [PATCH 09/21] remove --- .github/workflows/upload-integration-templates.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 91e8511..c9cb400 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -24,7 +24,6 @@ jobs: permissions: packages: write contents: read - needs: upload-integrations steps: - name: Check out code uses: actions/checkout@v4 From 27d4686c63b6bea81cc5cbaeb68dc56c7937b98c Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:34:57 +0200 Subject: [PATCH 10/21] update --- .github/workflows/upload-integration-templates.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index c9cb400..61b27a4 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -6,7 +6,6 @@ on: paths: # we only want to run this workflow when changes are made to the integrations folder - integrations/** - pull_request: # when running the workflow manually upload to stg bucket workflow_dispatch: From c7f2321113e6c70b28e8f445f6785f53405a45f0 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:37:29 +0200 Subject: [PATCH 11/21] oops --- .github/workflows/upload-integration-templates.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 61b27a4..315e9fe 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -6,6 +6,7 @@ on: paths: # we only want to run this workflow when changes are made to the integrations folder - integrations/** + pull_request: # when running the workflow manually upload to stg bucket workflow_dispatch: @@ -36,10 +37,10 @@ jobs: - name: resolve the aws s3 bucket name id: resolve-bucket-name run: | - if [[ "${{ github.event_name }}" == "push"; then + if [[ "${{ github.event_name }}" == "push" ]]; then echo "bucket_name=advance-templates" >> $GITHUB_OUTPUT else: - echo "bucket_name=advance-templates-${{ github.event.inputs.bucket_environment }}" >> $GITHUB_OUTPUT + echo "bucket_name=advance-templates-stg-01" >> $GITHUB_OUTPUT fi - name: Upload specifications to s3 run: aws s3 cp integrations/ "s3://${{ steps.resolve-bucket-name.output.bucket_name }}/integrations" --recursive From d7d343581693ac3c8f43a96305ea767e8991d01a Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:38:28 +0200 Subject: [PATCH 12/21] outputs --- .github/workflows/upload-integration-templates.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 315e9fe..cdb1036 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -43,4 +43,4 @@ jobs: echo "bucket_name=advance-templates-stg-01" >> $GITHUB_OUTPUT fi - name: Upload specifications to s3 - run: aws s3 cp integrations/ "s3://${{ steps.resolve-bucket-name.output.bucket_name }}/integrations" --recursive + run: aws s3 cp integrations/ "s3://${{ steps.resolve-bucket-name.outputs.bucket_name }}/integrations" --recursive From 0e4993a144bf0b6dd3e90f03c48cabfc2e73867f Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:55:10 +0200 Subject: [PATCH 13/21] update --- .github/workflows/upload-integration-templates.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index cdb1036..3a68d0d 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -43,4 +43,4 @@ jobs: echo "bucket_name=advance-templates-stg-01" >> $GITHUB_OUTPUT fi - name: Upload specifications to s3 - run: aws s3 cp integrations/ "s3://${{ steps.resolve-bucket-name.outputs.bucket_name }}/integrations" --recursive + run: aws s3 cp integrations/ s3://${{ steps.resolve-bucket-name.outputs.bucket_name }}/integrations/ --recursive From b698ed053955f1024ab1a4cf9aab86121291b9c2 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 15:59:00 +0200 Subject: [PATCH 14/21] yalla env --- .github/workflows/upload-integration-templates.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 3a68d0d..88612f3 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -38,9 +38,11 @@ jobs: id: resolve-bucket-name run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "bucket_name=advance-templates" >> $GITHUB_OUTPUT + echo "BUCKET_NAME=advance-templates" >> $GITHUB_OUTPUT else: - echo "bucket_name=advance-templates-stg-01" >> $GITHUB_OUTPUT + echo "BUCKET_NAME=advance-templates-stg-01" >> $GITHUB_OUTPUT fi - name: Upload specifications to s3 - run: aws s3 cp integrations/ s3://${{ steps.resolve-bucket-name.outputs.bucket_name }}/integrations/ --recursive + env: + BUCKET_NAME: ${{ steps.resolve-bucket-name.outputs.BUCKET_NAME }} + run: aws s3 cp integrations/ s3://${{ env.BUCKET_NAME }}/integrations/ --recursive From 0ceafc0e73a644ca2600069c2dbdea00fea3ed94 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 16:01:06 +0200 Subject: [PATCH 15/21] yalla else --- .github/workflows/upload-integration-templates.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 88612f3..38b9089 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -39,10 +39,8 @@ jobs: run: | if [[ "${{ github.event_name }}" == "push" ]]; then echo "BUCKET_NAME=advance-templates" >> $GITHUB_OUTPUT - else: + else echo "BUCKET_NAME=advance-templates-stg-01" >> $GITHUB_OUTPUT fi - name: Upload specifications to s3 - env: - BUCKET_NAME: ${{ steps.resolve-bucket-name.outputs.BUCKET_NAME }} - run: aws s3 cp integrations/ s3://${{ env.BUCKET_NAME }}/integrations/ --recursive + run: aws s3 cp integrations/ s3://${{ steps.resolve-bucket-name.outputs.BUCKET_NAME }}/integrations/ --recursive From 46eddd32f3dbd24b7b98347022fd72f836bdc6ba Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 16:02:56 +0200 Subject: [PATCH 16/21] remove pull requests --- .github/workflows/upload-integration-templates.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/upload-integration-templates.yaml b/.github/workflows/upload-integration-templates.yaml index 38b9089..482ab28 100644 --- a/.github/workflows/upload-integration-templates.yaml +++ b/.github/workflows/upload-integration-templates.yaml @@ -6,7 +6,6 @@ on: paths: # we only want to run this workflow when changes are made to the integrations folder - integrations/** - pull_request: # when running the workflow manually upload to stg bucket workflow_dispatch: From 482a73fc2cbeb54c9953b9fa980b8e4380cdf5d4 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 17:03:38 +0200 Subject: [PATCH 17/21] adjust --- integrations/bitbucket/actions.json | 26 ++++++++++++++++++++------ integrations/github/actions.json | 8 ++++---- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/integrations/bitbucket/actions.json b/integrations/bitbucket/actions.json index 7d02945..459a073 100644 --- a/integrations/bitbucket/actions.json +++ b/integrations/bitbucket/actions.json @@ -9,13 +9,27 @@ "title": "Service Name", "description": "The new service's name", "type": "string" + }, + "bitbucket_workspace_name": { + "title": "Bitbucket Workspace Name", + "description": "The workspace to create the new service in", + "type": "string" + }, + "bitbucket_project_key": { + "title": "Bitbucket Project Key", + "description": "Bitbucket project key symbol", + "type": "string" } }, "required": [ - "service_name" + "service_name", + "bitbucket_workspace_name", + "bitbucket_project_key" ], "order": [ - "service_name" + "service_name", + "bitbucket_workspace_name", + "bitbucket_project_key" ] }, "invocationMethod": { @@ -26,7 +40,7 @@ "method": "POST" }, "trigger": "CREATE", - "description": "To complete setting up this action, please follow following guide: [Setup scaffold service action ->](https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service?git-provider=bitbucket", "requiredApproval": false, "blueprint": "service" }, @@ -46,7 +60,7 @@ "method": "POST" }, "trigger": "CREATE", - "description": "To complete setting up this action, please follow following guide: [Setup send scorecard reminder action ->](https://docs.getport.io/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/setup-slack-reminders?git-provider=bitbucket", "requiredApproval": false, "blueprint": "service" }, @@ -103,7 +117,7 @@ "method": "POST" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please follow following guide: [Setup enrich service action ->](https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops?git-provider=bitbucket", "requiredApproval": false, "blueprint": "service" }, @@ -149,7 +163,7 @@ "method": "POST" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please follow following guide: [Setup create s3 bucket ->](https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac?git-provider=bitbucket", "requiredApproval": false, "blueprint": "service" } diff --git a/integrations/github/actions.json b/integrations/github/actions.json index 1de00d3..cd73d90 100644 --- a/integrations/github/actions.json +++ b/integrations/github/actions.json @@ -28,7 +28,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "CREATE", - "description": "To complete setting up this action, please follow following guide: [Setup scaffold service action ->](https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service?git-provider=github", "requiredApproval": false, "blueprint": "service" }, @@ -49,7 +49,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "CREATE", - "description": "To complete setting up this action, please follow following guide: [Setup send scorecard reminder action ->](https://docs.getport.io/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/setup-slack-reminders?git-provider=github", "requiredApproval": false, "blueprint": "service" }, @@ -108,7 +108,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please follow following guide: [Setup enrich service action ->](https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops?git-provider=github", "requiredApproval": false, "blueprint": "service" }, @@ -156,7 +156,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please follow following guide: [Setup create s3 bucket ->](https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac/)", + "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac?git-provider=github", "requiredApproval": false, "blueprint": "service" } From 7019501ca77ca18df2c6a845edfcd9d9c2c60611 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 17:07:39 +0200 Subject: [PATCH 18/21] update table height --- integrations/bitbucket/pages.json | 2 +- integrations/github/pages.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/integrations/bitbucket/pages.json b/integrations/bitbucket/pages.json index 2154a69..6700a6e 100644 --- a/integrations/bitbucket/pages.json +++ b/integrations/bitbucket/pages.json @@ -129,7 +129,7 @@ ] }, { - "height": 455, + "height": 595, "columns": [ { "id": "bitbucketServicesByLevelTable", diff --git a/integrations/github/pages.json b/integrations/github/pages.json index 013fad7..6cff77a 100644 --- a/integrations/github/pages.json +++ b/integrations/github/pages.json @@ -129,7 +129,7 @@ ] }, { - "height": 455, + "height": 595, "columns": [ { "id": "githubServicesByLevelTable", From 1daaf9b1fdad14664a9610fb2b1360aad0927097 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 17:11:49 +0200 Subject: [PATCH 19/21] update to has a team --- integrations/bitbucket/pages.json | 2 +- integrations/bitbucket/scorecards.json | 2 +- integrations/github/pages.json | 2 +- integrations/github/scorecards.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/integrations/bitbucket/pages.json b/integrations/bitbucket/pages.json index 6700a6e..4de2b13 100644 --- a/integrations/bitbucket/pages.json +++ b/integrations/bitbucket/pages.json @@ -265,7 +265,7 @@ "id": "bitbucketHasTeamEntitiesPieChart", "type": "entities-pie-chart", "property": "scorecard-rule#ProductionReadiness#hasTeam", - "title": "Has Team", + "title": "Has a Team", "icon": "Star", "dataset": { "combinator": "and", diff --git a/integrations/bitbucket/scorecards.json b/integrations/bitbucket/scorecards.json index eff4511..0bc3823 100644 --- a/integrations/bitbucket/scorecards.json +++ b/integrations/bitbucket/scorecards.json @@ -50,7 +50,7 @@ }, { "identifier": "hasTeam", - "title": "Has Team", + "title": "Has a Team", "level": "Gold", "query": { "combinator": "and", diff --git a/integrations/github/pages.json b/integrations/github/pages.json index 6cff77a..9b360f9 100644 --- a/integrations/github/pages.json +++ b/integrations/github/pages.json @@ -265,7 +265,7 @@ "id": "githubHasTeamEntitiesPieChart", "type": "entities-pie-chart", "property": "scorecard-rule#ProductionReadiness#hasTeam", - "title": "Has Team", + "title": "Has a Team", "icon": "Star", "dataset": { "combinator": "and", diff --git a/integrations/github/scorecards.json b/integrations/github/scorecards.json index eff4511..0bc3823 100644 --- a/integrations/github/scorecards.json +++ b/integrations/github/scorecards.json @@ -50,7 +50,7 @@ }, { "identifier": "hasTeam", - "title": "Has Team", + "title": "Has a Team", "level": "Gold", "query": { "combinator": "and", From 96f3302f194f151bb3ced940508a4002acd65043 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 17:32:35 +0200 Subject: [PATCH 20/21] update to have link --- integrations/bitbucket/actions.json | 14 +++++++------- integrations/github/actions.json | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/integrations/bitbucket/actions.json b/integrations/bitbucket/actions.json index 459a073..26a9725 100644 --- a/integrations/bitbucket/actions.json +++ b/integrations/bitbucket/actions.json @@ -40,7 +40,7 @@ "method": "POST" }, "trigger": "CREATE", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service?git-provider=bitbucket", + "description": "To complete setting up this action, please refer to the following guide: [Setup scaffold service action ->](https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service?git-provider=bitbucket)", "requiredApproval": false, "blueprint": "service" }, @@ -60,7 +60,7 @@ "method": "POST" }, "trigger": "CREATE", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/setup-slack-reminders?git-provider=bitbucket", + "description": "To complete setting up this action, please refer to the following guide: [Setup send scorecard reminder action ->](https://docs.getport.io/guides-and-tutorials/setup-slack-reminders?git-provider=bitbucket)", "requiredApproval": false, "blueprint": "service" }, @@ -111,13 +111,13 @@ }, "invocationMethod": { "type": "WEBHOOK", - "agent": false, - "url": "https:///generic-webhook-trigger/invoke?token=", - "synchronized": true, + "agent": true, + "url": "https://example.com", + "synchronized": false, "method": "POST" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops?git-provider=bitbucket", + "description": "To complete setting up this action, please refer to the following guide: [Setup enrich service action ->](https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops?git-provider=bitbucket)", "requiredApproval": false, "blueprint": "service" }, @@ -163,7 +163,7 @@ "method": "POST" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac?git-provider=bitbucket", + "description": "To complete setting up this action, please refer to the following guide: [Setup create s3 bucket ->](https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac?git-provider=bitbucket)", "requiredApproval": false, "blueprint": "service" } diff --git a/integrations/github/actions.json b/integrations/github/actions.json index cd73d90..9689b12 100644 --- a/integrations/github/actions.json +++ b/integrations/github/actions.json @@ -28,7 +28,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "CREATE", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service?git-provider=github", + "description": "To complete setting up this action, please refer to the following guide: [Setup scaffold service action ->](https://docs.getport.io/guides-and-tutorials/scaffold-a-new-service?git-provider=github)", "requiredApproval": false, "blueprint": "service" }, @@ -49,7 +49,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "CREATE", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/setup-slack-reminders?git-provider=github", + "description": "To complete setting up this action, please refer to the following guide: [Setup send scorecard reminder action ->](https://docs.getport.io/guides-and-tutorials/setup-slack-reminders?git-provider=github)", "requiredApproval": false, "blueprint": "service" }, @@ -108,7 +108,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops?git-provider=github", + "description": "To complete setting up this action, please refer to the following guide: [Setup enrich service action ->](https://docs.getport.io/guides-and-tutorials/let-developers-enrich-services-using-gitops?git-provider=github)", "requiredApproval": false, "blueprint": "service" }, @@ -156,7 +156,7 @@ "workflow": "Fill here your workflow name" }, "trigger": "DAY-2", - "description": "To complete setting up this action, please refer to the following guide - https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac?git-provider=github", + "description": "To complete setting up this action, please refer to the following guide: [Setup create s3 bucket ->](https://docs.getport.io/guides-and-tutorials/create-cloud-resource-using-iac?git-provider=github)", "requiredApproval": false, "blueprint": "service" } From b0d2d36f65fb4475779204ddce6ed1ac15f94088 Mon Sep 17 00:00:00 2001 From: tankilevitch Date: Tue, 2 Jan 2024 17:49:11 +0200 Subject: [PATCH 21/21] update icon --- integrations/github/actions.json | 1 + 1 file changed, 1 insertion(+) diff --git a/integrations/github/actions.json b/integrations/github/actions.json index 9689b12..fe2cd68 100644 --- a/integrations/github/actions.json +++ b/integrations/github/actions.json @@ -34,6 +34,7 @@ }, { "identifier": "github_send_scorecard_reminder", + "icon": "Slack", "title": "Send scorecard reminder", "userInputs": { "properties": {},