Skip to content

Commit

Permalink
Merge branch 'develop' into feature/add-api-versioning
Browse files Browse the repository at this point in the history
  • Loading branch information
julian-christl committed May 11, 2024
2 parents d327417 + 4d2367c commit 34da004
Show file tree
Hide file tree
Showing 912 changed files with 20,813 additions and 11,594 deletions.
27 changes: 13 additions & 14 deletions .github/ISSUE_TEMPLATE/feature-proposal--developer-.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,34 @@ assignees: ''

---

> Feature Template Spec Version 0.1
<!-- Feature Proposal Marker -->

# Feature Proposal
> Spec Version 0.2.0
## Context

### Problem
> Describe the problem that is tackled in this issue
### Motivation
> Describe the motivation WHY the problem needs solving. Include the affected users/roles here.
> Describe the motivation WHY the problem needs solving. Specify the affected users/roles.
---
## Requirements Engineering

### Existing (Problematic) Solution / System
> What is the current solution (if there is one)? What is the problem with the current solution?
> You may include a UML Model here
### Proposed System
> How should the perfect solution look like?
> What would the ideal solution look like?
### Requirements
> Describe the Functional and Non-Functional Requirements of the feature. Stick to the INVEST methodology!
> 1. FR: <Title>: <Description>
>
> 1. NFR: <FURPS+ Category>: <Title>: <Description>
---
## Analysis

### Analysis Object Model
Expand All @@ -43,24 +44,22 @@ assignees: ''
> Include dynamic models (Activity Diagram, State Chart Diagram, Communication Diagram) here to outline the dynamic nature of the PROBLEM

---
## System Design
## System Architecture

### Subsystem Decomposition
> Show the involved subsystems and their interfaces. Make sure to describe the APIs that you add/change in detail. Model the DTOs you intend to (re)use or change!
### Persistent Data Management
> Describe the Database changes you intend to make.
> Outline new config options you will add.
> Describe all other data persistency mechanisms you may use.
> Outline new configuration options you plan to introduce
> Describe all other data persistence mechanisms you may use.
### Access Control / Security Aspects
> Describe the access control considerations for your feature
### Other Design Decisions
> Potential candidates to discuss here: Websockets, Test strategy
> Potential topics to discuss here include: WebSockets, testing strategies.
---
## UI / UX
> Describe the user flow (references to dynamic model).
> Screenshots of the final UI mockup
## UI/UX Design
> Screenshots of the final UI mockups (mandatory): Please include screenshots to provide a clear and persistent visual reference of the design.
> Link to the design mockup (optional): Additionally, you may include a link to the live design mockup (e.g., Figma, Sketch) for a more interactive view. Note that this link is supplementary and should not replace the required screenshots.
169 changes: 169 additions & 0 deletions .github/workflows/append_feature_proposal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
name: Append Feature Proposal to Issue Description

on:
issues:
types: [assigned, unassigned, labeled]

jobs:
check-labels:
runs-on: ubuntu-latest
outputs:
status: ${{ steps.feature-proposal-tag-check.outputs.status }}
steps:
- id: feature-proposal-tag-check
name: Check if feature proposal tag added
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
const hasFeatureProposalLabel = issue.data.labels.some(label => label.name === 'needs-feature-proposal');
if (hasFeatureProposalLabel) {
console.log('Feature Proposal label added. Proceeding...');
core.setOutput('status', 'success');
} else {
console.log('Feature Proposal label not added. Skipping action...');
core.setOutput('status', 'failure');
}
manage-feature-proposal:
needs: check-labels
if: needs.check-labels.outputs.status == 'success'
runs-on: ubuntu-latest
steps:
- name: Check if feature proposal tag added
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
const hasFeatureProposalLabel = issue.data.labels.some(label => label.name === 'needs-feature-proposal');
if (hasFeatureProposalLabel) {
console.log('Feature Proposal label added. Proceeding...');
} else {
console.log('Feature Proposal label not added. Skipping action...');
process.exit(0);
}
- name: Checkout code
uses: actions/checkout@v4

- name: Append Feature Proposal Template to Issue Description
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
// Check if the issue has a 'bug' label
const hasBugLabel = issue.data.labels.some(label => label.name === 'bug');
if (hasBugLabel) {
console.log("Issue is labeled as 'bug'. Skipping...");
return; // Exit the script if 'bug' label is found
}
const featureProposalMarker = '<!-- Feature Proposal Marker -->';
if (!issue.data.body.includes(featureProposalMarker)) {
const templateContent = await github.rest.repos.getContent({
owner,
repo,
path: '.github/ISSUE_TEMPLATE/feature-proposal--developer-.md'
});
let templateText = Buffer.from(templateContent.data.content, 'base64').toString();
// Add separator line and remove metadata section
templateText = '---\n' + templateText.split('---').slice(2).join('---').trim();
const updatedBody = issue.data.body + "\n" + templateText;
await github.rest.issues.update({
owner,
repo,
issue_number: issueNumber,
body: updatedBody,
});
}
- name: Update or Post instructions comment
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
// Check if the issue has any assignees
if (issue.data.assignees.length === 0) {
console.log("No assignees for this issue. Skipping...");
return; // Exit the script if no assignees are found
}
// Check if the issue has a 'bug' label
const hasBugLabel = issue.data.labels.some(label => label.name === 'bug');
if (hasBugLabel) {
console.log("Issue is labeled as 'bug'. Skipping...");
return; // Exit the script if 'bug' label is found
}
const assignees = issue.data.assignees.map(assignee => '@' + assignee.login).join(', ');
const comments = await github.rest.issues.listComments({
owner,
repo,
issue_number: issueNumber,
});
const instructionCommentMarker = '<!-- Instruction Comment Marker -->';
let instructionCommentId = null;
for (const comment of comments.data) {
if (comment.body.includes(instructionCommentMarker)) {
instructionCommentId = comment.id;
break;
}
}
const commentBody = `Hello ${assignees},\n\nThank you for taking on this issue.\n\nTo ensure the Feature Proposal is accurately filled out, we kindly ask you to follow the structure provided.\n\n**For detailed instructions and best practices**, please refer to our **[Development Process Guidelines](https://docs.artemis.cit.tum.de/dev/development-process.html)**.\n\n${instructionCommentMarker}`;
if (instructionCommentId) {
await github.rest.issues.updateComment({
owner,
repo,
comment_id: instructionCommentId,
body: commentBody,
});
} else {
await github.rest.issues.createComment({
owner,
repo,
issue_number: issueNumber,
body: commentBody,
});
}
27 changes: 0 additions & 27 deletions .github/workflows/playwright.yml

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ Refer to [Using JHipster in production](http://www.jhipster.tech/production) for
The following command can automate the deployment to a server. The example shows the deployment to the main Artemis test server (which runs a virtual machine):

```shell
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-7.0.3.war
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-7.0.5.war
```

## Architecture
Expand Down
Loading

0 comments on commit 34da004

Please sign in to comment.