Skip to content

Commit 8f6ada8

Browse files
Michael BreuMichael Breu
authored andcommitted
Implemtation, Testing, Documentation and Configuration
1 parent a46be85 commit 8f6ada8

File tree

70 files changed

+4565
-45
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+4565
-45
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ on:
4141
- develop
4242
- main
4343
- release/*
44+
- feature/connecting-to-sharing-platform
4445
tags: '[0-9]+.[0-9]+.[0-9]+'
4546
release:
4647
types:

build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ configurations.configureEach {
154154

155155
dependencies {
156156

157+
// Required by Sharing Platform
158+
implementation group: 'org.codeability', name: 'SharingPluginPlatformAPI', version: '1.1.1'
157159
// Required by Spring cloud
158160
implementation "org.apache.httpcomponents.client5:httpclient5:5.5"
159161
implementation "org.apache.httpcomponents.core5:httpcore5:5.3.4"
@@ -450,7 +452,7 @@ dependencies {
450452
testRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}"
451453
}
452454

453-
// we have to apply the test.gradle file after the dependencies block, otherwise we get the error Cannot change dependencies of dependency configuration ":mockitoAgent" after it has been resolved
455+
// we have to apply the test.gradle file after the dependencies block, otherwise we get the error Cannot change dependencies of dependency configuration ':mockitoAgent' after it has been resolved
454456
apply from: "gradle/test.gradle"
455457

456458

docker/artemis/config/dev-local-vc-local-ci.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# https://docs.artemis.cit.tum.de/dev/setup.html#debugging-with-docker
33
_JAVA_OPTIONS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
44

5-
SPRING_PROFILES_ACTIVE: artemis,scheduling,localci,localvc,buildagent,core,dev,docker
5+
SPRING_PROFILES_ACTIVE: artemis,scheduling,localci,localvc,buildagent,core,dev,docker,sharing
66

77
# Integrated Code Lifecycle settings with Jira
88
ARTEMIS_USERMANAGEMENT_USEEXTERNAL="false"

docs/admin/extension-services.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ Other Extension Services
3333
setup/apollon
3434
setup/hermes
3535
setup/aeolus
36+
setup/sharing

docs/admin/setup/sharing.rst

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
.. _sharing-setup:
2+
3+
.. |sharing_health1| image:: sharing/sharing_health1.png
4+
.. |sharing_health2| image:: sharing/sharing_health2.png
5+
.. |sharing_button1| image:: sharing/sharingButtonArtemis.png
6+
.. |sharing_button2| image:: sharing/sharingButtonSharing.png
7+
8+
Setup Guide for Exchange with the Sharing Platform
9+
==================================================
10+
11+
.. contents::
12+
:local:
13+
14+
Background
15+
----------
16+
17+
The `Sharing Platform <https://search.sharing-codeability.uibk.ac.at/>`_ is an open platform for sharing teaching materials related to programming. It is operated by the `University of Innsbruck <https://www.uibk.ac.at/en/>`_. While primarily designed as an open exchange platform, it also provides features such as private group exchanges and the ability to restrict public access to certain content, such as the solution repository of an Artemis exercise.
18+
19+
For more details, visit the `help menu <https://search.sharing-codeability.uibk.ac.at/>`_ of the sharing platform.
20+
21+
To facilitate the exchange of programming exercises among instructors, the sharing platform offers a connector to Artemis, enabling any Artemis instance to integrate with the platform for seamless sharing.
22+
23+
Prerequisites
24+
-------------
25+
26+
To connect to the sharing platform, you need an API key. To request one, contact the platform maintainers at `[email protected]` and provide the URL of your active Artemis instance.
27+
28+
**Important:** Sharing only works if your Artemis instance is accessible on the internet. If making your instance publicly available is not an option, the maintainers can provide a list of required Artemis URLs that must be accessible to the sharing platform.
29+
30+
**Configuration**
31+
~~~~~~~~~~~~~~~~~
32+
33+
Once you receive your API key, you should add it to the configuration file **``application-sharing.yml``** or your `.env` file:
34+
35+
**Option 1: application-sharing.yml**
36+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
37+
38+
.. code-block:: yaml
39+
40+
artemis:
41+
sharing:
42+
# Shared common secret
43+
apikey: <your API Key>
44+
serverurl: https://search.codeability.uibk.ac.at
45+
actionname: Export to Artemis@myUniversity
46+
47+
**Option 2: .env file for Docker initialization**
48+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49+
50+
.. code-block:: bash
51+
52+
ARTEMIS_SHARING_SERVERURL=https://search.codeability.uibk.ac.at
53+
ARTEMIS_SHARING_APIKEY=<Enter your API Key here>
54+
ARTEMIS_SHARING_ACTIONNAME=Export to Artemis@<Enter an ID here>
55+
56+
Additionally, you must enable the **``sharing``** profile to activate the sharing connector.
57+
58+
Once configured, restart your Artemis instance.
59+
60+
**Instructor Access Requirements**
61+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62+
63+
For instructors to exchange programming exercises, they need an account on the sharing platform. They can register using one of the following methods:
64+
65+
- **EduID Authentication**: The simplest way is through `EduID (Austria) <https://www.aco.net/federation.html>`_ or `EduID (Germany) <https://doku.tid.dfn.de/de:aai:eduid:start>`_. Forward the necessary connection details to the sharing platform maintainers.
66+
- **GitLab-Based Registration**: If EduID is not an option, users can register via the sharing platform’s GitLab instance. However, for security reasons, self-registration is restricted to certain email domains. To enable access, forward the desired domains to the maintainers for approval.
67+
68+
Troubleshooting
69+
---------------
70+
71+
To assist in troubleshooting, the **sharing profile** includes an additional health indicator, accessible via the **``Administration -> Health``** menu.
72+
73+
|sharing_health1|
74+
75+
Under **Details**, you will typically find the following entries:
76+
77+
|sharing_health2|
78+
79+
- The **first entry** is an initialization request sent after startup.
80+
- The **second entry** reflects the subsequent receipt of the connector configuration from the sharing platform.
81+
- Additional entries represent regular configuration polling requests from the sharing platform.
82+
83+
The **Details** log stores the last 10 entries.
84+
85+
If the health status is not **``up``**, check the error message in the details. If the issue is unclear, feel free to contact the sharing platform maintainers for support.
86+
87+
Conclusion
88+
----------
89+
90+
Once everything is set up correctly, you should see the |sharing_button1| button in the **Programming Exercise Details** dialog in Artemis.
91+
92+
Similarly, the |sharing_button2| button should appear on the sharing platform for any programming exercise available there.
93+
94+
Before testing the import and export functionality, refer to the user documentation at :ref:`sharing` for further details.
1.41 KB
Loading
1.54 KB
Loading
14.2 KB
Loading
17.3 KB
Loading

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ All these exercises are supposed to be run either live in the lecture with insta
3939
user/markdown-support
4040
user/integrated-code-lifecycle
4141
user/exports
42+
user/sharing
4243
user/mobile-applications
4344
user/lti
4445

0 commit comments

Comments
 (0)