René's URL Explorer Experiment


Title: introduce helper to normalize workspace/project roles from strings by DanChov · Pull Request #284 · MerginMaps/python-api-client · GitHub

Open Graph Title: introduce helper to normalize workspace/project roles from strings by DanChov · Pull Request #284 · MerginMaps/python-api-client

X Title: introduce helper to normalize workspace/project roles from strings by DanChov · Pull Request #284 · MerginMaps/python-api-client

Description: This PR adds a small helper function to normalize role inputs so callers can pass either a role Enum instance or a string (case/whitespace-insensitive). Invalid inputs return None, allowing the cal...

Open Graph Description: This PR adds a small helper function to normalize role inputs so callers can pass either a role Enum instance or a string (case/whitespace-insensitive). Invalid inputs return None, allowing the cal...

X Description: This PR adds a small helper function to normalize role inputs so callers can pass either a role Enum instance or a string (case/whitespace-insensitive). Invalid inputs return None, allowing the cal...

Opengraph URL: https://github.com/MerginMaps/python-api-client/pull/284

X: @github

direct link

Domain: github.com

route-pattern/_view_fragments/voltron/pull_requests/show/:user_id/:repository/:id/pull_request_layout(.:format)
route-controllervoltron_pull_requests_fragments
route-actionpull_request_layout
fetch-noncev2:4ca816a1-aaf9-e4fb-f8b6-f4d11a0693b6
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idBC64:F4B44:1C11C03:276170B:69822BA6
html-safe-nonce60a72c54713c7dbb5cae5a3f24c39fac54f457fc265ca5af5d450c2762fcb603
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCQzY0OkY0QjQ0OjFDMTFDMDM6Mjc2MTcwQjo2OTgyMkJBNiIsInZpc2l0b3JfaWQiOiIxMjMzMDQyNTYyMjEwNzM3MDYyIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacbc41f8e1333ffc9f3bfc8ab13addd5f6186eb9d3dee57b3921be8c27c0fcd39d
hovercard-subject-tagpull_request:3146371405
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/pull_requests_fragments/pull_request_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/voltron/pull_requests/show/MerginMaps/python-api-client/284/pull_request_layout
twitter:imagehttps://opengraph.githubassets.com/9f73f9ed26e516dc338ec049f569961d119162b3dcefcd834bba0c4966781d07/MerginMaps/python-api-client/pull/284
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/9f73f9ed26e516dc338ec049f569961d119162b3dcefcd834bba0c4966781d07/MerginMaps/python-api-client/pull/284
og:image:altThis PR adds a small helper function to normalize role inputs so callers can pass either a role Enum instance or a string (case/whitespace-insensitive). Invalid inputs return None, allowing the cal...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameDanChov
hostnamegithub.com
expected-hostnamegithub.com
Nonef29b4256dc96a8de29f6e5fad4bf98fdbfc5cb1dbb313013053581f8470d8a21
turbo-cache-controlno-preview
go-importgithub.com/MerginMaps/python-api-client git https://github.com/MerginMaps/python-api-client.git
octolytics-dimension-user_id88134486
octolytics-dimension-user_loginMerginMaps
octolytics-dimension-repository_id182099139
octolytics-dimension-repository_nwoMerginMaps/python-api-client
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id182099139
octolytics-dimension-repository_network_root_nwoMerginMaps/python-api-client
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release61292800a4f1180f0b13782adc5da7267ec99b94
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/MerginMaps/python-api-client/pull/284#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FMerginMaps%2Fpython-api-client%2Fpull%2F284
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FMerginMaps%2Fpython-api-client%2Fpull%2F284
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fpull_requests_fragments%2Fpull_request_layout&source=header-repo&source_repo=MerginMaps%2Fpython-api-client
Reloadhttps://github.com/MerginMaps/python-api-client/pull/284
Reloadhttps://github.com/MerginMaps/python-api-client/pull/284
Reloadhttps://github.com/MerginMaps/python-api-client/pull/284
MerginMaps https://github.com/MerginMaps
python-api-clienthttps://github.com/MerginMaps/python-api-client
Notifications https://github.com/login?return_to=%2FMerginMaps%2Fpython-api-client
Fork 11 https://github.com/login?return_to=%2FMerginMaps%2Fpython-api-client
Star 23 https://github.com/login?return_to=%2FMerginMaps%2Fpython-api-client
Code https://github.com/MerginMaps/python-api-client
Issues 27 https://github.com/MerginMaps/python-api-client/issues
Pull requests 5 https://github.com/MerginMaps/python-api-client/pulls
Actions https://github.com/MerginMaps/python-api-client/actions
Projects 0 https://github.com/MerginMaps/python-api-client/projects
Security 0 https://github.com/MerginMaps/python-api-client/security
Insights https://github.com/MerginMaps/python-api-client/pulse
Code https://github.com/MerginMaps/python-api-client
Issues https://github.com/MerginMaps/python-api-client/issues
Pull requests https://github.com/MerginMaps/python-api-client/pulls
Actions https://github.com/MerginMaps/python-api-client/actions
Projects https://github.com/MerginMaps/python-api-client/projects
Security https://github.com/MerginMaps/python-api-client/security
Insights https://github.com/MerginMaps/python-api-client/pulse
Sign up for GitHub https://github.com/signup?return_to=%2FMerginMaps%2Fpython-api-client%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2FMerginMaps%2Fpython-api-client%2Fissues%2Fnew%2Fchoose
Jump to bottomhttps://github.com/MerginMaps/python-api-client/pull/284#issue-comment-box
MarcelGeohttps://github.com/MarcelGeo
masterhttps://github.com/MerginMaps/python-api-client/tree/master
roles_as_stringhttps://github.com/MerginMaps/python-api-client/tree/roles_as_string
introduce helper to normalize workspace/project roles from strings https://github.com/MerginMaps/python-api-client/pull/284#top
MarcelGeohttps://github.com/MarcelGeo
masterhttps://github.com/MerginMaps/python-api-client/tree/master
roles_as_stringhttps://github.com/MerginMaps/python-api-client/tree/roles_as_string
Conversation 7 https://github.com/MerginMaps/python-api-client/pull/284
Commits 5 https://github.com/MerginMaps/python-api-client/pull/284/commits
Checks 4 https://github.com/MerginMaps/python-api-client/pull/284/checks
Files changed https://github.com/MerginMaps/python-api-client/pull/284/files
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
https://github.co/hiddenchars
https://github.com/MerginMaps/python-api-client/pull/{{ revealButtonHref }}
https://github.com/DanChov
DanChovhttps://github.com/DanChov
Jan 5, 2026https://github.com/MerginMaps/python-api-client/pull/284#issue-3781591375
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
#265https://github.com/MerginMaps/python-api-client/issues/265
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
DanChovhttps://github.com/DanChov
January 5, 2026 14:51https://github.com/MerginMaps/python-api-client/pull/284#commits-pushed-0f70940
https://github.com/DanChov
create helper to normalize role input (accepts string and Enum)https://github.com/MerginMaps/python-api-client/pull/284/commits/0f7094075ba0829555a0ee58e159721101f761bc
0f70940https://github.com/MerginMaps/python-api-client/pull/284/commits/0f7094075ba0829555a0ee58e159721101f761bc
https://github.com/DanChov
changed using union for python 3.8https://github.com/MerginMaps/python-api-client/pull/284/commits/c62dbadcf682dbc35cba29f8a413efc01664dd14
c62dbadhttps://github.com/MerginMaps/python-api-client/pull/284/commits/c62dbadcf682dbc35cba29f8a413efc01664dd14
https://github.com/DanChov
changed bad pastehttps://github.com/MerginMaps/python-api-client/pull/284/commits/ff671d06f7223459ab6af9a6018e13fcfb6a74b4
ff671d0https://github.com/MerginMaps/python-api-client/pull/284/commits/ff671d06f7223459ab6af9a6018e13fcfb6a74b4
https://github.com/DanChov
DanChovhttps://github.com/DanChov
MarcelGeohttps://github.com/MarcelGeo
harminiushttps://github.com/harminius
varmar05https://github.com/varmar05
MarcelGeohttps://github.com/MarcelGeo
harminiushttps://github.com/harminius
January 5, 2026 15:10https://github.com/MerginMaps/python-api-client/pull/284#event-21856209742
https://github.com/harminius
harminiushttps://github.com/harminius
Jan 6, 2026 https://github.com/MerginMaps/python-api-client/pull/284#pullrequestreview-3630806217
View reviewed changes https://github.com/MerginMaps/python-api-client/pull/284/files/ff671d06f7223459ab6af9a6018e13fcfb6a74b4
harminiushttps://github.com/harminius
https://github.com/MerginMaps/python-api-client/pull/284#pullrequestreview-3630806217
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
https://github.com/varmar05
varmar05https://github.com/varmar05
Jan 8, 2026 https://github.com/MerginMaps/python-api-client/pull/284#pullrequestreview-3637928718
View reviewed changes https://github.com/MerginMaps/python-api-client/pull/284/files/ff671d06f7223459ab6af9a6018e13fcfb6a74b4
varmar05https://github.com/varmar05
https://github.com/MerginMaps/python-api-client/pull/284#pullrequestreview-3637928718
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
mergin/test/test_client.pyhttps://github.com/MerginMaps/python-api-client/pull/284/files/ff671d06f7223459ab6af9a6018e13fcfb6a74b4#diff-51c7baf16e1498a1c455e10a3abb29099e5e206f1e8678aa059079d80e4e9c85
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
mergin/client.pyhttps://github.com/MerginMaps/python-api-client/pull/284/files/ff671d06f7223459ab6af9a6018e13fcfb6a74b4#diff-5b13155ba31648fee62bd0e3e5f0c3cc3ce862b9b7317487a7d118305ab7a218
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
mergin/utils.pyhttps://github.com/MerginMaps/python-api-client/pull/284/files/ff671d06f7223459ab6af9a6018e13fcfb6a74b4#diff-9ad314461a47980d8de6a4f8c192a88fa3a9bed1e8f932a12ad1501b69a72127
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
mergin/client.pyhttps://github.com/MerginMaps/python-api-client/pull/284/files/ff671d06f7223459ab6af9a6018e13fcfb6a74b4#diff-5b13155ba31648fee62bd0e3e5f0c3cc3ce862b9b7317487a7d118305ab7a218
varmar05https://github.com/varmar05
Jan 8, 2026https://github.com/MerginMaps/python-api-client/pull/284#discussion_r2671073667
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
DanChovhttps://github.com/DanChov
January 12, 2026 12:56https://github.com/MerginMaps/python-api-client/pull/284#commits-pushed-0ec31a5
https://github.com/DanChov
Changes based on review changed tests using pytest parametrize, creat…https://github.com/MerginMaps/python-api-client/pull/284/commits/0ec31a53333c60220724be01dc40e36bb1b269cf
0ec31a5https://github.com/MerginMaps/python-api-client/pull/284/commits/0ec31a53333c60220724be01dc40e36bb1b269cf
https://github.com/DanChov
blackhttps://github.com/MerginMaps/python-api-client/pull/284/commits/43ef278c3d1bb5637fbabb5aacc7e9999c67081e
43ef278https://github.com/MerginMaps/python-api-client/pull/284/commits/43ef278c3d1bb5637fbabb5aacc7e9999c67081e
https://github.com/varmar05
varmar05https://github.com/varmar05
Jan 12, 2026 https://github.com/MerginMaps/python-api-client/pull/284#pullrequestreview-3650965106
View reviewed changes https://github.com/MerginMaps/python-api-client/pull/284/files/0ec31a53333c60220724be01dc40e36bb1b269cf
mergin/test/test_client.pyhttps://github.com/MerginMaps/python-api-client/pull/284/files/0ec31a53333c60220724be01dc40e36bb1b269cf#diff-51c7baf16e1498a1c455e10a3abb29099e5e206f1e8678aa059079d80e4e9c85
varmar05https://github.com/varmar05
Jan 12, 2026https://github.com/MerginMaps/python-api-client/pull/284#discussion_r2682447039
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
https://github.com/DanChov
DanChovhttps://github.com/DanChov
varmar05https://github.com/varmar05
January 12, 2026 15:11https://github.com/MerginMaps/python-api-client/pull/284#event-21992178950
https://github.com/MarcelGeo
MarcelGeohttps://github.com/MarcelGeo
Jan 16, 2026 https://github.com/MerginMaps/python-api-client/pull/284#pullrequestreview-3670738971
View reviewed changes https://github.com/MerginMaps/python-api-client/pull/284/files/43ef278c3d1bb5637fbabb5aacc7e9999c67081e
https://github.com/varmar05
varmar05https://github.com/varmar05
Jan 16, 2026 https://github.com/MerginMaps/python-api-client/pull/284#pullrequestreview-3670875075
View reviewed changes https://github.com/MerginMaps/python-api-client/pull/284/files/43ef278c3d1bb5637fbabb5aacc7e9999c67081e
https://github.com/MarcelGeo
MarcelGeohttps://github.com/MarcelGeo
70a75b5https://github.com/MerginMaps/python-api-client/commit/70a75b559d4f20453554283ae0fdaf3f718ce519
Jan 16, 2026https://github.com/MerginMaps/python-api-client/pull/284#event-22097898343
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
https://github.com/MarcelGeo
MarcelGeohttps://github.com/MarcelGeo
January 16, 2026 14:53https://github.com/MerginMaps/python-api-client/pull/284#event-22097900493
https://github.com/harminius
harminiushttps://github.com/harminius
Jan 19, 2026 https://github.com/MerginMaps/python-api-client/pull/284#ref-pullrequest-3829585234
Use string as workspace and project role MerginMaps/docs#717 https://github.com/MerginMaps/docs/pull/717
Sign up for freehttps://github.com/join?source=comment-repo
Sign in to commenthttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FMerginMaps%2Fpython-api-client%2Fpull%2F284
https://github.com/MarcelGeo
MarcelGeo https://github.com/MarcelGeo
https://github.com/MerginMaps/python-api-client/pull/284/files/43ef278c3d1bb5637fbabb5aacc7e9999c67081e
https://github.com/varmar05
varmar05 https://github.com/varmar05
https://github.com/MerginMaps/python-api-client/pull/284/files/43ef278c3d1bb5637fbabb5aacc7e9999c67081e
https://github.com/harminius
harminius https://github.com/harminius
https://github.com/MerginMaps/python-api-client/pull/284/files/ff671d06f7223459ab6af9a6018e13fcfb6a74b4
Please reload this pagehttps://github.com/MerginMaps/python-api-client/pull/284
https://github.com/DanChov
https://github.com/MarcelGeo
https://github.com/varmar05
https://github.com/harminius
https://github.com/apps/copilot-swe-agent
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.