SaudiOSS icon indicating copy to clipboard operation
SaudiOSS copied to clipboard

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

Open mo9a7i opened this issue 2 years ago • 6 comments

السلام عليكم

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

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

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

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

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

mo9a7i avatar Aug 06 '23 07:08 mo9a7i

الله يعافيك يا مهند وجهد تشكر عليه! حقيقة الي اتمناه ان يصير اضافة المشاريع بشكل كامل عن طريق 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 avatar Jan 27 '24 18:01 Alaboudi1

الله يعافيك يا مهند وجهد تشكر عليه! حقيقة الي اتمناه ان يصير اضافة المشاريع بشكل كامل عن طريق 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 avatar Feb 29 '24 15:02 Alaboudi1

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

Alaboudi1 avatar Feb 29 '24 15:02 Alaboudi1

هذه الفكرة غير قابلة للتنفيذ للاسف بسبب ان 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

X7md avatar Dec 13 '24 10:12 X7md

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

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

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

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

mo9a7i avatar Dec 13 '24 11:12 mo9a7i

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

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

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

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

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

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

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

X7md avatar Dec 13 '24 12:12 X7md