{"source":"https://contributable.vercel.app","licence":"CC BY 4.0","methodology":"https://contributable.vercel.app/methodology","v":2,"owner":"OWASP","name":"pytm","updatedAt":"2026-10-11T12:52:03.304Z","coveredSince":"2025-10-11T12:52:03.304Z","facts":{"owner":"OWASP","name":"pytm","description":"A Pythonic framework for threat modeling","stars":1175,"forks":232,"archived":false,"isFork":false,"license":"NOASSERTION","defaultBranch":"master","pushedAt":"2026-10-05T14:46:41Z","createdAt":"2018-05-14T23:16:07Z","topics":["data-flow-diagram","sequence-diagram","dfd","pythonic-framework","threats","threat-modeling","threat-modeling-from-code","secure-development","diagram","dataflow"],"languages":{"Python":265128,"Makefile":1613,"Shell":1534,"Dockerfile":1143,"PowerShell":344},"frameworks":["Pydantic","pytest"],"commits90d":18,"releases365d":1,"lastReleaseAt":"2026-07-06T13:17:13Z","gettingStarted":{"contributing":true,"codeOfConduct":false,"issueTemplates":false,"devcontainer":true,"cla":"none","channels":[{"kind":"mailing-list","url":"https://groups.google.com/forum/#!forum/pytm-users"}],"policy":null}},"metrics":{"computedAt":"2026-10-11T12:52:03.304Z","outsidePulls":{"cohort":{"n":17,"merged":9,"closedUnmerged":4,"open":4,"mergeRate":0.6923076923076923,"openShare":0.23529411764705882,"evidence":{"merged":[364,356,355,353,341,340,339,338,335],"closedUnmerged":[361,359,358,354],"open":[365,362,360,357]}},"firstTimers":{"n":2,"merged":2,"closedUnmerged":0,"open":0,"mergeRate":null,"openShare":null,"evidence":{"merged":[353,335],"closedUnmerged":[],"open":[]}},"year":{"n":42,"merged":26,"closedUnmerged":10,"open":6,"mergeRate":0.7222222222222222,"openShare":0.14285714285714285,"evidence":{"merged":[364,356,355,353,341,340,339,338,335,331,330,329,326,325,324,323,322,321,320,318],"closedUnmerged":[361,359,358,354,317,314,313,305,299,290],"open":[365,362,360,357,328,298]}}},"pullFirstResponse":{"n":17,"answered":17,"waiting":0,"medianHours":55.160833333333336,"p75Hours":208.25916666666666,"within48h":0.11764705882352944,"within7d":0.7058823529411764,"curve":[{"hours":4.663055555555555,"waiting":0.9411764705882353},{"hours":16.56,"waiting":0.8823529411764706},{"hours":53.748333333333335,"waiting":0.8235294117647058},{"hours":53.76861111111111,"waiting":0.7647058823529411},{"hours":54.97638888888889,"waiting":0.7058823529411765},{"hours":55.06583333333333,"waiting":0.6470588235294118},{"hours":55.15555555555556,"waiting":0.5882352941176471},{"hours":55.158055555555556,"waiting":0.5294117647058824},{"hours":55.160833333333336,"waiting":0.47058823529411764},{"hours":55.202777777777776,"waiting":0.4117647058823529},{"hours":55.30777777777778,"waiting":0.35294117647058826},{"hours":55.63722222222222,"waiting":0.29411764705882354},{"hours":208.25916666666666,"waiting":0.23529411764705885},{"hours":757.5094444444444,"waiting":0.17647058823529413},{"hours":757.8163888888889,"waiting":0.11764705882352944},{"hours":758.0616666666666,"waiting":0.05882352941176472},{"hours":1118.0591666666667,"waiting":0}],"evidence":{"answered":[365,364,362,361,360,359,358,357,356,355,354,353,341,340,339,338,335],"waiting":[]}},"timeToMerge":{"n":17,"merged":9,"medianHours":1224.5697222222223,"evidence":[364,356,355,353,341,340,339,338,335]},"issueFirstResponse":{"n":3,"answered":2,"waiting":1,"medianHours":null,"p75Hours":null,"within48h":null,"within7d":null,"curve":[],"evidence":{"answered":[363,351],"waiting":[352]}},"starter":{"counts":{"available":1,"claimed":0,"in-progress":0,"stale":2},"helpWantedAvailable":1,"issues":[{"n":34,"title":"AC03 - condition is too limiting","state":"stale","label":"help-wanted","createdAt":"2018-10-21T15:40:03Z","updatedAt":"2024-03-14T14:26:35Z"},{"n":32,"title":"DO01 - wrong condition check?","state":"stale","label":"help-wanted","createdAt":"2018-10-21T15:32:10Z","updatedAt":"2024-03-14T15:04:49Z"},{"n":28,"title":"Missing documentation for conditions","state":"stale","label":"help-wanted","createdAt":"2018-10-21T15:15:58Z","updatedAt":"2024-05-16T11:09:41Z"},{"n":27,"title":"DS01: Weak credential storage - condition too broad","state":"stale","label":"beginner","createdAt":"2018-10-21T15:11:44Z","updatedAt":"2020-10-04T11:06:01Z"},{"n":23,"title":"Automatic trust boundary detection?","state":"stale","label":"help-wanted","createdAt":"2018-08-10T01:42:53Z","updatedAt":"2020-10-02T19:39:22Z"},{"n":19,"title":"Logic is going to get messy fast, rules engine?","state":"available","label":"help-wanted","createdAt":"2018-07-20T16:49:56Z","updatedAt":"2026-08-16T11:20:21Z"},{"n":12,"title":"Initial TM creation is a pain and requires a lot of typing","state":"available","label":"beginner","createdAt":"2018-07-19T14:04:34Z","updatedAt":"2026-08-14T14:24:18Z"},{"n":9,"title":"DF1 threat assumes source and sink are remote systems","state":"stale","label":"beginner","createdAt":"2018-07-19T05:08:43Z","updatedAt":"2023-06-25T14:34:12Z"}]},"responseWindow":{"hours":null,"people":2,"replies":29},"activeMaintainers":3},"series":[{"week":"2025-10-12","opened":0,"merged":0,"answered7d":0,"activity":1},{"week":"2025-10-19","opened":1,"merged":0,"answered7d":1,"activity":4},{"week":"2025-10-26","opened":1,"merged":0,"answered7d":0,"activity":2},{"week":"2025-11-02","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2025-11-09","opened":0,"merged":0,"answered7d":0,"activity":1},{"week":"2025-11-16","opened":1,"merged":0,"answered7d":0,"activity":1},{"week":"2025-11-23","opened":1,"merged":1,"answered7d":0,"activity":1},{"week":"2025-11-30","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2025-12-07","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2025-12-14","opened":1,"merged":1,"answered7d":0,"activity":1},{"week":"2025-12-21","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2025-12-28","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-01-04","opened":3,"merged":3,"answered7d":2,"activity":9},{"week":"2026-01-11","opened":1,"merged":0,"answered7d":0,"activity":1},{"week":"2026-01-18","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-01-25","opened":1,"merged":0,"answered7d":1,"activity":4},{"week":"2026-02-01","opened":0,"merged":0,"answered7d":0,"activity":1},{"week":"2026-02-08","opened":0,"merged":0,"answered7d":0,"activity":2},{"week":"2026-02-15","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-02-22","opened":0,"merged":0,"answered7d":0,"activity":1},{"week":"2026-03-01","opened":1,"merged":0,"answered7d":1,"activity":3},{"week":"2026-03-08","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-03-15","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-03-22","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-03-29","opened":1,"merged":1,"answered7d":1,"activity":2},{"week":"2026-04-05","opened":1,"merged":1,"answered7d":1,"activity":4},{"week":"2026-04-12","opened":6,"merged":6,"answered7d":2,"activity":11},{"week":"2026-04-19","opened":2,"merged":1,"answered7d":1,"activity":4},{"week":"2026-04-26","opened":1,"merged":1,"answered7d":1,"activity":4},{"week":"2026-05-03","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-05-10","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-05-17","opened":1,"merged":1,"answered7d":1,"activity":15},{"week":"2026-05-24","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-05-31","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-06-07","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-06-14","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-06-21","opened":1,"merged":1,"answered7d":0,"activity":1},{"week":"2026-06-28","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-07-05","opened":3,"merged":3,"answered7d":0,"activity":6},{"week":"2026-07-12","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-07-19","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-07-26","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-08-02","opened":1,"merged":1,"answered7d":1,"activity":10},{"week":"2026-08-09","opened":10,"merged":3,"answered7d":10,"activity":20},{"week":"2026-08-16","opened":2,"merged":1,"answered7d":1,"activity":4},{"week":"2026-08-23","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-08-30","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-09-06","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-09-13","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-09-20","opened":0,"merged":0,"answered7d":0,"activity":0},{"week":"2026-09-27","opened":1,"merged":1,"answered7d":1,"activity":1},{"week":"2026-10-04","opened":0,"merged":0,"answered7d":0,"activity":6}],"trend":{"flag":"unknown","recentMedianHours":null,"previousMedianHours":null,"recentN":1,"previousN":2,"openedThisWeek":0,"openedLastWeek":1},"programs":[{"program":"gsoc","slug":"owasp-foundation","name":"OWASP Foundation","years":[2024,2025,2026]}]}