mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-11 17:46:29 -05:00
For classroom like GitHub #5091
Open
opened 2025-11-02 06:14:06 -06:00 by GiteaMirror
·
30 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
type/proposal
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#5091
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sycured on GitHub (Mar 20, 2020).
Hi,
Do you plan to permit an usage like https://classroom.github.com/ ?
It'll be very good to have the possibility to create assignments and students to have their repositories created automatically when applying to the assignment.
For doing this like action (ci/cd, whatever), just having a webhook auto-assigned is perfect.
Regards
@lunny commented on GitHub (Mar 21, 2020):
Sounds interesting.
@lafriks commented on GitHub (Mar 21, 2020):
If you have used it, could you write up task list that need to be implemented in Gitea?
@sycured commented on GitHub (Mar 21, 2020):
Hi, I took some screenshot when I created a classroom and look workflow for individual assignment: https://imgur.com/a/9ZdGkLB
Links to examples about autograding:
@lunny commented on GitHub (Mar 22, 2020):
I haven't used that but I think it should have the features.
We could create three tables,
classroom,assignmentandstudent_assignment.@sycured commented on GitHub (Mar 22, 2020):
I haven't used it, just created a classroom to take screenshots.
So yes, a classroom is owned by an organization.
About running test and autograding, I think that adding
scoretoStudentAssignmentand having an API endpoint for our CI/CD to update that score could be great.Another big deal, it's implementing LTI (https://github.com/education/classroom/issues/2350 & http://www.imsglobal.org/activity/learning-tools-interoperability) this can be useful.
Another thing is Group Assignment: https://imgur.com/a/Z6MiMOq
@lafriks commented on GitHub (Mar 22, 2020):
How are tests added for scoring?
@lafriks commented on GitHub (Mar 22, 2020):
Also maybe this should be made as sepperate project and integrated in Gitea using API
@sycured commented on GitHub (Mar 22, 2020):
On GitHub it's like using GitHub Actions to run tests...
But using CI/CD can be a lot better if we can interact like that:
student apply for assignment 1:
We run the job, take repository username/repositoryname, run test and when finished, curl -XPOST final score sur l'api de gitea
If not, red show score and repository still open to push
Big problem, attach the score to each commit because it's the only way for students to look it and can read an automatic status about tests (comment inside commit)
We won't open CI/CD platform to students
@lafriks commented on GitHub (Mar 22, 2020):
Yes but how to score as tests only have failed/success how to know how many tests there were and how much of them actually failed and how much there is in total
@sycured commented on GitHub (Mar 22, 2020):
In my case, it's one suitcase:
For examples:
Haskell:
stack testRun 1500 tests across the project
Process:
git clone git@git.school.tld:students/assignmentrepo .andstack testPython:
pytestRun 250 tests across the project
Process:
git clone git@git.school.tld:students/assignmentrepo .andpytestThe output of each can be redirected to a file or just parsed and we had it to the commit as a comment.
For example if we hide all lines before 829, the end is clear: https://travis-ci.com/github/sycured/streaming_calc_haskell/jobs/298983826#L829
I've no failure in that example but it's very clear
@techknowlogick commented on GitHub (Mar 22, 2020):
As Gitea is not looking at building a CI itself, we do have a status API, and so this would be perfect for a separate application that reports status back to Gitea.
@sycured commented on GitHub (Mar 22, 2020):
I take the example all time of using a CI/CD and push back to gitea, I use Zuul and DroneCI at this time so no problem if we can push back status, score and comment on the commit do the ping to CI/CD
@lafriks commented on GitHub (Mar 22, 2020):
Is tests and ci instructions saved in same student repo or it is pulled from somewhere else?
@lafriks commented on GitHub (Mar 22, 2020):
If they are how to prevent student from changing them?
@sycured commented on GitHub (Mar 22, 2020):
Impossible for student to see it, it's on server side ;)
we load a container image (podman) that students can't access
@lafriks commented on GitHub (Mar 22, 2020):
Ok but ci instructions like .travisci.yml or .drone.yml would still be in students git repo?
@sycured commented on GitHub (Mar 22, 2020):
Absolutely no because it's server side
@lafriks commented on GitHub (Mar 22, 2020):
I'm just thinking how than travis gets instructions than as they need to be in git repo? 🤔
Sorry for so many questions, just trying to understand whole process
@sycured commented on GitHub (Mar 22, 2020):
I won't use Travis CI for this thing… We have a CI/CD like Jenkins/Bamboo where all instructions are saved server-side so no file in repository like CircleCI or Travis CI or DroneCI
It's the same thing about Classroom for GitHub where they ask for a repository including all the tests scripts and process:
Excepted that you're not implementing a CI/CD in gitea, it's better to use our solution
@lafriks commented on GitHub (Mar 22, 2020):
Ok, than we need to think out a way how to use drone ci for this
@sycured commented on GitHub (Mar 22, 2020):
why not considering it like a webhook and students can't modify/change it ?
@lafriks commented on GitHub (Mar 22, 2020):
Webhook itself is not the problem, problem is that at least Drone CI supports repository instructions to be in repository as file.
btw does students need to submit their task as PR or just as commits?
@sycured commented on GitHub (Mar 22, 2020):
They commit on their repositories, nothing more.
For Drone and similar, I think, we need like GitHub:
Workflow:
git pull git@git.school.tld:organization(or classroom)/repotest-for-assignment1 .rm -rf .gitgit pull git@git.school.tld:stduentid/assignment1 .@techknowlogick commented on GitHub (Mar 22, 2020):
If you don't want them to edit webhooks you could use global webhooks and connect that to whichever CI system you use, that allows them to have full admin over their repo w/o being able to edit webhooks.
@lafriks commented on GitHub (Mar 22, 2020):
I don't think students need to have admin rights over repo. They should have only write rights, so that they can not mess with automation and integration processes. Anyway for drone ci integration to work only way is to have
.drone.ymlfile in repository IMHO. We could probably implement branch protection to have wilcard filter field to not allow editing files that match that filter.@sycured commented on GitHub (Mar 23, 2020):
The only way is the possibility for the classroom/organization to create repository for their students inside classroom's/organization's repositories and not anymore inside student's repositories.
What's the best way?
Because the most safe is a repository owned by classroom/organization and adding student as contributor.
IRL: student's code sent for assignment still is owned by student so it's better to have the reposity in student's repositories
Big question for student side: how can we remove full owner rights on the repository inside their account?
@lafriks commented on GitHub (Mar 23, 2020):
We could probably work something out for this like adding field for custom admin user for user repository
@lafriks commented on GitHub (Mar 23, 2020):
Ok, I have implemented protected file patter option in branch protection in PR #10806
@sycured commented on GitHub (Jun 18, 2020):
Any ETA?
@lafriks commented on GitHub (Jun 18, 2020):
I have started prototype but no eta at the moment