Middleware v0.1.0
Release Notes: Middleware v0.1.0
Hello, world! 👋
This is the first release of our open-source project, Middleware.
What is Middleware?
We built Middleware to help engineering managers like you analyze their team's performance better. It focuses on the DORA metrics (DevOps Research and Assessment) that are widely used in the industry. These metrics will give you a good idea of how well your team is delivering software and how efficiently they're working.
What's in this release?
- Pulling data from GitHub: You can now connect Middleware to your GitHub repositories using a Personal Access token and get data from there.
- DORA Metrics We've added the four main DORA metrics to help you understand your team better:
- Lead Time for Changes: How long it takes to get a change from code commit to being merged into the main branch.
- Deployment Frequency: How often you deploy new code (right now, this is based on the number of merged pull requests).
- Change Failure Rate: How many deployments cause problems (right now, we look for reverted pull requests).
- Mean Time to Recovery: How long it takes to fix a problem after a deployment (again, based on reverted pull requests).
- Docker Images: We've made Docker images for Middleware so you can easily run it on different systems. You can find them here: link.
We want to hear from you!
This is our first attempt, and we'd love your feedback. If you find any bugs or have ideas on how to make Middleware better, please open an issue or send us a pull request on our GitHub repository
Thanks for using Middleware!
What's Changed
- Project setup by @samad-yar-khan in #1
- Add: DB Setup by @amoghjalan in #5
- Add SQLAlchemy Models by @amoghjalan in #6
- Add Placeholder repositories by @amoghjalan in #7
- Environment variable population by @samad-yar-khan in #8
- Add black workflow by @samad-yar-khan in #9
- Settings API by @samad-yar-khan in #10
- Optimize imports by @amoghjalan in #11
- GROW-1206 Add Code Integration: Github exAPI by @amoghjalan in #12
- API for excluded PRs by @samad-yar-khan in #13
- Add Code Integration: GitHub Handler by @amoghjalan in #14
- Grow 1211 factory setup by @amoghjalan in #15
- Grow 1211: Code Ingestion: ETL Code Handler + Integration sys by @amoghjalan in #16
- Grow 1212: Code Ingestion: Analytics (FRT, RT, RC, MT) by @amoghjalan in #17
- API for resolved incidents by @samad-yar-khan in #19
- Grow 1217: Workflows Ingestion: ETL Github Actions Handler by @amoghjalan in #20
- Add Repo methods for PR crud by @samad-yar-khan in #21
- Add WorkflowRepoService and Workflow filter processor by @samad-yar-khan in #22
- Add models Deployment and add adapters by @samad-yar-khan in #23
- Add Deployment to PR mapper - Map between deployment and PRs by @samad-yar-khan in #24
- DeploymentsFactoryService ABC - for Deployment related queries by @samad-yar-khan in #25
- Add DeploymentsService - All deployment related funcs and queries by @samad-yar-khan in #26
- Add Deployment analytics API by @samad-yar-khan in #27
- Grow 1220: Workflows Ingestion: ETL Workflows Handler + Integration sys by @amoghjalan in #28
- Fixes Query Name in Codebase by @amoghjalan in #29
- Deployments map tests by @amoghjalan in #30
- API for teams Lead Time PRs by @samad-yar-khan in #31
- Grow 1224: Add MTD Broker by @amoghjalan in #33
- Create GitHub external APIs by @amoghjalan in #35
- Add api to fetch PRs in a deployment by @samad-yar-khan in #34
- API for fetching deployments with related incidents by @samad-yar-khan in #36
- Add GitIncidentsAPIService for git based incidents by @amoghjalan in #37
- API for Team Lead Time by @samad-yar-khan in #38
- Add time utils and tests by @samad-yar-khan in #39
- Grow 1232: Incidents Ingestion: ETL git based incidents Handle by @amoghjalan in #40
- API for Team Lead Time Trends by @samad-yar-khan in #41
- Grow 1233: Incidents Ingestion: ETL Incidents Handler + Integration sys + Adaptor Tests by @amoghjalan in #42
- Add dict utils for metric aggregation by @samad-yar-khan in #43
- Add team deployment frequency API by @samad-yar-khan in #44
- API for team deployment frequency trends by @samad-yar-khan in #45
- API for Team mean time to recovery (MTTR) by @samad-yar-khan in #47
- Update API pattern to teams/ everywhere by @samad-yar-khan in #48
- Add API for MTTR Trends by @samad-yar-khan in #49
- Add Team CFR API by @samad-yar-khan in #50
- API for Team CFR Trends by @samad-yar-khan in #51
- frontend setup for dora by @e-for-eshaan in #46
- Refactor imports and remove unused code by @shivam-bit in #60
- Add integration endpoint and encryption utility by @shivam-bit in #61
- Add team repository functionality by @shivam-bit in #63
- Add UI for integrations page and relevant functions by @e-for-eshaan in #65
- Initialize DB on Server start with a default Organization by @amoghjalan in #66
- Grow 1299 by @samad-yar-khan in #67
- Fixes Github ETL by @amoghjalan in #68
- Fix git workflows etl by @amoghjalan in #69
- Fix git incidents etl by @amoghjalan in #71
- Add test for CFR trends by @samad-yar-khan in #70
- Create Data Sync Script by @amoghjalan in #72
- Add types and export statement for CodeSourceProvidersIntegration by @shivam-bit in #74
- Add lead-time-centric dora-metrics hooks and files by @e-for-eshaan in #73
- Remove debugging statements by @amoghjalan in #76
- Update settings getters and setters to allow optional setter_id by @samad-yar-khan in #77
- Refactor team settings API endpoint by @shivam-bit in #64
- return if default org is None by @adnanhashmi09 in #78
- Parse PR filter by @samad-yar-khan in #80
- Add UIPreferences Table by @amoghjalan in #81
- change env variable names by removing 'DORA' prefix by @adnanhashmi09 in #83
- Fixes initialize db script by @amoghjalan in #84
- Dora Metrics BFF API by @samad-yar-khan in #86
- Create UI components for TeamsList and useTeamsConfig by @e-for-eshaan in #85
- Add team-related reducers and async thunks, and implement deleteTeam functionality. Also, add stringAvatar and SimpleAvatar components. by @shivam-bit in #88
- hot-fix Dont close session by @samad-yar-khan in #87
- Teams page updates by @e-for-eshaan in #89
- make Dockerfile and docker-compose by @adnanhashmi09 in #32
- Refactor DoraMetrics components and update API response types by @shivam-bit in #93
- Add editing functionality to TeamsList by @e-for-eshaan in #95
- Add button link to integration page in welcome.tsx by @e-for-eshaan in #96
- Migrate to flask_sqlalchemy by @samad-yar-khan in #92
- docker ci-cd build pipleine by @adnanhashmi09 in #97
- Add rollback decorator by @samad-yar-khan in #99
- Grow 1325 2 by @samad-yar-khan in #100
- Add color mapping for PR status and update legends menu component by @shivam-bit in #101
- Add MTTR and Change Failure Rate overlays by @e-for-eshaan in #102
- Upgrade SQLAlchemy to version 2.0.29 by @amoghjalan in #103
- Fix GitHub Datetime String by @amoghjalan in #105
- Add onboarding API endpoint and define OnboardingSteps enum by @shivam-bit in #106
- GitHub commit tests by @amoghjalan in #107
- Add tests for _to_pr_events in GithubETLHandler by @amoghjalan in #108
- remove redundant api call by @e-for-eshaan in #104
- Make pure funcs for deployment freq and trends by @samad-yar-khan in #109
- impedes unlinking and other bugs by @e-for-eshaan in #110
- Add tests for _to_pr_model in GithubETLHandler by @amoghjalan in #111
- Update SQLALCHEMY_ENGINE_OPTIONS pool_size to 10 by @shivam-bit in #112
- Tests for Deployment Frequency by @samad-yar-khan in #114
- Adds loading states and fixes by @e-for-eshaan in #116
- Add relevant tests for Workflow Sync by @amoghjalan in #118
- Grow 1352 API: Data Sync for OSS by @amoghjalan in #119
- Update Logger system to enable custom logging by @amoghjalan in #120
- Add ALERT type in IncidentType by @samad-yar-khan in #121
- Ad Github issue template for repo by @samad-yar-khan in #123
- Add check for database already existing by @amoghjalan in #122
- Fix gh datetime in GitHub actions sync by @amoghjalan in #113
- Refactor DoraMetricsBody and MetricsClassificationsThreshold by @shivam-bit in #124
- Refactor integrations page layout by @shivam-bit in #125
- Update useRoute.ts and ThirdPartyAuthContext.tsx by @shivam-bit in #126
- Fix import and enum name issues by @shivam-bit in #127
- Add APIs for teams CRUD by @samad-yar-khan in #128
- Restructure Directory structure for backend by @amoghjalan in #130
- Rename Dora to mhq by @amoghjalan in #134
- Move pr_analytics to code file by @samad-yar-khan in #135
- Add API for fetching team repos by @samad-yar-khan in #136
- Update OnboardingStep enum and related types by @shivam-bit in #137
- Create different server for Sync by @amoghjalan in #138
- Fixes GitHub Exception error handling by @amoghjalan in #139
- multi-arch build support by @adnanhashmi09 in #98
- Ci cd by @adnanhashmi09 in #140
- Remove org check from sync app by @amoghjalan in #141
- Update sync api by @amoghjalan in #142
- Enable blank issues by @amoghjalan in #143
- Add Get on a Call link for demo by @amoghjalan in #144
- Set merge to deploy as zero in pr deployments lead time prs by @amoghjalan in #145
- Add API for TeamRepo Crud by @samad-yar-khan in #147
- Dev cli setup by @adnanhashmi09 in #146
- Add API for TeamRepos CRUD by @samad-yar-khan in #154
- evaluates badgeDetails for deployment frequency consitently for prev and curr by @e-for-eshaan in #155
- Fix undefined data in getBadgeDetails by @e-for-eshaan in #156
- Grow 1369 by @samad-yar-khan in #158
- Dev and prod docker setup by @adnanhashmi09 in #157
- Refactor team creation and update logic in v2.ts and team_repos.ts by @shivam-bit in #129
- Add syncReposForOrg function to v2.ts for syncing repositories by @shivam-bit in #160
- Add getMissingPATScopes function to auth.ts by @shivam-bit in #162
- Add CTA for selecting required permissions for generating a PAT by @e-for-eshaan in #161
- Refactor promise logic and check for missing scopes for the PAT by @e-for-eshaan in #165
- Fixes edit-icon on the team-selector by @shivam-bit in #166
- Dx improvements by @adnanhashmi09 in #164
- Docker changes by @adnanhashmi09 in #171
- Make pat-permissions image responsive by @e-for-eshaan in #170
- Refactor team-related code and remove unused resources slice by @shivam-bit in #175
- Change dev.sh to run docker-compose watch and change port of redis by @adnanhashmi09 in #176
- Update README.md with table of contents by @amoghjalan in #153
- Update README.md by @e-for-eshaan in #177
- Update README.md with table of contents by @shivam-bit in #179
- Update License by @samad-yar-khan in #178
- Update README.md by @e-for-eshaan in #180
- Update bookmark updated at to check if sync was run by @amoghjalan in #181
- Add Contributor Widget by @samad-yar-khan in #184
- Add relevant badges and logo by @amoghjalan in #182
- Add useRedirectWithSession hook to dora-metrics and teams pages by @shivam-bit in #188
- Add orgRepos to FetchTeamsResponse by @e-for-eshaan in #189
- Update readme banner size by @samad-yar-khan in #191
- Update README.md by @samad-yar-khan in #192
- Final Fixes by @amoghjalan in #194
- Update package.json dependencies and refactor components by @shivam-bit in #193
- Readme changes by @adnanhashmi09 in #196
- Use dockerhub for build release by @amoghjalan in #197
- Build by @amoghjalan in #198
- Gh action matrix by @adnanhashmi09 in #199
New Contributors
- @samad-yar-khan made their first contribution in #1
- @amoghjalan made their first contribution in #5
- @e-for-eshaan made their first contribution in #46
- @shivam-bit made their first contribution in #60
- @adnanhashmi09 made their first contribution in #78
Full Changelog: https://github.com/middlewarehq/middleware/commits/0.1.0