From c9fbcc3fd827be6e85593ab2839c2cc126ccb522 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Thu, 1 Oct 2026 22:28:55 +0200 Subject: [PATCH 01/23] Create README.md --- contributions/project/moharana-xxxx/README.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 contributions/project/moharana-xxxx/README.md diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana-xxxx/README.md new file mode 100644 index 0000000000..66409f6639 --- /dev/null +++ b/contributions/project/moharana-xxxx/README.md @@ -0,0 +1,31 @@ +# Assignment Proposal + +## Title + +**Project: OpenWeather API Lifecycle Automation using OpenAPI, GitHub Actions and Azure API Management** + +## Names and KTH ID + +**Moharana** (moharana@kth.se) + +## Deadline + +**11 October 2026** + +## Category + +**Project** + +## Description + +This project demonstrates a complete DevOps workflow for designing, validating, testing, building, and deploying a REST API using an API-first approach based on the OpenAPI Specification. + +The project will implement a simple REST API named **OpenWeather API**, which provides basic weather information for a requested city. The API design will be defined entirely through an OpenAPI 3.0 specification document before implementation. The repository will contain all source code, infrastructure definitions, CI/CD pipelines, quality automation rules, and deployment configurations necessary to manage the API lifecycle. + +The project follows modern DevOps practices by integrating GitHub as the development platform and GitHub Actions as the Continuous Integration and Continuous Deployment (CI/CD) solution. Whenever code changes are pushed to the repository, automated workflows will validate the OpenAPI specification, perform linting checks, execute automated tests, generate API artifacts, and verify specification quality. Upon successful validation, a deployment pipeline will automatically publish the API definition to Azure API Management (APIM), making the API available through a managed API gateway. + +Infrastructure resources required by the solution will be managed through Infrastructure as Code using Terraform. This enables reproducible, version-controlled infrastructure deployments and supports DevOps principles of automation and consistency. + +The project will also incorporate quality and security automation through OpenAPI linting with Spectral, GitHub CodeQL security scanning, and Dependabot dependency management. Additionally, the project will document the use of AI-assisted development tools, such as GitHub Copilot and ChatGPT, including how they contributed to API design, pipeline creation, and documentation. + +The final solution demonstrates how API-first development, automated testing, continuous integration, continuous deployment, infrastructure automation, and quality controls can be integrated into a single coherent DevOps workflow. The project is intentionally designed to remain simple enough for demonstration purposes while showcasing essential DevOps concepts and practices in a realistic cloud-native environment. \ No newline at end of file From aeee013f552b5fe7939247cc97c4d21a8f18ec27 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Thu, 1 Oct 2026 22:30:21 +0200 Subject: [PATCH 02/23] Update README.md --- contributions/project/moharana-xxxx/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana-xxxx/README.md index 66409f6639..02a1cc3d96 100644 --- a/contributions/project/moharana-xxxx/README.md +++ b/contributions/project/moharana-xxxx/README.md @@ -6,7 +6,7 @@ ## Names and KTH ID -**Moharana** (moharana@kth.se) +**Padamalaya Moharana** (moharana@kth.se) ## Deadline From e6bfb90ea9f86d866b37ea3ffeb4b1a5b0e099a1 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Thu, 1 Oct 2026 22:38:19 +0200 Subject: [PATCH 03/23] Update README.md --- contributions/project/moharana-xxxx/README.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana-xxxx/README.md index 02a1cc3d96..6a957f8c7a 100644 --- a/contributions/project/moharana-xxxx/README.md +++ b/contributions/project/moharana-xxxx/README.md @@ -17,15 +17,15 @@ **Project** ## Description - -This project demonstrates a complete DevOps workflow for designing, validating, testing, building, and deploying a REST API using an API-first approach based on the OpenAPI Specification. - -The project will implement a simple REST API named **OpenWeather API**, which provides basic weather information for a requested city. The API design will be defined entirely through an OpenAPI 3.0 specification document before implementation. The repository will contain all source code, infrastructure definitions, CI/CD pipelines, quality automation rules, and deployment configurations necessary to manage the API lifecycle. - -The project follows modern DevOps practices by integrating GitHub as the development platform and GitHub Actions as the Continuous Integration and Continuous Deployment (CI/CD) solution. Whenever code changes are pushed to the repository, automated workflows will validate the OpenAPI specification, perform linting checks, execute automated tests, generate API artifacts, and verify specification quality. Upon successful validation, a deployment pipeline will automatically publish the API definition to Azure API Management (APIM), making the API available through a managed API gateway. - -Infrastructure resources required by the solution will be managed through Infrastructure as Code using Terraform. This enables reproducible, version-controlled infrastructure deployments and supports DevOps principles of automation and consistency. - -The project will also incorporate quality and security automation through OpenAPI linting with Spectral, GitHub CodeQL security scanning, and Dependabot dependency management. Additionally, the project will document the use of AI-assisted development tools, such as GitHub Copilot and ChatGPT, including how they contributed to API design, pipeline creation, and documentation. - -The final solution demonstrates how API-first development, automated testing, continuous integration, continuous deployment, infrastructure automation, and quality controls can be integrated into a single coherent DevOps workflow. The project is intentionally designed to remain simple enough for demonstration purposes while showcasing essential DevOps concepts and practices in a realistic cloud-native environment. \ No newline at end of file +  +This project demonstrates a Continuous Integration (CI) workflow for designing, validating, testing, and building a REST API using an API-first approach based on the OpenAPI Specification. +  +The project will implement a simple REST API named **OpenWeather API**, which provides basic weather information for a requested city. The API design will be defined through an OpenAPI 3.0 specification document before implementation. The repository will contain the API specification, source code, automated tests, quality automation configurations, and CI workflows required to manage and validate the API throughout its development lifecycle. +  +The project follows modern DevOps practices by integrating GitHub as the development platform and GitHub Actions as the Continuous Integration solution. Whenever code changes are pushed to the repository or submitted through a pull request, automated workflows will validate the OpenAPI specification, perform linting checks, execute unit tests, verify API quality, and build the application. This ensures that code quality is continuously assessed and that API changes meet established standards before being merged into the main branch. +  +To support API quality and maintainability, the project will use OpenAPI linting with Spectral, automated testing using Jest, and security analysis using GitHub CodeQL. Dependabot will be configured to monitor dependencies and suggest updates when vulnerabilities or outdated packages are detected. These practices help improve software reliability and encourage early detection of issues within the development workflow. +  +The project will also document the use of AI-assisted development tools such as GitHub Copilot and ChatGPT. The documentation will describe how these tools were used during API design, test generation, workflow creation, and documentation development, while emphasizing manual review and validation of all generated content. +  +The final solution demonstrates how API-first development, automated testing, quality assurance, security checks, and Continuous Integration can be combined within a single GitHub repository. The project is intentionally kept small and focused, enabling a clear demonstration of CI practices while showcasing essential DevOps concepts in a realistic software development environment. \ No newline at end of file From 1906f2101ddd59f2b0d4832638cc741b4a41d897 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Thu, 1 Oct 2026 22:40:22 +0200 Subject: [PATCH 04/23] Enhance README with project details and CI practices Expanded project description to include details on CI workflow, API design, and AI-assisted development tools. --- contributions/project/moharana-xxxx/README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana-xxxx/README.md index 6a957f8c7a..03058a87f5 100644 --- a/contributions/project/moharana-xxxx/README.md +++ b/contributions/project/moharana-xxxx/README.md @@ -17,15 +17,18 @@ **Project** ## Description -  + This project demonstrates a Continuous Integration (CI) workflow for designing, validating, testing, and building a REST API using an API-first approach based on the OpenAPI Specification. -  + + The project will implement a simple REST API named **OpenWeather API**, which provides basic weather information for a requested city. The API design will be defined through an OpenAPI 3.0 specification document before implementation. The repository will contain the API specification, source code, automated tests, quality automation configurations, and CI workflows required to manage and validate the API throughout its development lifecycle. -  + + The project follows modern DevOps practices by integrating GitHub as the development platform and GitHub Actions as the Continuous Integration solution. Whenever code changes are pushed to the repository or submitted through a pull request, automated workflows will validate the OpenAPI specification, perform linting checks, execute unit tests, verify API quality, and build the application. This ensures that code quality is continuously assessed and that API changes meet established standards before being merged into the main branch.   To support API quality and maintainability, the project will use OpenAPI linting with Spectral, automated testing using Jest, and security analysis using GitHub CodeQL. Dependabot will be configured to monitor dependencies and suggest updates when vulnerabilities or outdated packages are detected. These practices help improve software reliability and encourage early detection of issues within the development workflow.   The project will also document the use of AI-assisted development tools such as GitHub Copilot and ChatGPT. The documentation will describe how these tools were used during API design, test generation, workflow creation, and documentation development, while emphasizing manual review and validation of all generated content. -  -The final solution demonstrates how API-first development, automated testing, quality assurance, security checks, and Continuous Integration can be combined within a single GitHub repository. The project is intentionally kept small and focused, enabling a clear demonstration of CI practices while showcasing essential DevOps concepts in a realistic software development environment. \ No newline at end of file + + +The final solution demonstrates how API-first development, automated testing, quality assurance, security checks, and Continuous Integration can be combined within a single GitHub repository. The project is intentionally kept small and focused, enabling a clear demonstration of CI practices while showcasing essential DevOps concepts in a realistic software development environment. From 859c25cc2f281fdbfc797d521424d3758f6c3bde Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Thu, 1 Oct 2026 22:50:54 +0200 Subject: [PATCH 05/23] Revise README for clarity on CI and API development Updated the README to clarify project goals and CI practices, including AI-assisted development tools. --- contributions/project/moharana-xxxx/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana-xxxx/README.md index 03058a87f5..3f8fe1daff 100644 --- a/contributions/project/moharana-xxxx/README.md +++ b/contributions/project/moharana-xxxx/README.md @@ -20,15 +20,14 @@ This project demonstrates a Continuous Integration (CI) workflow for designing, validating, testing, and building a REST API using an API-first approach based on the OpenAPI Specification. - The project will implement a simple REST API named **OpenWeather API**, which provides basic weather information for a requested city. The API design will be defined through an OpenAPI 3.0 specification document before implementation. The repository will contain the API specification, source code, automated tests, quality automation configurations, and CI workflows required to manage and validate the API throughout its development lifecycle. - The project follows modern DevOps practices by integrating GitHub as the development platform and GitHub Actions as the Continuous Integration solution. Whenever code changes are pushed to the repository or submitted through a pull request, automated workflows will validate the OpenAPI specification, perform linting checks, execute unit tests, verify API quality, and build the application. This ensures that code quality is continuously assessed and that API changes meet established standards before being merged into the main branch. -  + To support API quality and maintainability, the project will use OpenAPI linting with Spectral, automated testing using Jest, and security analysis using GitHub CodeQL. Dependabot will be configured to monitor dependencies and suggest updates when vulnerabilities or outdated packages are detected. These practices help improve software reliability and encourage early detection of issues within the development workflow. -  + The project will also document the use of AI-assisted development tools such as GitHub Copilot and ChatGPT. The documentation will describe how these tools were used during API design, test generation, workflow creation, and documentation development, while emphasizing manual review and validation of all generated content. +### Relevance -The final solution demonstrates how API-first development, automated testing, quality assurance, security checks, and Continuous Integration can be combined within a single GitHub repository. The project is intentionally kept small and focused, enabling a clear demonstration of CI practices while showcasing essential DevOps concepts in a realistic software development environment. +REST APIs are a core component of modern software systems, making API quality and reliability essential. This project demonstrates how Continuous Integration (CI) can automate API validation, linting, testing, security scanning, and build verification using an API-first approach with OpenAPI. By providing fast feedback and early defect detection, the project reflects industry best practices and offers practical experience with tools commonly used in modern DevOps and cloud-native development environments. From fe034c68d4eb54e8ce8a7488683b7c059f3cfdb6 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Thu, 1 Oct 2026 23:12:31 +0200 Subject: [PATCH 06/23] Update README.md --- contributions/project/moharana-xxxx/README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana-xxxx/README.md index 3f8fe1daff..d9ac6785a6 100644 --- a/contributions/project/moharana-xxxx/README.md +++ b/contributions/project/moharana-xxxx/README.md @@ -2,7 +2,7 @@ ## Title -**Project: OpenWeather API Lifecycle Automation using OpenAPI, GitHub Actions and Azure API Management** +**Project: CI Pipeline for API Lifecycle Automation using GitHub Actions ** ## Names and KTH ID @@ -18,15 +18,11 @@ ## Description -This project demonstrates a Continuous Integration (CI) workflow for designing, validating, testing, and building a REST API using an API-first approach based on the OpenAPI Specification. +This project implements an API-first REST service called **OpenWeather API** using the OpenAPI Specification. The repository will contain the API definition, source code, automated tests, and GitHub Actions workflows. -The project will implement a simple REST API named **OpenWeather API**, which provides basic weather information for a requested city. The API design will be defined through an OpenAPI 3.0 specification document before implementation. The repository will contain the API specification, source code, automated tests, quality automation configurations, and CI workflows required to manage and validate the API throughout its development lifecycle. +Using **GitHub** and **GitHub Actions**, the project will establish a Continuous Integration (CI) pipeline that automatically validates the OpenAPI specification, performs linting, executes unit tests, runs security checks, and builds the application for every push and pull request. -The project follows modern DevOps practices by integrating GitHub as the development platform and GitHub Actions as the Continuous Integration solution. Whenever code changes are pushed to the repository or submitted through a pull request, automated workflows will validate the OpenAPI specification, perform linting checks, execute unit tests, verify API quality, and build the application. This ensures that code quality is continuously assessed and that API changes meet established standards before being merged into the main branch. - -To support API quality and maintainability, the project will use OpenAPI linting with Spectral, automated testing using Jest, and security analysis using GitHub CodeQL. Dependabot will be configured to monitor dependencies and suggest updates when vulnerabilities or outdated packages are detected. These practices help improve software reliability and encourage early detection of issues within the development workflow. - -The project will also document the use of AI-assisted development tools such as GitHub Copilot and ChatGPT. The documentation will describe how these tools were used during API design, test generation, workflow creation, and documentation development, while emphasizing manual review and validation of all generated content. +To ensure quality and reliability, the project will use **Spectral** for OpenAPI linting, **Jest** for automated testing, **CodeQL** for security analysis, and **Dependabot** for dependency management. The use of AI-assisted tools such as GitHub Copilot and ChatGPT will also be documented as part of the development process. ### Relevance From 243bd44522291652c997059574e59fa1b4356c51 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 4 Oct 2026 16:07:12 +0200 Subject: [PATCH 07/23] Update README.md minor changes --- contributions/project/moharana-xxxx/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana-xxxx/README.md index d9ac6785a6..0ca3bf8f58 100644 --- a/contributions/project/moharana-xxxx/README.md +++ b/contributions/project/moharana-xxxx/README.md @@ -18,12 +18,12 @@ ## Description -This project implements an API-first REST service called **OpenWeather API** using the OpenAPI Specification. The repository will contain the API definition, source code, automated tests, and GitHub Actions workflows. +This project implements an API-first REST service called OpenWeather API using the OpenAPI Specification. The repository will contain the API definition, source code, automated tests, infrastructure-as-code templates, and GitHub Actions workflows. -Using **GitHub** and **GitHub Actions**, the project will establish a Continuous Integration (CI) pipeline that automatically validates the OpenAPI specification, performs linting, executes unit tests, runs security checks, and builds the application for every push and pull request. +Using GitHub and GitHub Actions, the project will establish a complete CI/CD pipeline that automatically validates the OpenAPI specification, performs linting, executes tests, runs security checks, and builds the application. Upon successful validation, the API specification will be automatically deployed to Azure API Management (APIM). -To ensure quality and reliability, the project will use **Spectral** for OpenAPI linting, **Jest** for automated testing, **CodeQL** for security analysis, and **Dependabot** for dependency management. The use of AI-assisted tools such as GitHub Copilot and ChatGPT will also be documented as part of the development process. +To ensure quality and reliability, the project will use Spectral for OpenAPI linting, Jest for automated testing, CodeQL for security analysis, Dependabot for dependency management, and Terraform for infrastructure provisioning. The use of AI-assisted tools such as GitHub Copilot and ChatGPT will also be documented as part of the development process. ### Relevance -REST APIs are a core component of modern software systems, making API quality and reliability essential. This project demonstrates how Continuous Integration (CI) can automate API validation, linting, testing, security scanning, and build verification using an API-first approach with OpenAPI. By providing fast feedback and early defect detection, the project reflects industry best practices and offers practical experience with tools commonly used in modern DevOps and cloud-native development environments. +REST APIs are a foundation of modern software systems, making API quality, automation, and reliability essential. This project demonstrates industry-standard DevOps practices by combining API-first development, CI/CD, automated testing, security scanning, Infrastructure as Code, and cloud deployment in a single workflow. It provides practical experience with tools and techniques widely used in modern cloud-native and API-driven software development. From ffb3b556c61578b0d7036e9e03b4d63680b3f14f Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 4 Oct 2026 16:29:25 +0200 Subject: [PATCH 08/23] changed folder name changed folder name --- contributions/project/{moharana-xxxx => moharana}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contributions/project/{moharana-xxxx => moharana}/README.md (100%) diff --git a/contributions/project/moharana-xxxx/README.md b/contributions/project/moharana/README.md similarity index 100% rename from contributions/project/moharana-xxxx/README.md rename to contributions/project/moharana/README.md From f7906efbe308d809535e5ed59fbda2ee6201cefc Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 4 Oct 2026 16:38:24 +0200 Subject: [PATCH 09/23] Update README.md --- contributions/project/moharana/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributions/project/moharana/README.md b/contributions/project/moharana/README.md index 0ca3bf8f58..1c5d14ebb5 100644 --- a/contributions/project/moharana/README.md +++ b/contributions/project/moharana/README.md @@ -2,7 +2,7 @@ ## Title -**Project: CI Pipeline for API Lifecycle Automation using GitHub Actions ** +Project: CI Pipeline for API Lifecycle Automation using GitHub Actions ## Names and KTH ID From 97783f797caca8dd966c72fdf8b55b6fee88a350 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 4 Oct 2026 21:36:37 +0200 Subject: [PATCH 10/23] Update README.md --- contributions/project/moharana/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributions/project/moharana/README.md b/contributions/project/moharana/README.md index 1c5d14ebb5..fc686427a1 100644 --- a/contributions/project/moharana/README.md +++ b/contributions/project/moharana/README.md @@ -2,7 +2,7 @@ ## Title -Project: CI Pipeline for API Lifecycle Automation using GitHub Actions +Project: Automation Pipeline for API Lifecycle using GitHub Actions ## Names and KTH ID From b8c82df5eea8d1fb4e3f9cde4db0f508b71a9f7b Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 4 Oct 2026 21:41:12 +0200 Subject: [PATCH 11/23] Update README.md --- contributions/project/moharana/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributions/project/moharana/README.md b/contributions/project/moharana/README.md index fc686427a1..c72d4a9e2b 100644 --- a/contributions/project/moharana/README.md +++ b/contributions/project/moharana/README.md @@ -2,7 +2,7 @@ ## Title -Project: Automation Pipeline for API Lifecycle using GitHub Actions +**Project: Automation Pipeline for API Lifecycle using GitHub Actions** ## Names and KTH ID From 028e4e45f90a3434f1346c41c2fe7e36baa098fb Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 4 Oct 2026 22:00:55 +0200 Subject: [PATCH 12/23] Update README.md --- contributions/project/moharana/README.md | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/contributions/project/moharana/README.md b/contributions/project/moharana/README.md index c72d4a9e2b..5d9234bb22 100644 --- a/contributions/project/moharana/README.md +++ b/contributions/project/moharana/README.md @@ -1,29 +1,24 @@ # Assignment Proposal ## Title - -**Project: Automation Pipeline for API Lifecycle using GitHub Actions** +Project: Automation Pipeline for API Lifecycle using GitHub Actions ## Names and KTH ID -**Padamalaya Moharana** (moharana@kth.se) +- Padmalaya Moharana (moharana@kth.se) -## Deadline -**11 October 2026** +## Deadline +11 October 2026 ## Category - -**Project** +Project ## Description - This project implements an API-first REST service called OpenWeather API using the OpenAPI Specification. The repository will contain the API definition, source code, automated tests, infrastructure-as-code templates, and GitHub Actions workflows. Using GitHub and GitHub Actions, the project will establish a complete CI/CD pipeline that automatically validates the OpenAPI specification, performs linting, executes tests, runs security checks, and builds the application. Upon successful validation, the API specification will be automatically deployed to Azure API Management (APIM). -To ensure quality and reliability, the project will use Spectral for OpenAPI linting, Jest for automated testing, CodeQL for security analysis, Dependabot for dependency management, and Terraform for infrastructure provisioning. The use of AI-assisted tools such as GitHub Copilot and ChatGPT will also be documented as part of the development process. - -### Relevance +To ensure quality and reliability, the project will use Spectral for OpenAPI linting, Jest for automated testing, CodeQL for security analysis, Dependabot for dependency management, and Terraform for infrastructure provisioning. The use of AI-assisted tools such as GitHub Copilot and ChatGPT will also be documented as part of the development process.. -REST APIs are a foundation of modern software systems, making API quality, automation, and reliability essential. This project demonstrates industry-standard DevOps practices by combining API-first development, CI/CD, automated testing, security scanning, Infrastructure as Code, and cloud deployment in a single workflow. It provides practical experience with tools and techniques widely used in modern cloud-native and API-driven software development. +**Relevance:** REST APIs are a foundation of modern software systems, making API quality, automation, and reliability essential. This project demonstrates industry-standard DevOps practices by combining API-first development, CI/CD, automated testing, security scanning, Infrastructure as Code, and cloud deployment in a single workflow. It provides practical experience with tools and techniques widely used in modern cloud-native and API-driven software development. \ No newline at end of file From 3af8765d7d2968df55b5846555cedd28f36bc368 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Mon, 5 Oct 2026 22:27:55 +0200 Subject: [PATCH 13/23] Changed folder name and added partner name Changed folder name and added partner name --- contributions/project/{moharana => moharana-blst}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contributions/project/{moharana => moharana-blst}/README.md (100%) diff --git a/contributions/project/moharana/README.md b/contributions/project/moharana-blst/README.md similarity index 100% rename from contributions/project/moharana/README.md rename to contributions/project/moharana-blst/README.md From 34d1e3b35f4d39625482d89e0bac6a15deb17222 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Mon, 5 Oct 2026 22:36:18 +0200 Subject: [PATCH 14/23] Update README.md --- contributions/project/moharana-blst/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributions/project/moharana-blst/README.md b/contributions/project/moharana-blst/README.md index 5d9234bb22..68870ebdaa 100644 --- a/contributions/project/moharana-blst/README.md +++ b/contributions/project/moharana-blst/README.md @@ -6,7 +6,7 @@ Project: Automation Pipeline for API Lifecycle using GitHub Actions ## Names and KTH ID - Padmalaya Moharana (moharana@kth.se) - +- Bogdan-Laurentiu Stefanescu (blst@kth.se) ## Deadline 11 October 2026 From 957b5e26db5e3bdd5382098dfb4d17b9fed4f0e0 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sat, 10 Oct 2026 00:04:27 +0200 Subject: [PATCH 15/23] Enhance README with project details and workflows Expanded the README to include detailed project overview, CI/CD workflows, and infrastructure as code information. Added links to GitHub Actions pipeline reports and concluded with a summary of the project's DevOps practices. --- contributions/project/moharana-blst/README.md | 100 +++++++++++++++++- 1 file changed, 96 insertions(+), 4 deletions(-) diff --git a/contributions/project/moharana-blst/README.md b/contributions/project/moharana-blst/README.md index 68870ebdaa..cbb8c5cba6 100644 --- a/contributions/project/moharana-blst/README.md +++ b/contributions/project/moharana-blst/README.md @@ -15,10 +15,102 @@ Project: Automation Pipeline for API Lifecycle using GitHub Actions Project ## Description -This project implements an API-first REST service called OpenWeather API using the OpenAPI Specification. The repository will contain the API definition, source code, automated tests, infrastructure-as-code templates, and GitHub Actions workflows. -Using GitHub and GitHub Actions, the project will establish a complete CI/CD pipeline that automatically validates the OpenAPI specification, performs linting, executes tests, runs security checks, and builds the application. Upon successful validation, the API specification will be automatically deployed to Azure API Management (APIM). +### Project Overview -To ensure quality and reliability, the project will use Spectral for OpenAPI linting, Jest for automated testing, CodeQL for security analysis, Dependabot for dependency management, and Terraform for infrastructure provisioning. The use of AI-assisted tools such as GitHub Copilot and ChatGPT will also be documented as part of the development process.. +The **Automation Pipeline for API Lifecycle DevOps Project** demonstrates an end-to-end DevOps workflow for designing, validating, testing, deploying, and managing a REST API using an API-first approach. The project uses an OpenAPI specification as the source of truth and integrates Continuous Integration (CI), Continuous Deployment (CD), Infrastructure as Code (IaC), quality automation, and cloud deployment practices within a single GitHub repository. -**Relevance:** REST APIs are a foundation of modern software systems, making API quality, automation, and reliability essential. This project demonstrates industry-standard DevOps practices by combining API-first development, CI/CD, automated testing, security scanning, Infrastructure as Code, and cloud deployment in a single workflow. It provides practical experience with tools and techniques widely used in modern cloud-native and API-driven software development. \ No newline at end of file +The API provides weather information for a requested city and is implemented using Node.js and Express. The API contract is defined using OpenAPI 3.0 and is automatically validated, tested, and deployed through GitHub Actions workflows to Azure API Management. + +### Continuous Integration (CI) + +The CI pipeline is implemented using **GitHub Actions** and is automatically triggered on every push and pull request. + +#### CI Workflow + +```text +Developer Commit + ↓ +GitHub Push + ↓ +GitHub Actions + ↓ +OpenAPI Validation + ↓ +Spectral Linting + ↓ +Unit Testing + ↓ +Build Verification +``` + +### Continuous Deployment (CD) to Azure API Management + +The CD pipeline automatically deploys the OpenAPI specification to **Azure API Management (APIM)** after successful validation. + +#### CD Workflow + +```text +GitHub Push + ↓ +GitHub Actions + ↓ +Azure Authentication + ↓ +Import OpenAPI Specification + ↓ +Azure API Management +``` + +### Infrastructure as Code (IaC) + +Infrastructure provisioning is automated using **Terraform**. + +#### Infrastructure Components + +Terraform resource provisions: + +```text +Azure Resource Group +Azure API Management Service +``` + +## Final Project submission: + +### GitHub Repository + +**Repository:** + +```text +https://github.com/Padmalaya26/api-lifecycle-devops +``` +### GitHub Actions Pipeline + +#### Workflow Location + +```text +.github/workflows/ +│ +├── ci.yml +├── codeql.yml +└── deploy-apim.yml +``` +#### GitHub Actions Pipeline Run +The Actions tab provides visibility into all CI/CD piepline executions, validation results, test reports, security scans, and deployment status. Links are below. + +- **CodeQl Security Scan run Report:** + ```Text + https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068923 + ``` +- **CI Pipeline Run Report:** + ```Text + https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 + ``` +- **CD Pipeline Run Report:** + ```Text + https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068662 + ``` + +### Conclusion + +This project demonstrates the integration of **API-first development**, **Continuous Integration**, **Continuous Deployment**, **Infrastructure as Code**, **automated testing**, **security scanning**, and **cloud deployment** within a single DevOps workflow. The solution provides a practical implementation of modern DevOps practices using GitHub, GitHub Actions, Terraform, and Azure API Management. From 21c85236753daa8233878438afe2318c401c3c1b Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sat, 10 Oct 2026 00:05:15 +0200 Subject: [PATCH 16/23] Fix formatting in README for final project submission --- contributions/project/moharana-blst/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributions/project/moharana-blst/README.md b/contributions/project/moharana-blst/README.md index cbb8c5cba6..b3f68a5ac0 100644 --- a/contributions/project/moharana-blst/README.md +++ b/contributions/project/moharana-blst/README.md @@ -75,7 +75,7 @@ Azure Resource Group Azure API Management Service ``` -## Final Project submission: +## Final Project submission ### GitHub Repository From eb4838edb8701a4901ca88be5be472226e1c1806 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sat, 10 Oct 2026 00:13:37 +0200 Subject: [PATCH 17/23] Revise README for Automation Pipeline project Updated the README to reflect the new project title and details about the Automation Pipeline for API Lifecycle. Added names, deadlines, and project overview while removing outdated course information. --- README.md | 194 +++++++++++++++++++++++++----------------------------- 1 file changed, 88 insertions(+), 106 deletions(-) diff --git a/README.md b/README.md index b518152029..00f4bcd2be 100644 --- a/README.md +++ b/README.md @@ -1,134 +1,116 @@ -# KTH DevOps Course 2026 Edition +# Assignment Proposal -This repository contains the material and content of the DevOps course at KTH Royal Institute of Technology [DD2482](https://www.kth.se/social/course/DD2482/). +## Title +Project: Automation Pipeline for API Lifecycle using GitHub Actions -``` -$ git clone ssh://github.com/KTH/devops-course/ --branch 2026 --single-branch -``` - - -## Schedule - -The schedule is at - -*If you can't see any schedule events on the HTML page* -*Change course rounds/groups in [My settings](https://www.kth.se/social/course/DD2482/subscription/) or change the time period above so that it conforms to the course round.* - -## Program - -### Week 1 (26/8 13h-15h): Introduction (mandatory) -* Preparatory reading: [DevOps principles](https://www.atlassian.com/devops/what-is-devops) and [demo](https://youtu.be/qcm0rG8EKXI) -* Course introduction by Larissa Schmid (Teaching philosophy, interactive classroom, Expectations, Team, Agenda, Grading, Communication, Infrastructure, Master's theses and Research) -* Goals: watch the repo, register one first task as a pull request on this repo. -* Seminar on 28/8 (09h-12h), 03/09 (09h-12h): Open schedule - discuss your goals for the course, your planned tasks, and any other questions you may have. - -### Week 2 (2/9 13h-15h): [Testing automation](https://github.com/KTH/devops-course/issues/9), [Continuous Integration](https://github.com/KTH/devops-course/issues/3), [Feature flags](https://github.com/KTH/devops-course/issues/21) -* Preparatory material [Testing at scale](https://increment.com/testing/testing-at-scale/), [Harvesting Production GraphQL Queries to Detect Schema Faults](https://arxiv.org/pdf/2112.08267), [The Rituals of Iterations and Tests](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9238653) -* Seminar on 10/09 (15h-18h): scientific paper, demonstrations +## Names and KTH ID -### Week 3 (9/9 13h-15h): [Continuous Deployment / Delivery](https://github.com/KTH/devops-course/issues/12) -* Preparatory material [An Introduction to Continuous Integration, Delivery, and Deployment](https://www.digitalocean.com/community/tutorials/an-introduction-to-continuous-integration-delivery-and-deployment), [The Top 10 Adages in Continuous Deployment](https://zlmonroe.com/CSE566/Readings/5.The_Top_10_Adages_In_Continuous_Deployment.pdf) -* Seminar on 18/09 (15h-18h): scientific paper, demonstrations +- Padmalaya Moharana (moharana@kth.se) +- Bogdan-Laurentiu Stefanescu (blst@kth.se) -### Week 4 (16/9 10h-12h): [MLOps/AIOps/LLMOps](https://github.com/KTH/devops-course/issues/1016) -* Preparatory material: [Short intro to MLOps](https://www.databricks.com/glossary/mlops), [Building Machine Learning Models Like Open Source Software](https://cacm.acm.org/magazines/2023/2/268952-building-machine-learning-models-like-open-source-software/fulltext) -* Seminar on 25/09 (15h-18h): scientific paper, demonstrations +## Deadline +11 October 2026 +## Category +Project -### Week 5 (23/9 13h-15h): [Infrastructure as Code](https://github.com/KTH/devops-course/issues/2) -* Preparatory material: [Best practices for container compliance](https://increment.com/containers/container-compliance/), [Building on-demand staging environments](https://increment.com/containers/on-demand-staging-environments-kubernetes/), [Gang of eight: a defect taxonomy for infrastructure as code scripts](http://www.chrisparnin.me/pdf/GangOfEight.pdf) -* Seminar on 30/09 (09h-12h): scientific paper, demonstrations +## Description +**Project Overview** -### Week 6 (29/9 13h-15h): [Dependency Management](https://github.com/KTH/devops-course/issues/24) & [DevSecOps](https://github.com/KTH/devops-course/issues/18) -* Preparatory material: [A 'Worst Nightmare' Cyberattack: The Untold Story Of The SolarWinds Hack](https://www.npr.org/2021/04/16/985439655/a-worst-nightmare-cyberattack-the-untold-story-of-the-solarwinds-hack), [The supply chain of software](https://increment.com/apis/apis-supply-chain-software/), [Successes, challenges, and wombat behind npm](https://increment.com/development/interview-with-isaac-z-schlueter-ceo-of-npm/), [A comprehensive study of bloated dependencies in the Maven ecosystem ](https://arxiv.org/pdf/2001.07808) -* Seminar on 08/10 (09h-12h): scientific paper, demonstrations +The **Automation Pipeline for API Lifecycle DevOps Project** demonstrates an end-to-end DevOps workflow for designing, validating, testing, deploying, and managing a REST API using an API-first approach. The project uses an OpenAPI specification as the source of truth and integrates Continuous Integration (CI), Continuous Deployment (CD), Infrastructure as Code (IaC), quality automation, and cloud deployment practices within a single GitHub repository. +The API provides weather information for a requested city and is implemented using Node.js and Express. The API contract is defined using OpenAPI 3.0 and is automatically validated, tested, and deployed through GitHub Actions workflows to Azure API Management. -### Week 7 (7/10 13h-15h): Other topics -* incl. [Monitoring and Observability](https://github.com/KTH/devops-course/issues/8), [cultural aspects](https://github.com/KTH/devops-course/issues/7) and [legal aspects](https://github.com/KTH/devops-course/issues/1557), [Software bots](https://github.com/KTH/devops-course/issues/310), , [Misc DevOps topics](https://github.com/KTH/devops-course/issues/13) -* Preparatory material [Chaos Engineering](https://ieeexplore.ieee.org/iel7/52/5204063/07436642.pdf) [A Chaos Engineering System for Live Analysis and Falsification of Exception-handling in the JVM](http://arxiv.org/pdf/1805.05246) -* Seminar on 12/10 (13h-16h), 14/10 (13h-16h): scientific paper, demonstrations +**Continuous Integration (CI)** +The CI pipeline is implemented using **GitHub Actions** and is automatically triggered on every push and pull request. -## Rules +**CI Workflow** +```text +Developer Commit + ↓ +GitHub Push + ↓ +GitHub Actions + ↓ +OpenAPI Validation + ↓ +Spectral Linting + ↓ +Unit Testing + ↓ +Build Verification +``` -To pass the course, the student has to complete and pass between 3 and 5 tasks: -* The tasks are in category: - * "[demo (mandatory)](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#demos)" (sync) - * "[scientific paper](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#scientific-papers)" (sync) - * "[executable tutorial](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#executable-tutorials)" (async) - * "[contribution to open-source](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#open-source-contributions)" (async) - * "[feedback](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#feedback)" (async) - * "[project (mandatory)](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#project)" (async) -* Pproject and demo are mandatory, at most one in the same category, it is not necessary to cover everything. -* The [grading criteria page](grading-criteria.md) is the unique reference which explains how to pass each task category. -* The student proposes a category and a topic, which is discussed and accepted by the TA. The proposal is made as a [structured pull-request](https://github.com/KTH/devops-course/blob/2026/.github/pull_request_template.md) on this repository. Pull request must be created 3 business days before the actual delivery​. The 3-5 graded contributions must have little overlap. -* The same student cannot choose the same topic for two different tasks. The 3-5 tasks should cover different aspects of DevOps. -* Deadlines: - * Deadline for sync tasks (demos and paper presentations): the day and time they are given in person - * Deadline for async tasks (project, tutorial and opensource): Oct 11, 23h59 Stockholm time - * Deadline for feedback on tasks: 2 business days after the "go" from the authors - * Deadline for repeated tasks (all): Oct 27 2026, 17h Stockholm time. - * Hand-in your async tasks via a new PR that updates your proposal document with a link to the artifact/contribution/feedback - * The deadlines are strict and cannot be extended. Not meeting a deadline means failing the task / the repetition. -* Final grading scheme - * E: 3 completed tasks (excluding feedback) - * C: 3 completed tasks + feedback - * B: 4 completed tasks + feedback - * A: 4 completed tasks + feedback + active participation in all but one seminars -* Active participation: attendance to all but one seminars between 10/09 and 14/10, a traceable record of questions asked during seminars (through GitHub issues) and the answers you received to them. -* Group work is mandatory (max 2 persons) but you cannot be with the same person for more than 2 individual tasks. You are not allowed to work alone. When you send a pull request for registration, please follow the name convention of using email addresses of two members to create the folder: email-email. -* A failed task requires to pass it again at the end of the course (repeat), based on the feedback from the failure. A task can only be repeated once. -* If the whole course is failed, no grades are kept if the student registers again to the course the year after. -* After a proposal has been merged, the topic of that proposal cannot be changed. - - -## Communication - -* All communication for the course DD2482 should be sent to . -* you create issues here if you think the question is good to be discussed publicly, the rules of [netiquette](https://en.wikipedia.org/wiki/Etiquette_in_technology) fully apply. - -## Participation +**Continuous Deployment (CD) to Azure API Management** -**Lectures** The lectures are held on campus (no hybrid / no video link). The lecture locations are given on KTH Social . The first lecture is mandatory, the other ones are strongly encouraged. +The CD pipeline automatically deploys the OpenAPI specification to **Azure API Management (APIM)** after successful validation. -**Seminar sessions** +**CD Workflow** -* Seminar slots are used to present and discuss the "demo" and "scientific paper" tasks. They are given in person and correspond to the weekly topics as outlined in the schedule. -* Seminar slots are not mandatory, but you have to be present to present the tasks you proposed. -* Active participation (and therefore attendance) in all but one seminars between 10/09 and 14/10, covering the topics of weeks 2 to 7, is required if you are aiming for an A. +```text +GitHub Push + ↓ +GitHub Actions + ↓ +Azure Authentication + ↓ +Import OpenAPI Specification + ↓ +Azure API Management +``` -**Examinations**: Some tasks require physical presence (demo, scientific paper), others do not (project, open-source, feedback). +**Infrastructure as Code (IaC)** -## Team +Infrastructure provisioning is automated using **Terraform**. -* [Dr Larissa Schmid](https://www.kth.se/profile/lgschmid?l=sv) (Teacher) -* [Dr Carmine Cesarano](https://www.kth.se/profile/cesarano) (TA) -* [Frank Reyes](https://www.kth.se/profile/frankrg) (TA) -* [Eric Cornelissen](https://www.kth.se/profile/ericco) (TA) -* [Aman Sharma](https://www.kth.se/profile/amansha) (TA) -* [Prof. Martin Monperrus](http://www.monperrus.net/martin/) (Examiner) +**Infrastructure Components** +Terraform resource provisions: -## Prerequisites +```text +Azure Resource Group +Azure API Management Service +``` -* A software engineering course (eg [DD2480](https://www.kth.se/student/kurser/kurs/DD2480)) -* A networking course (eg [IK2218](https://www.kth.se/student/kurser/kurs/IK2218?l=en)) +**Final Project submission** -## See also +**GitHub Repository** -* KTH Social URL: -* Kopps URL: -* Past editions: - * [KTH DevOps Course 2019](https://github.com/KTH/devops-course/blob/2019/) - * [KTH DevOps Course 2020](https://github.com/KTH/devops-course/blob/2020/) - * [KTH DevOps Course 2021](https://github.com/KTH/devops-course/blob/2021/) - * [KTH DevOps Course 2022](https://github.com/KTH/devops-course/blob/2022/) - * [KTH DevOps Course 2023](https://github.com/KTH/devops-course/blob/2023/) - * [KTH DevOps Course 2024](https://github.com/KTH/devops-course/blob/2024/) - * [KTH DevOps Course 2025](https://github.com/KTH/devops-course/blob/2025/) +**Repository:** +```text +https://github.com/Padmalaya26/api-lifecycle-devops +``` +**GitHub Actions Pipeline** +**Workflow Location** +```text +.github/workflows/ +│ +├── ci.yml +├── codeql.yml +└── deploy-apim.yml +``` +**GitHub Actions Pipeline Run** +The Actions tab provides visibility into all CI/CD piepline executions, validation results, test reports, security scans, and deployment status. Links are below. + +- **CodeQl Security Scan run Report:** + ```Text + https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068923 + ``` +- **CI Pipeline Run Report:** + ```Text + https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 + ``` +- **CD Pipeline Run Report:** + ```Text + https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068662 + ``` + +**Conclusion** + +This project demonstrates the integration of **API-first development**, **Continuous Integration**, **Continuous Deployment**, **Infrastructure as Code**, **automated testing**, **security scanning**, and **cloud deployment** within a single DevOps workflow. The solution provides a practical implementation of modern DevOps practices using GitHub, GitHub Actions, Terraform, and Azure API Management. From 9c671c3b6de81dc4d4d978d1282b0307c316bc36 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sat, 10 Oct 2026 00:47:43 +0200 Subject: [PATCH 18/23] Revise README for KTH DevOps Course 2026 Edition Updated the README to reflect the 2026 edition of the KTH DevOps course, including new schedule, prerequisites, and course details. --- README.md | 194 +++++++++++++++++++++++++++++------------------------- 1 file changed, 106 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index 00f4bcd2be..9a7171ea21 100644 --- a/README.md +++ b/README.md @@ -1,116 +1,134 @@ -# Assignment Proposal +# KTH DevOps Course 2026 Edition -## Title -Project: Automation Pipeline for API Lifecycle using GitHub Actions +This repository contains the material and content of the DevOps course at KTH Royal Institute of Technology [DD2482](https://www.kth.se/social/course/DD2482/). -## Names and KTH ID +``` +$ git clone ssh://github.com/KTH/devops-course/ --branch 2026 --single-branch +``` -- Padmalaya Moharana (moharana@kth.se) -- Bogdan-Laurentiu Stefanescu (blst@kth.se) -## Deadline -11 October 2026 +## Schedule -## Category -Project +The schedule is at -## Description +*If you can't see any schedule events on the HTML page* +*Change course rounds/groups in [My settings](https://www.kth.se/social/course/DD2482/subscription/) or change the time period above so that it conforms to the course round.* -**Project Overview** +## Program +g +### Week 1 (26/8 13h-15h): Introduction (mandatory) +* Preparatory reading: [DevOps principles](https://www.atlassian.com/devops/what-is-devops) and [demo](https://youtu.be/qcm0rG8EKXI) +* Course introduction by Larissa Schmid (Teaching philosophy, interactive classroom, Expectations, Team, Agenda, Grading, Communication, Infrastructure, Master's theses and Research) +* Goals: watch the repo, register one first task as a pull request on this repo. +* Seminar on 28/8 (09h-12h), 03/09 (09h-12h): Open schedule - discuss your goals for the course, your planned tasks, and any other questions you may have. -The **Automation Pipeline for API Lifecycle DevOps Project** demonstrates an end-to-end DevOps workflow for designing, validating, testing, deploying, and managing a REST API using an API-first approach. The project uses an OpenAPI specification as the source of truth and integrates Continuous Integration (CI), Continuous Deployment (CD), Infrastructure as Code (IaC), quality automation, and cloud deployment practices within a single GitHub repository. +### Week 2 (2/9 13h-15h): [Testing automation](https://github.com/KTH/devops-course/issues/9), [Continuous Integration](https://github.com/KTH/devops-course/issues/3), [Feature flags](https://github.com/KTH/devops-course/issues/21) +* Preparatory material [Testing at scale](https://increment.com/testing/testing-at-scale/), [Harvesting Production GraphQL Queries to Detect Schema Faults](https://arxiv.org/pdf/2112.08267), [The Rituals of Iterations and Tests](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9238653) +* Seminar on 10/09 (15h-18h): scientific paper, demonstrations -The API provides weather information for a requested city and is implemented using Node.js and Express. The API contract is defined using OpenAPI 3.0 and is automatically validated, tested, and deployed through GitHub Actions workflows to Azure API Management. +### Week 3 (9/9 13h-15h): [Continuous Deployment / Delivery](https://github.com/KTH/devops-course/issues/12) +* Preparatory material [An Introduction to Continuous Integration, Delivery, and Deployment](https://www.digitalocean.com/community/tutorials/an-introduction-to-continuous-integration-delivery-and-deployment), [The Top 10 Adages in Continuous Deployment](https://zlmonroe.com/CSE566/Readings/5.The_Top_10_Adages_In_Continuous_Deployment.pdf) +* Seminar on 18/09 (15h-18h): scientific paper, demonstrations -**Continuous Integration (CI)** +### Week 4 (16/9 10h-12h): [MLOps/AIOps/LLMOps](https://github.com/KTH/devops-course/issues/1016) +* Preparatory material: [Short intro to MLOps](https://www.databricks.com/glossary/mlops), [Building Machine Learning Models Like Open Source Software](https://cacm.acm.org/magazines/2023/2/268952-building-machine-learning-models-like-open-source-software/fulltext) +* Seminar on 25/09 (15h-18h): scientific paper, demonstrations -The CI pipeline is implemented using **GitHub Actions** and is automatically triggered on every push and pull request. -**CI Workflow** +### Week 5 (23/9 13h-15h): [Infrastructure as Code](https://github.com/KTH/devops-course/issues/2) +* Preparatory material: [Best practices for container compliance](https://increment.com/containers/container-compliance/), [Building on-demand staging environments](https://increment.com/containers/on-demand-staging-environments-kubernetes/), [Gang of eight: a defect taxonomy for infrastructure as code scripts](http://www.chrisparnin.me/pdf/GangOfEight.pdf) +* Seminar on 30/09 (09h-12h): scientific paper, demonstrations -```text -Developer Commit - ↓ -GitHub Push - ↓ -GitHub Actions - ↓ -OpenAPI Validation - ↓ -Spectral Linting - ↓ -Unit Testing - ↓ -Build Verification -``` -**Continuous Deployment (CD) to Azure API Management** +### Week 6 (29/9 13h-15h): [Dependency Management](https://github.com/KTH/devops-course/issues/24) & [DevSecOps](https://github.com/KTH/devops-course/issues/18) +* Preparatory material: [A 'Worst Nightmare' Cyberattack: The Untold Story Of The SolarWinds Hack](https://www.npr.org/2021/04/16/985439655/a-worst-nightmare-cyberattack-the-untold-story-of-the-solarwinds-hack), [The supply chain of software](https://increment.com/apis/apis-supply-chain-software/), [Successes, challenges, and wombat behind npm](https://increment.com/development/interview-with-isaac-z-schlueter-ceo-of-npm/), [A comprehensive study of bloated dependencies in the Maven ecosystem ](https://arxiv.org/pdf/2001.07808) +* Seminar on 08/10 (09h-12h): scientific paper, demonstrations -The CD pipeline automatically deploys the OpenAPI specification to **Azure API Management (APIM)** after successful validation. -**CD Workflow** +### Week 7 (7/10 13h-15h): Other topics +* incl. [Monitoring and Observability](https://github.com/KTH/devops-course/issues/8), [cultural aspects](https://github.com/KTH/devops-course/issues/7) and [legal aspects](https://github.com/KTH/devops-course/issues/1557), [Software bots](https://github.com/KTH/devops-course/issues/310), , [Misc DevOps topics](https://github.com/KTH/devops-course/issues/13) +* Preparatory material [Chaos Engineering](https://ieeexplore.ieee.org/iel7/52/5204063/07436642.pdf) [A Chaos Engineering System for Live Analysis and Falsification of Exception-handling in the JVM](http://arxiv.org/pdf/1805.05246) +* Seminar on 12/10 (13h-16h), 14/10 (13h-16h): scientific paper, demonstrations -```text -GitHub Push - ↓ -GitHub Actions - ↓ -Azure Authentication - ↓ -Import OpenAPI Specification - ↓ -Azure API Management -``` -**Infrastructure as Code (IaC)** +## Rules -Infrastructure provisioning is automated using **Terraform**. -**Infrastructure Components** +To pass the course, the student has to complete and pass between 3 and 5 tasks: +* The tasks are in category: + * "[demo (mandatory)](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#demos)" (sync) + * "[scientific paper](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#scientific-papers)" (sync) + * "[executable tutorial](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#executable-tutorials)" (async) + * "[contribution to open-source](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#open-source-contributions)" (async) + * "[feedback](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#feedback)" (async) + * "[project (mandatory)](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#project)" (async) +* Pproject and demo are mandatory, at most one in the same category, it is not necessary to cover everything. +* The [grading criteria page](grading-criteria.md) is the unique reference which explains how to pass each task category. +* The student proposes a category and a topic, which is discussed and accepted by the TA. The proposal is made as a [structured pull-request](https://github.com/KTH/devops-course/blob/2026/.github/pull_request_template.md) on this repository. Pull request must be created 3 business days before the actual delivery​. The 3-5 graded contributions must have little overlap. +* The same student cannot choose the same topic for two different tasks. The 3-5 tasks should cover different aspects of DevOps. +* Deadlines: + * Deadline for sync tasks (demos and paper presentations): the day and time they are given in person + * Deadline for async tasks (project, tutorial and opensource): Oct 11, 23h59 Stockholm time + * Deadline for feedback on tasks: 2 business days after the "go" from the authors + * Deadline for repeated tasks (all): Oct 27 2026, 17h Stockholm time. + * Hand-in your async tasks via a new PR that updates your proposal document with a link to the artifact/contribution/feedback + * The deadlines are strict and cannot be extended. Not meeting a deadline means failing the task / the repetition. +* Final grading scheme + * E: 3 completed tasks (excluding feedback) + * C: 3 completed tasks + feedback + * B: 4 completed tasks + feedback + * A: 4 completed tasks + feedback + active participation in all but one seminars +* Active participation: attendance to all but one seminars between 10/09 and 14/10, a traceable record of questions asked during seminars (through GitHub issues) and the answers you received to them. +* Group work is mandatory (max 2 persons) but you cannot be with the same person for more than 2 individual tasks. You are not allowed to work alone. When you send a pull request for registration, please follow the name convention of using email addresses of two members to create the folder: email-email. +* A failed task requires to pass it again at the end of the course (repeat), based on the feedback from the failure. A task can only be repeated once. +* If the whole course is failed, no grades are kept if the student registers again to the course the year after. +* After a proposal has been merged, the topic of that proposal cannot be changed. -Terraform resource provisions: -```text -Azure Resource Group -Azure API Management Service -``` +## Communication -**Final Project submission** +* All communication for the course DD2482 should be sent to . +* you create issues here if you think the question is good to be discussed publicly, the rules of [netiquette](https://en.wikipedia.org/wiki/Etiquette_in_technology) fully apply. -**GitHub Repository** +## Participation -**Repository:** +**Lectures** The lectures are held on campus (no hybrid / no video link). The lecture locations are given on KTH Social . The first lecture is mandatory, the other ones are strongly encouraged. + +**Seminar sessions** + +* Seminar slots are used to present and discuss the "demo" and "scientific paper" tasks. They are given in person and correspond to the weekly topics as outlined in the schedule. +* Seminar slots are not mandatory, but you have to be present to present the tasks you proposed. +* Active participation (and therefore attendance) in all but one seminars between 10/09 and 14/10, covering the topics of weeks 2 to 7, is required if you are aiming for an A. + +**Examinations**: Some tasks require physical presence (demo, scientific paper), others do not (project, open-source, feedback). + +## Team + +* [Dr Larissa Schmid](https://www.kth.se/profile/lgschmid?l=sv) (Teacher) +* [Dr Carmine Cesarano](https://www.kth.se/profile/cesarano) (TA) +* [Frank Reyes](https://www.kth.se/profile/frankrg) (TA) +* [Eric Cornelissen](https://www.kth.se/profile/ericco) (TA) +* [Aman Sharma](https://www.kth.se/profile/amansha) (TA) +* [Prof. Martin Monperrus](http://www.monperrus.net/martin/) (Examiner) + + +## Prerequisites + +* A software engineering course (eg [DD2480](https://www.kth.se/student/kurser/kurs/DD2480)) +* A networking course (eg [IK2218](https://www.kth.se/student/kurser/kurs/IK2218?l=en)) + +## See also + +* KTH Social URL: +* Kopps URL: +* Past editions: + * [KTH DevOps Course 2019](https://github.com/KTH/devops-course/blob/2019/) + * [KTH DevOps Course 2020](https://github.com/KTH/devops-course/blob/2020/) + * [KTH DevOps Course 2021](https://github.com/KTH/devops-course/blob/2021/) + * [KTH DevOps Course 2022](https://github.com/KTH/devops-course/blob/2022/) + * [KTH DevOps Course 2023](https://github.com/KTH/devops-course/blob/2023/) + * [KTH DevOps Course 2024](https://github.com/KTH/devops-course/blob/2024/) + * [KTH DevOps Course 2025](https://github.com/KTH/devops-course/blob/2025/) -```text -https://github.com/Padmalaya26/api-lifecycle-devops -``` -**GitHub Actions Pipeline** -**Workflow Location** -```text -.github/workflows/ -│ -├── ci.yml -├── codeql.yml -└── deploy-apim.yml -``` -**GitHub Actions Pipeline Run** -The Actions tab provides visibility into all CI/CD piepline executions, validation results, test reports, security scans, and deployment status. Links are below. - -- **CodeQl Security Scan run Report:** - ```Text - https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068923 - ``` -- **CI Pipeline Run Report:** - ```Text - https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 - ``` -- **CD Pipeline Run Report:** - ```Text - https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068662 - ``` - -**Conclusion** - -This project demonstrates the integration of **API-first development**, **Continuous Integration**, **Continuous Deployment**, **Infrastructure as Code**, **automated testing**, **security scanning**, and **cloud deployment** within a single DevOps workflow. The solution provides a practical implementation of modern DevOps practices using GitHub, GitHub Actions, Terraform, and Azure API Management. From 100b1bd75fcf6f30c4672d00aa505ea4d888732e Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sat, 10 Oct 2026 01:01:14 +0200 Subject: [PATCH 19/23] Restore README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a7171ea21..b518152029 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The schedule is at *Change course rounds/groups in [My settings](https://www.kth.se/social/course/DD2482/subscription/) or change the time period above so that it conforms to the course round.* ## Program -g + ### Week 1 (26/8 13h-15h): Introduction (mandatory) * Preparatory reading: [DevOps principles](https://www.atlassian.com/devops/what-is-devops) and [demo](https://youtu.be/qcm0rG8EKXI) * Course introduction by Larissa Schmid (Teaching philosophy, interactive classroom, Expectations, Team, Agenda, Grading, Communication, Infrastructure, Master's theses and Research) From 84766c99932dc9fce924fbdd0c9855eeb62f5e87 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sat, 10 Oct 2026 01:20:39 +0200 Subject: [PATCH 20/23] Restore root README from KTH repository --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b518152029..f863e1c78b 100644 --- a/README.md +++ b/README.md @@ -62,9 +62,10 @@ To pass the course, the student has to complete and pass between 3 and 5 tasks: * "[contribution to open-source](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#open-source-contributions)" (async) * "[feedback](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#feedback)" (async) * "[project (mandatory)](https://github.com/KTH/devops-course/blob/2026/grading-criteria.md#project)" (async) -* Pproject and demo are mandatory, at most one in the same category, it is not necessary to cover everything. +* Project and demo are mandatory, at most one in the same category, it is not necessary to cover everything. * The [grading criteria page](grading-criteria.md) is the unique reference which explains how to pass each task category. -* The student proposes a category and a topic, which is discussed and accepted by the TA. The proposal is made as a [structured pull-request](https://github.com/KTH/devops-course/blob/2026/.github/pull_request_template.md) on this repository. Pull request must be created 3 business days before the actual delivery​. The 3-5 graded contributions must have little overlap. +* The student proposes a category and a topic, which is discussed and accepted by the TA. The proposal is made as a [structured pull-request](https://github.com/KTH/devops-course/blob/2026/.github/pull_request_template.md) on this repository. Pull request must be created 3 business days before the actual delivery​. The 3-5 graded contributions must have little overlap. +* The mandatory project is submitted by modifying the PR opened for the project proposal and adding a link to the deployed project, as well as a link to a public repository containing the source code, configuration, and written report. * The same student cannot choose the same topic for two different tasks. The 3-5 tasks should cover different aspects of DevOps. * Deadlines: * Deadline for sync tasks (demos and paper presentations): the day and time they are given in person @@ -78,6 +79,7 @@ To pass the course, the student has to complete and pass between 3 and 5 tasks: * C: 3 completed tasks + feedback * B: 4 completed tasks + feedback * A: 4 completed tasks + feedback + active participation in all but one seminars +* 3-4 "completed tasks" include the mandatory project + 2-3 other tasks (excluding feedback) * Active participation: attendance to all but one seminars between 10/09 and 14/10, a traceable record of questions asked during seminars (through GitHub issues) and the answers you received to them. * Group work is mandatory (max 2 persons) but you cannot be with the same person for more than 2 individual tasks. You are not allowed to work alone. When you send a pull request for registration, please follow the name convention of using email addresses of two members to create the folder: email-email. * A failed task requires to pass it again at the end of the course (repeat), based on the feedback from the failure. A task can only be repeated once. From a72b63c58dcacbeaebc44f05acf8cc18605728c6 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 11 Oct 2026 10:42:43 +0200 Subject: [PATCH 21/23] Refactor README.md for clarity and conciseness Removed redundant text formatting and streamlined links for GitHub repository and pipeline reports. --- contributions/project/moharana-blst/README.md | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/contributions/project/moharana-blst/README.md b/contributions/project/moharana-blst/README.md index e86795931d..fd5d9903c3 100644 --- a/contributions/project/moharana-blst/README.md +++ b/contributions/project/moharana-blst/README.md @@ -79,11 +79,8 @@ Azure API Management Service **GitHub Repository** -**Repository:** +**Repository:**: https://github.com/Padmalaya26/api-lifecycle-devops -```text -https://github.com/Padmalaya26/api-lifecycle-devops -``` **GitHub Actions Pipeline** **Workflow Location** @@ -98,19 +95,14 @@ https://github.com/Padmalaya26/api-lifecycle-devops **GitHub Actions Pipeline Run** The Actions tab provides visibility into all CI/CD piepline executions, validation results, test reports, security scans, and deployment status. Links are below. -- **CodeQl Security Scan run Report:** - ```Text +- **CodeQl Security Scan run Report:**: https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068923 - ``` -- **CI Pipeline Run Report:** - ```Text - https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 - ``` -- **CD Pipeline Run Report:** - ```Text - https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068662 - ``` + +- **CI Pipeline Run Report:**: https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 + +- **CD Pipeline Run Report:** https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068662 + **Conclusion** -This project demonstrates the integration of **API-first development**, **Continuous Integration**, **Continuous Deployment**, **Infrastructure as Code**, **automated testing**, **security scanning**, and **cloud deployment** within a single DevOps workflow. The solution provides a practical implementation of modern DevOps practices using GitHub, GitHub Actions, Terraform, and Azure API Management. \ No newline at end of file +This project demonstrates the integration of **API-first development**, **Continuous Integration**, **Continuous Deployment**, **Infrastructure as Code**, **automated testing**, **security scanning**, and **cloud deployment** within a single DevOps workflow. The solution provides a practical implementation of modern DevOps practices using GitHub, GitHub Actions, Terraform, and Azure API Management. From 8498074e723ee13eb848080b5eee2e1df10a7df1 Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sun, 11 Oct 2026 10:54:25 +0200 Subject: [PATCH 22/23] Fix formatting issues in README.md --- contributions/project/moharana-blst/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contributions/project/moharana-blst/README.md b/contributions/project/moharana-blst/README.md index fd5d9903c3..8755e64a70 100644 --- a/contributions/project/moharana-blst/README.md +++ b/contributions/project/moharana-blst/README.md @@ -79,7 +79,7 @@ Azure API Management Service **GitHub Repository** -**Repository:**: https://github.com/Padmalaya26/api-lifecycle-devops +**Repository:** https://github.com/Padmalaya26/api-lifecycle-devops **GitHub Actions Pipeline** @@ -95,10 +95,10 @@ Azure API Management Service **GitHub Actions Pipeline Run** The Actions tab provides visibility into all CI/CD piepline executions, validation results, test reports, security scans, and deployment status. Links are below. -- **CodeQl Security Scan run Report:**: +- **CodeQl Security Scan run Report:** https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068923 -- **CI Pipeline Run Report:**: https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 +- **CI Pipeline Run Report:** https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 - **CD Pipeline Run Report:** https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068662 From e863e34077bfbf412f46df8a1deef25b6d24bced Mon Sep 17 00:00:00 2001 From: Padmalaya26 Date: Sat, 24 Oct 2026 00:47:55 +0200 Subject: [PATCH 23/23] Enhance README with CI/CD workflows and links Updated CI/CD workflows and added detailed descriptions for both Continuous Integration and Continuous Deployment processes. Included links to GitHub workflow runs and previous pull requests. --- contributions/project/moharana-blst/README.md | 101 ++++++++++-------- 1 file changed, 58 insertions(+), 43 deletions(-) diff --git a/contributions/project/moharana-blst/README.md b/contributions/project/moharana-blst/README.md index 8755e64a70..193c6231ea 100644 --- a/contributions/project/moharana-blst/README.md +++ b/contributions/project/moharana-blst/README.md @@ -26,40 +26,43 @@ The API provides weather information for a requested city and is implemented usi The CI pipeline is implemented using **GitHub Actions** and is automatically triggered on every push and pull request. -**CI Workflow** - -```text -Developer Commit - ↓ -GitHub Push - ↓ -GitHub Actions - ↓ -OpenAPI Validation - ↓ -Spectral Linting - ↓ -Unit Testing - ↓ -Build Verification -``` - **Continuous Deployment (CD) to Azure API Management** -The CD pipeline automatically deploys the OpenAPI specification to **Azure API Management (APIM)** after successful validation. - -**CD Workflow** +The CD pipeline automatically deploys the application package to App Service, imports the OpenAPI definition into **Azure API Management (APIM)**, and updates the APIM backend URL. +**CI/CD Workflow** ```text -GitHub Push - ↓ -GitHub Actions - ↓ -Azure Authentication - ↓ -Import OpenAPI Specification - ↓ -Azure API Management +Developer + │ + ▼ +GitHub Repository + │ + ├── OpenAPI Specification + ├── Node.js API + ├── Terraform + └── GitHub Actions + │ + ▼ + CI Pipeline + ├─ OpenAPI Validation + ├─ Spectral Linting + ├─ Unit Tests + ├─ Build Verification + └─ CodeQL Security Scan + │ + ▼ + CD Pipeline + ├─ Deploy Node.js Application + └─ Deploy OpenAPI Definition + │ + ▼ + Azure App Service + │ + ▼ + Azure API Management + │ + ▼ + Consumers ``` **Infrastructure as Code (IaC)** @@ -68,12 +71,15 @@ Infrastructure provisioning is automated using **Terraform**. **Infrastructure Components** -Terraform resource provisions: +Terraform configuration is in [`terraform/`](terraform/). It defines: + +- An Azure resource group. +- An Azure API Management service. +- A Linux App Service plan. +- A Linux Web App configured for Node.js 20. + +The resource group name and Azure region are variables; outputs include the resource group name, APIM name and gateway URL, and Web App URL. Terraform is **not** run by the GitHub Actions workflows: provision or update the resources separately, and ensure they exist before deployment. The infrastructure definitions do not configure a remote Terraform state backend. -```text -Azure Resource Group -Azure API Management Service -``` **Final Project submission** @@ -81,6 +87,13 @@ Azure API Management Service **Repository:** https://github.com/Padmalaya26/api-lifecycle-devops +**Project report** + +The report explains the architecture, demonstrated processes, design decisions, component interactions, and project limitations: + +- [Download the report (PDF)](https://github.com/Padmalaya26/api-lifecycle-devops/blob/main/docs/report.pdf) + + **GitHub Actions Pipeline** **Workflow Location** @@ -92,16 +105,18 @@ Azure API Management Service ├── codeql.yml └── deploy-apim.yml ``` -**GitHub Actions Pipeline Run** -The Actions tab provides visibility into all CI/CD piepline executions, validation results, test reports, security scans, and deployment status. Links are below. -- **CodeQl Security Scan run Report:** - https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068923 - -- **CI Pipeline Run Report:** https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068792 - -- **CD Pipeline Run Report:** https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/37990068662 +**GitHub workflow runs Example** + +These links point to recorded GitHub workflow runs: + +- [CodeQL security scan](https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/40029173843/job/120672832499) +- [CI pipeline](https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/40029107904/job/120672618644) +- [CD pipeline](https://github.com/Padmalaya26/api-lifecycle-devops/actions/runs/40029313371/job/120673306173) +**Previous Pull Request links** +- [Task proposal pull request](https://github.com/KTH/devops-course/pull/3127) +- [Previous project submission pull request](https://github.com/KTH/devops-course/pull/3199) **Conclusion**