diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..ce144bf1 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,8 @@ +# Code of Conduct + +This project follows the ownCloud Code of Conduct. + +Please read the full Code of Conduct at: +**** + +By participating in this project, you agree to abide by its terms. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8a045d74..65c99156 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,26 +1,9 @@ -## Submitting issues +# Contributing -If you have questions about how to install or use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc]. +Thank you for your interest in contributing to this project! -### Short version +Please read the full contributing guidelines at: +**** - * The [**issue template can be found here**][template]. Please always use the issue template when reporting issues. - -### Guidelines -* Please search the existing issues first, it's likely that your issue was already reported or even fixed. - - Go to one of the repositories, click "issues" and type any word in the top search/command bar. - - You can also filter by appending e. g. "state:open" to the search string. - - More info on [search syntax within github](https://help.github.com/articles/searching-issues) -* This repository ([activity](https://github.com/owncloud/activity/issues)) is *only* for issues within the ownCloud activity code. -* __SECURITY__: Report any potential security bug to security@owncloud.com following our [security policy](https://owncloud.org/security/) instead of filing an issue in our bug tracker -* Report the issue using our [template][template], it includes all the information we need to track down the issue. - -Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. - -[template]: https://raw.github.com/owncloud/core/master/issue_template.md -[mailinglist]: https://mailman.owncloud.org/mailman/listinfo/owncloud -[forum]: https://forum.owncloud.org/ -[irc]: https://webchat.freenode.net/?channels=owncloud&uio=d4 - -### Contribute Code and translations -Please check [core's contribution guidelines](https://github.com/owncloud/core/blob/master/CONTRIBUTING.md) for further information about contributing code and translations. +For development setup, coding standards, and pull request process, +see the README in this repository. diff --git a/README.md b/README.md index b81acba3..380f6229 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,98 @@ -Activity App -=============== +# Activity -The ownCloud Activity application enables users to not only get a summarized overview of all file and folder events in their ownCloud, but also to receive notifications for such via email. The user can configure their individual Activity preferences in their personal settings and can decide in detail which file or folder actions should be listed in the Activity stream (accessible via the app launcher) and also for which file or folder actions the users wants to receive email notifications. The bulk email notifications can either be sent out hourly, daily or weekly to fit the specific needs of the individual user. + -From creation of new files or folders, to file or folder changes, updates, restores from trash bin, sharing activities, comments, tags and downloads from public share links - the ownCloud Activity app gathers all file or folder related actions in one place for the user to review. For users with lots of activity it is possible to limit the Activity stream to 'Favorites' in order to avoid noise. Furthermore the application provides filters to give users the means to maintain overview by reducing entries to relevant information. +[![License](https://img.shields.io/badge/License-See%20Repository-blue.svg)](LICENSE) [![ownCloud OSPO](https://img.shields.io/badge/OSPO-ownCloud-blue)](https://kiteworks.com/opensource) [![Docker Hub](https://img.shields.io/docker/pulls/owncloud)](https://hub.docker.com/r/owncloud/server) -And there you have it - a complete overview of all file and folder activities in your ownCloud with the additional ability to receive activity notifications via email in a time interval of your choice. Never again miss an important event related to content in ownCloud and always be up-to-date on all activities of your files and folders. +The ownCloud Activity app provides users with a comprehensive overview of all file and folder events in their ownCloud instance and supports email notifications for those events. Users can configure which actions appear in the Activity stream (accessible via the app launcher) and which trigger email notifications, with bulk emails sent hourly, daily, or weekly. The app tracks file creation, modification, restoration from trash, sharing, comments, tags, and public share link downloads, with a Favorites filter to reduce noise. -## QA metrics on master branch: +## Part of Classic (OC10) -[![Build Status](https://drone.owncloud.com/api/badges/owncloud/activity/status.svg?branch=master)](https://drone.owncloud.com/owncloud/activity) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=owncloud_activity&metric=alert_status)](https://sonarcloud.io/dashboard?id=owncloud_activity) -[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=owncloud_activity&metric=security_rating)](https://sonarcloud.io/dashboard?id=owncloud_activity) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud_activity&metric=coverage)](https://sonarcloud.io/dashboard?id=owncloud_activity) +Activity is a core app for [ownCloud Server (Classic)](https://github.com/owncloud/core). It is installed as part of the standard ownCloud Server deployment and provides the activity stream and notification features in the web interface. The app is available on [Docker Hub as part of the ownCloud Server image](https://hub.docker.com/r/owncloud/server). -# Add new activities / types for other apps +## Getting Started -With the activity manager extensions can be registered which allow any app to extend the activity behavior. +Activity is included by default in ownCloud Server. To install it separately in a development environment: -In order to implement an extension create a class which implements the interface `\OCP\Activity\IExtension`. +1. Clone this repository into the `apps/` directory of your ownCloud Server installation +2. Run `make` to build the app +3. Enable the app via the ownCloud admin panel or `occ app:enable activity` -The PHPDoc comments on each method should give enough information to the developer on how to implement them. +## Documentation + +- [ownCloud Server documentation](https://doc.owncloud.com) +- See the `docs/` directory for additional information +- The app provides an extension API via `\OCP\Activity\IExtension` for other apps to add custom activity types + +## Community & Support + +**[Star](https://github.com/owncloud/activity)** this repo and **Watch** for release notifications! + +- [ownCloud Website](https://owncloud.com) +- [Community Discussions](https://github.com/orgs/owncloud/discussions) +- [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org) +- [Documentation](https://doc.owncloud.com) +- [Enterprise Support](https://owncloud.com/contact-us/) +- [OSPO Home](https://kiteworks.com/opensource) + +## Contributing + +We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md) +and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started. + +### Workflow + +- **Rebase Early, Rebase Often!** We use a rebase workflow. Always rebase on the target branch before submitting a PR. +- **Dependabot**: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly. +- **Signed Commits**: All commits **must** be PGP/GPG signed. See [GitHub's signing guide](https://docs.github.com/en/authentication/managing-commit-signature-verification). +- **DCO Sign-off**: Every commit must carry a `Signed-off-by` line: + ``` + git commit -s -S -m "your commit message" + ``` +- **GitHub Actions Policy**: Workflows may only use actions that are (a) owned by `owncloud`, (b) created by GitHub (`actions/*`), or (c) verified in the GitHub Marketplace. + +## Translations + +Help translate this project on Transifex: +**** + +Please submit translations via Transifex -- do not open pull requests for translation changes. + +## Security + +**Do not open a public GitHub issue for security vulnerabilities.** + +Report vulnerabilities at **** -- see [SECURITY.md](SECURITY.md). + +Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program) + +## License + +See [LICENSE](LICENSE) for license details. + +## About the ownCloud OSPO + +The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under +the [ownCloud](https://owncloud.com) brand, launched on May 5, 2026, to steward the open source +ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance, +community health, and sustainable collaboration between the open source community and +[Kiteworks](https://www.kiteworks.com), which acquired ownCloud in 2023. + +- **OSPO Home**: +- **GitHub**: +- **ownCloud**: + +For questions about the OSPO or licensing, contact ospo@kiteworks.com. + +### License Migration to Apache 2.0 + +The OSPO is driving a strategic relicensing of ownCloud repositories toward the +[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), following +the [Apache Software Foundation's third-party license policy](https://www.apache.org/legal/resolved.html). + +Individual repositories will migrate as their audit is completed. The LICENSE file +in each repo reflects its **current** license status (not the target). + +**Current license: Not detected.** The OSPO will determine the current license status of this +repository before planning any migration steps. If you know the intended license, please open an +issue or contact ospo@kiteworks.com. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..78094ae4 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,11 @@ +# Security Policy + +## Reporting a Vulnerability + +**Do NOT open a public GitHub issue for security vulnerabilities.** + +Please report security issues responsibly via: +**** + +You can also report vulnerabilities through our YesWeHack bug bounty program: +**** diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 00000000..d87c0ca8 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,10 @@ +# Support + +For support with this project, please use the following channels: + +- **Enterprise Support**: +- **Community discussions**: https://github.com/orgs/owncloud/discussions +- **Matrix Chat**: +- **Documentation**: + +Please do not use GitHub issues for general support questions. diff --git a/agents.md b/agents.md new file mode 100644 index 00000000..7f158b66 --- /dev/null +++ b/agents.md @@ -0,0 +1,86 @@ +# AI Agent Guidelines for Activity + +This file provides context for AI coding agents (Claude Code, GitHub Copilot, Cursor, etc.) working in this repository. + +## Repository Overview +- **Product family:** Classic (OC10) +- **Primary language(s):** PHP, JavaScript +- **Build system:** Composer, Make, npm/Yarn +- **Test framework:** PHPUnit, JavaScript tests +- **CI system:** GitHub Actions + +## Architecture & Key Paths +- `lib/` - PHP application logic +- `appinfo/` - ownCloud app metadata and registration +- `templates/` - Server-side templates +- `js/` - Frontend JavaScript +- `css/` - Stylesheets +- `l10n/` - Translations +- `tests/` - PHPUnit tests +- `docs/` - Documentation and screenshots +- `img/` - App icons and images +- `Makefile` - Build and test automation +- `composer.json` - PHP dependencies +- `package.json` - JavaScript dependencies +- `phpcs.xml` - PHP_CodeSniffer configuration +- `phpstan.neon` - PHPStan static analysis configuration +- `phpunit.xml` - PHPUnit configuration + +## Development Conventions +- **Branching:** master +- **Commit messages:** DCO sign-off required (`git commit -s`) +- **Code style:** PHP_CodeSniffer (phpcs.xml), ownCloud coding standard +- **PR process:** Open a PR against master. All CI checks must pass. + +## Build & Test Commands +```bash +# Build +make + +# Test (PHP) +make test-php-unit + +# Test (JavaScript) +make test-js + +# Lint +make test-php-style + +# Fix code style +make test-php-style-fix + +# Static analysis +make test-php-phpstan +``` + +## Important Constraints +- All code contributions must be compatible with the project's license +- Do not introduce new **copyleft-licensed dependencies** (GPL, AGPL, LGPL, MPL) without explicit discussion in an issue first. This is especially important for repos migrating to Apache 2.0. +- Do not introduce new dependencies without discussion in an issue first +- This app requires ownCloud Server (Classic) to run + + +## OSPO Policy Constraints + +### GitHub Actions +- **Only** use actions owned by `owncloud`, created by GitHub (`actions/*`), verified on the GitHub Marketplace, or verified by the ownCloud Maintainers. +- Pin all actions to their full commit SHA (not tags): `uses: actions/checkout@ # vX.Y.Z` +- Never introduce actions from unverified third parties. + +### Dependency Management +- Dependabot is configured for automated dependency updates. +- Review and merge Dependabot PRs as part of regular maintenance. +- Do not introduce new dependencies without discussion in an issue first. + +### Git Workflow +- **Rebase policy**: Always rebase; never create merge commits. Use `git pull --rebase` and `git rebase` before pushing. +- **Signed commits**: All commits **must** be PGP/GPG signed (`git commit -S -s`). +- **DCO sign-off**: Every commit needs a `Signed-off-by` line (`git commit -s`). +- **Conventional Commits & Squash Merge**: Use the [Conventional Commits](https://www.conventionalcommits.org/) format where the repository enforces it. Many repos use squash merge, where the PR title becomes the commit message on the default branch — apply Conventional Commits format to PR titles as well. A reusable GitHub Actions workflow enforces this. + +## Context for AI Agents +- Match existing code style +- Do not refactor unrelated code in the same PR +- Write tests for new functionality +- Keep PRs focused and atomic +- The app uses the ownCloud `\OCP\Activity\IExtension` interface for extensibility