{"id":22772314,"url":"https://github.com/pactflow/katacoda-workshops","last_synced_at":"2025-04-15T06:48:12.388Z","repository":{"id":39624181,"uuid":"304469245","full_name":"pactflow/katacoda-workshops","owner":"pactflow","description":"Getting started Katacoda workshop for JS","archived":false,"fork":false,"pushed_at":"2025-04-14T06:12:29.000Z","size":3975,"stargazers_count":2,"open_issues_count":11,"forks_count":0,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-15T06:48:06.288Z","etag":null,"topics":["example"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pactflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-10-15T23:18:46.000Z","updated_at":"2025-04-14T05:45:33.000Z","dependencies_parsed_at":"2024-08-07T18:31:41.154Z","dependency_job_id":"b1876b16-f2fd-47e7-a8b5-130e9c490e5e","html_url":"https://github.com/pactflow/katacoda-workshops","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pactflow%2Fkatacoda-workshops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pactflow%2Fkatacoda-workshops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pactflow%2Fkatacoda-workshops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pactflow%2Fkatacoda-workshops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pactflow","download_url":"https://codeload.github.com/pactflow/katacoda-workshops/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249023707,"owners_count":21199958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example"],"created_at":"2024-12-11T17:08:03.950Z","updated_at":"2025-04-15T06:48:12.372Z","avatar_url":"https://github.com/pactflow.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PactFlow In-Browser Workshops\n\nWe've created a few short, in-browser tutorials using the Killercoda platform to get you up and running quickly depending on your level.\n\nThe courses are written in Node and Java, however, extensive experience with the languages will not be required for the workshop.\n\n_NOTE: To complete the workshop, you will need to authenticate to Killercoda (the online learning platform) with GitHub, Google, Twitter or LinkedIn._\n\n![Node Tutorial](https://docs.pactflow.io/assets/images/katacoda-screenshot-07be4d6a6faa46c0406d36c987b2f4c5.png)\n\n## Prerequisites\n\nTo complete these tutorials, you must have:\n\n- a PactFlow account (register for a free account at https://pactflow.io/try-for-free)\n- a [read/write API Token](https://docs.pactflow.io/docs/getting-started/#configuring-your-api-token) from your PactFlow account\n- a basic understanding of APIs, unit testing and how to operate a linux terminal\n\n## Getting Started with PactFlow\n\n_Level: Beginner_\n\nIn this tutorial, we guide you through getting started with Pact and PactFlow.\n\nYou will create your first contract, publish it to PactFlow and verify it on your provider.\n\n### Goals\n\nUltimately, our goal is to get you up and integrated with PactFlow as quickly as possible!\n\nYou will:\n\n1. Learn the basic concepts of Pact.\n1. Get hands-on experience with the key aspects of writing, publishing and verifying pacts.\n1. See how PactFlow fits into the picture so that you can get up and running quickly.\n\n### Tutorial\n\n| Language | Link                                                                   |\n| -------- | ---------------------------------------------------------------------- |\n| Node JS  | https://killercoda.com/pactflow/scenario/pactflow-getting-started-js   |\n| Java     | https://killercoda.com/pactflow/scenario/pactflow-getting-started-java |\n\n## Gating deployments with PactFlow\n\n_Level: Intermediate_\n\nIn the scenario, we extend the workshop from above, learning how to gate deployments using the `can-i-deploy` tool in the process.\n\n### Goals\n\nLearn how to prevent releasing incompatible changes to production, by using integrating `can-i-deploy` into your CI/CD process.\n\nYou will:\n\n1. Build on a basic contract testing example\n1. Learn how PactFlow fits into the picture\n1. Understand important Pact CLI tools\n1. Learn how deployments work with PactFlow\n\n### Tutorial\n\nYou can complete the course at https://killercoda.com/pactflow/scenario/pactflow-can-i-deploy-js.\n\n## Bi-Directional Contract Testing\n\n_Level: Intermediate_\n\nLearn how to implement a Bi-Directional Contract Testing workflow from end-to-end, including integration with your CI/CD system.\n\n### Goals\n\nYou will learn how:\n\n1. To use OpenAPI as part of a contract testing strategy\n1. API testing tools such as Dredd or Postman can be used with PactFlow\n1. To publish contracts (such as a pact file or an OpenAPI document) to PactFlow\n1. To prevent deploying breaking changes to an environment, such as production\n1. To use existing mocking tools (such as Mountebank or Wiremock) to create a consumer contract\n\n### Agenda\n\nYou will:\n\n1. Create and document an API using [OpenAPI Specification](https://www.openapis.org/)\n1. Write tests for the API using the Dredd API testing tool\n1. Publish the _provider contract_ (an OpenAPI document) to PactFlow\n1. Deploy the provider to production\n1. Write the API consumer\n1. Write tests for an API client using Mountebank to mock the API, and convert those mocks into a _consumer contract_\n1. Publish the consumer contract to PactFlow\n1. Deploy the consumer to production\n1. Learn about PactFlow's breaking change detection system\n\n### Tools used\n\n- Node - for the applications being tested\n- [Mountebank](https://mbtest.org) - for API mocking\n- [Dredd](https://dredd.org/en/latest/index.html) - for API Testing\n- [Pact CLI tools](https://docs.pact.io/implementation_guides/cli)\n\n### Tutorial\n\nYou can complete the course at https://killercoda.com/pactflow/scenario/pactflow-bi-directional-contracts-intro.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpactflow%2Fkatacoda-workshops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpactflow%2Fkatacoda-workshops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpactflow%2Fkatacoda-workshops/lists"}