Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

تعديل طريقة جلب البيانات للمشاركة في الريبو #97

Open
mo9a7i opened this issue Aug 6, 2023 · 6 comments

Comments

@mo9a7i
Copy link
Member

mo9a7i commented Aug 6, 2023

السلام عليكم

إمتدادا للنقاش #62 والذي تم تنفيذه حالياً، أعتقد بإمكاننا التحسين للتأكد من صحة البيانات المدخلة
الطريقة الحالية هي سحب ملف dev.json وإضافة مشاركاتك والرفع لقتهب، المقترح هو تفكيك ملف dev.json بالشكل التالي

-- .github
-- homepage
-- utilities
-- developers
---- mo9a7i.json
---- DevMoath.json
---- .....
-- .gitignore
-- ...

محتوى كل ملف للمطور يكون بنفس شكله الحالي، ولكن....
بعد إضافة المطور ملفه أو تعديله، وعند مراجعة ال pull request و قابلية الدمج، يقوم قتهب بتشييك بعض الأشياء وإعطاء خطأ إذا كانت البيانات المدخلة غير متناسقة مع الستاندرد المطلوب عبر تشغيل test file

كان في بالي مقترح آخر وهو أن اليوزر أصلاً مايضيف إسمه ومعلوماته الشخصية والوصف بالعربي، فقط يضيف الريبو المفتوحة المصدر، والسكربت في هذي الريبو يقوم بجلب إسم اليوزر ورابط صفحته والوصف للريبو وجميع هذي الخيارات. ويكون ملف المشاركة عبارة عن array فيها روابط فقط للريبوز مفتوحة المصدر

أتمنى مشاركتنا الأفكار إذا حصل لكم الوقت لتسهيل عملية المشاركة هنا وتحسين طريقة العرض أيضاً

@Alaboudi1
Copy link
Member

Alaboudi1 commented Jan 27, 2024

الله يعافيك يا مهند وجهد تشكر عليه! حقيقة الي اتمناه ان يصير اضافة المشاريع بشكل كامل عن طريق UI في الموقع. المطور يسجل دخول بحسابه في GitHub عن طريقك https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps
ثم المبرمج يختار المشاريع ويتم فتح pull request بشكل اوتماتيك عن طريق https://docs.github.com/en/rest?apiVersion=2022-11-28

هذا هدف بعيد لكن اي تعديل ممكن يقربنا لهذا الهدف أكيد مرحب فيه. هل اقتراحك هذا راح يقربنا لهذا الهدف؟ وش رايك؟

@Alaboudi1
Copy link
Member

الله يعافيك يا مهند وجهد تشكر عليه! حقيقة الي اتمناه ان يصير اضافة المشاريع بشكل كامل عن طريق UI في الموقع. المطور يسجل دخول بحسابه في GitHub عن طريقك https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps ثم المبرمج يختار المشاريع ويتم فتح pull request بشكل اوتماتيك عن طريق https://docs.github.com/en/rest?apiVersion=2022-11-28

هذا هدف بعيد لكن اي تعديل ممكن يقربنا لهذا الهدف أكيد مرحب فيه. هل اقتراحك هذا راح يقربنا لهذا الهدف؟ وش رايك؟

هذه الفكرة غير قابلة للتنفيذ للاسف بسبب ان GitHub لايدعم PKCE (Proof Key for Code Exchange)

https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#1-request-a-users-github-identity

@Alaboudi1
Copy link
Member

عموما نرجع لاقتراحك مهند، ممتاز وأقترح لو نبدأ في تسهيل عملية الإضافة مثل ما قلت يضيف فقط المشروع وسكربت يسوي الباقي.

@X7md
Copy link

X7md commented Dec 13, 2024

هذه الفكرة غير قابلة للتنفيذ للاسف بسبب ان GitHub لايدعم PKCE (Proof Key for Code Exchange)

الله يعافيك يا مهند وجهد تشكر عليه! حقيقة الي اتمناه ان يصير اضافة المشاريع بشكل كامل عن طريق UI في الموقع. المطور يسجل دخول بحسابه في GitHub عن طريقك https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps ثم المبرمج يختار المشاريع ويتم فتح pull request بشكل اوتماتيك عن طريق https://docs.github.com/en/rest?apiVersion=2022-11-28

هذا هدف بعيد لكن اي تعديل ممكن يقربنا لهذا الهدف أكيد مرحب فيه. هل اقتراحك هذا راح يقربنا لهذا الهدف؟ وش رايك؟

قد لا يحبذ البعض اعطاء صلاحيات عمل PR عبر حسابهم الشخصي، مع أن الفكرة ممتازة ولكن قد لا يفضل الاشخاص المهتمين بالخصوصية والأمن فعل ذلك...

أقترح أن تعمل واجهة بسيطة مع base64 شيء مشابه لـ Vue Playground

https://play.vuejs.org/#eNp9kLGqAjEQRX9lmVr2Fc9KRFCx0EJFLdNIHNdodhIyiS7I/rtJxNVC7IZ7zsCducPY2vIaEAYwZOmU9SNBw79uhB54loaOqirPbCh6d0FFIUCa2iqNbmW9MsQCBkUmie21NrdFzrwL2Hvl8oTy8iU/c5MyAWuHjO6KAjrm965C/8Sz7RKbOHewNoego/0DbpCNDqnjU5sEOsTaH15uO6+tcV5RteNZ45H4dVQqmsw2+wLis6Y/Tn/X/S/7eU9QC+0D5kh1Og==

حيث تقوم الواجهة بسحب بيانات المشروع المدخل وجعلها كرابط، وينسخ المستخدم هذا الرابط ويضعه في pr، ويقوم GitHub Action بقراءة base64 ويعدل الـ JSON

@mo9a7i
Copy link
Member Author

mo9a7i commented Dec 13, 2024

هلا حمد
اشرحلنا اكثر عن موضوع الخصوصية

الكيفية اللي بيشتغل فيها التظبيق (الواجهة) انه بيقول لك سجل دخول بحسابك في قتهب وماراح يحفظ اي شي بالسيرفر (لانه serverless app) كلها بمتصفحك
وبعد ماتختار الريبو بيسوي pull request باسمك زي ماتسويه بنفسك باي مشروع عام

طريقة الً fork, change, pull هي الطريقةالمتبعة بالمشاركات باغلب المشاريع مفتوحة المصدر

يمكن مافهمتك صح عطنا توضيح الله لايهينك

@X7md
Copy link

X7md commented Dec 13, 2024

هلا حمد اشرحلنا اكثر عن موضوع الخصوصية

الكيفية اللي بيشتغل فيها التظبيق (الواجهة) انه بيقول لك سجل دخول بحسابك في قتهب وماراح يحفظ اي شي بالسيرفر (لانه serverless app) كلها بمتصفحك وبعد ماتختار الريبو بيسوي pull request باسمك زي ماتسويه بنفسك باي مشروع عام

طريقة الً fork, change, pull هي الطريقةالمتبعة بالمشاركات باغلب المشاريع مفتوحة المصدر

يمكن مافهمتك صح عطنا توضيح الله لايهينك

الموضوع أنه فيه بعض الاشخاص لا يحبذون إعطاء صلاحية عمل PR عبر oauth لتطبيق طرف ثالث خصوصًا لو استعمال لمرة واحدة (يضيف مشروعه بالقائمة) هذا الشيء لاحظته في مجتمعات الويكي (ويكيميديا) وكذلك البرمجيات الحرة والمفتوحة صحيح أنه يقدر يسوي revoke وقت ما بغى لكن البعض يوم يشوف أنه التطبيق قد يأخذ صلاحية أو يضيفك لمشروع بصلاحية معينة قد يتحفظ لأنه يرى أنه قد يمكن يخليه يكتب حاجات الشخص ما قالها مثلًا في الـPR وغيرها من الافتراضات عند الناس الي تهمهم مواضيع الخصوصية والأمان.

طبعًا عادي تقدر توفر أكثر من خيار للمشاركة، بحيث اللي يفضل يشارك بختار الطريقة المثلى له.

ولا أعرف لو فيه حل لمشكلة PKCE (Proof Key for Code Exchange) المذكورة فوق...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants