updated plugin Gitium
version 1.0.7
This commit is contained in:
parent
c54fa007bd
commit
627ec103fe
@ -193,7 +193,7 @@ function gitium_group_commit_modified_plugins_and_themes( $msg_append = '' ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ( $commit_groups as $base_path => $change ) {
|
foreach ( $commit_groups as $base_path => $change ) {
|
||||||
$commit_message = _gitium_format_message( $change['name'], $change['version'], "${change['action']} ${change['type']}" );
|
$commit_message = _gitium_format_message( $change['name'], $change['version'], "{$change['action']} {$change['type']}" );
|
||||||
$commit = _gitium_commit_changes( "$commit_message $msg_append", $base_path, false );
|
$commit = _gitium_commit_changes( "$commit_message $msg_append", $base_path, false );
|
||||||
if ( $commit ) {
|
if ( $commit ) {
|
||||||
$commits[] = $commit;
|
$commits[] = $commit;
|
||||||
|
@ -18,14 +18,14 @@
|
|||||||
header( 'Content-Type: text/html' );
|
header( 'Content-Type: text/html' );
|
||||||
define( 'SHORTINIT', true );
|
define( 'SHORTINIT', true );
|
||||||
//$wordpress_loader = $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
|
//$wordpress_loader = $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
|
||||||
$wordpress_loader = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT', FILTER_SANITIZE_STRING) . '/wp-load.php';
|
$wordpress_loader = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT', FILTER_SANITIZE_FULL_SPECIAL_CHARS) . '/wp-load.php';
|
||||||
|
|
||||||
require_once $wordpress_loader;
|
require_once $wordpress_loader;
|
||||||
require_once __DIR__ . '/functions.php';
|
require_once __DIR__ . '/functions.php';
|
||||||
require_once __DIR__ . '/inc/class-git-wrapper.php';
|
require_once __DIR__ . '/inc/class-git-wrapper.php';
|
||||||
|
|
||||||
$webhook_key = get_option( 'gitium_webhook_key', '' );
|
$webhook_key = get_option( 'gitium_webhook_key', '' );
|
||||||
$get_key = filter_input(INPUT_GET, 'key', FILTER_SANITIZE_STRING);
|
$get_key = filter_input(INPUT_GET, 'key', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! empty ( $webhook_key ) && isset( $get_key ) && $webhook_key == $get_key ) :
|
if ( ! empty ( $webhook_key ) && isset( $get_key ) && $webhook_key == $get_key ) :
|
||||||
( '1.7' <= substr( $git->get_version(), 0, 3 ) ) or wp_die( 'Gitium plugin require minimum `git version 1.7`!' );
|
( '1.7' <= substr( $git->get_version(), 0, 3 ) ) or wp_die( 'Gitium plugin require minimum `git version 1.7`!' );
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Plugin Name: Gitium
|
* Plugin Name: Gitium
|
||||||
* Version: 1.0.6
|
* Version: 1.0.7
|
||||||
* Author: Presslabs
|
* Author: Presslabs
|
||||||
* Author URI: https://www.presslabs.com
|
* Author URI: https://www.presslabs.com
|
||||||
* License: GPL2
|
* License: GPL2
|
||||||
@ -9,7 +9,7 @@
|
|||||||
* Text Domain: gitium
|
* Text Domain: gitium
|
||||||
* Domain Path: /languages/
|
* Domain Path: /languages/
|
||||||
*/
|
*/
|
||||||
/* Copyright 2014-2016 Presslabs SRL <ping@presslabs.com>
|
/* Copyright 2014-2024 Presslabs <ping@presslabs.com>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License, version 2, as
|
it under the terms of the GNU General Public License, version 2, as
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (!defined('GITIGNORE'))
|
||||||
define('GITIGNORE', <<<EOF
|
define('GITIGNORE', <<<EOF
|
||||||
*.log
|
*.log
|
||||||
*.swp
|
*.swp
|
||||||
@ -134,7 +135,9 @@ class Git_Wrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function get_env() {
|
private function get_env() {
|
||||||
$env = array();
|
$env = array(
|
||||||
|
'HOME' => getenv( 'HOME' ),
|
||||||
|
);
|
||||||
$key_file = null;
|
$key_file = null;
|
||||||
|
|
||||||
if ( defined( 'GIT_SSH' ) && GIT_SSH ) {
|
if ( defined( 'GIT_SSH' ) && GIT_SSH ) {
|
||||||
@ -162,7 +165,7 @@ class Git_Wrapper {
|
|||||||
$env = $this->get_env();
|
$env = $this->get_env();
|
||||||
|
|
||||||
$git_bin_path = apply_filters( 'gitium_git_bin_path', '' );
|
$git_bin_path = apply_filters( 'gitium_git_bin_path', '' );
|
||||||
$cmd = "${git_bin_path}git $args 2>&1";
|
$cmd = "{$git_bin_path}git $args 2>&1";
|
||||||
|
|
||||||
$proc = proc_open(
|
$proc = proc_open(
|
||||||
$cmd,
|
$cmd,
|
||||||
|
@ -59,7 +59,7 @@ class Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function disconnect_repository() {
|
public function disconnect_repository() {
|
||||||
$gitium_disconnect_repo = filter_input(INPUT_POST, 'GitiumSubmitDisconnectRepository', FILTER_SANITIZE_STRING);
|
$gitium_disconnect_repo = filter_input(INPUT_POST, 'GitiumSubmitDisconnectRepository', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
|
|
||||||
if ( ! isset( $gitium_disconnect_repo ) ) {
|
if ( ! isset( $gitium_disconnect_repo ) ) {
|
||||||
return;
|
return;
|
||||||
@ -73,8 +73,8 @@ class Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function show_message() {
|
public function show_message() {
|
||||||
$get_message = filter_input(INPUT_GET, 'message', FILTER_SANITIZE_STRING);
|
$get_message = filter_input(INPUT_GET, 'message', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
$get_success = filter_input(INPUT_GET, 'success', FILTER_SANITIZE_STRING);
|
$get_success = filter_input(INPUT_GET, 'success', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( isset( $get_message ) && $get_message ) {
|
if ( isset( $get_message ) && $get_message ) {
|
||||||
$type = ( isset( $get_success ) && $get_success == 1 ) ? 'updated' : 'error';
|
$type = ( isset( $get_success ) && $get_success == 1 ) ? 'updated' : 'error';
|
||||||
$message = get_transient( 'message_'. $get_message );
|
$message = get_transient( 'message_'. $get_message );
|
||||||
|
@ -52,7 +52,7 @@ class Gitium_Submenu_Configure extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function regenerate_keypair() {
|
public function regenerate_keypair() {
|
||||||
$submit_keypair = filter_input(INPUT_POST, 'GitiumSubmitRegenerateKeypair', FILTER_SANITIZE_STRING);
|
$submit_keypair = filter_input(INPUT_POST, 'GitiumSubmitRegenerateKeypair', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $submit_keypair ) ) {
|
if ( ! isset( $submit_keypair ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -62,7 +62,7 @@ class Gitium_Submenu_Configure extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function gitium_warning() {
|
public function gitium_warning() {
|
||||||
$submit_warning = filter_input(INPUT_POST, 'GitiumSubmitWarning', FILTER_SANITIZE_STRING);
|
$submit_warning = filter_input(INPUT_POST, 'GitiumSubmitWarning', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $submit_warning ) ) {
|
if ( ! isset( $submit_warning ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -88,8 +88,8 @@ class Gitium_Submenu_Configure extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function init_repo() {
|
public function init_repo() {
|
||||||
$remote_url = filter_input(INPUT_POST, 'remote_url', FILTER_SANITIZE_STRING);
|
$remote_url = filter_input(INPUT_POST, 'remote_url', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
$gitium_submit_fetch = filter_input(INPUT_POST, 'GitiumSubmitFetch', FILTER_SANITIZE_STRING);
|
$gitium_submit_fetch = filter_input(INPUT_POST, 'GitiumSubmitFetch', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $gitium_submit_fetch ) || ! isset( $remote_url ) ) {
|
if ( ! isset( $gitium_submit_fetch ) || ! isset( $remote_url ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -107,8 +107,8 @@ class Gitium_Submenu_Configure extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function choose_branch() {
|
public function choose_branch() {
|
||||||
$gitium_submit_merge_push = filter_input(INPUT_POST, 'GitiumSubmitMergeAndPush', FILTER_SANITIZE_STRING);
|
$gitium_submit_merge_push = filter_input(INPUT_POST, 'GitiumSubmitMergeAndPush', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
$tracking_branch = filter_input(INPUT_POST, 'tracking_branch', FILTER_SANITIZE_STRING);
|
$tracking_branch = filter_input(INPUT_POST, 'tracking_branch', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $gitium_submit_merge_push ) || ! isset( $tracking_branch ) ) {
|
if ( ! isset( $gitium_submit_merge_push ) || ! isset( $tracking_branch ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ class Gitium_Submenu_Settings extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function regenerate_webhook() {
|
public function regenerate_webhook() {
|
||||||
$gitium_regen_webhook = filter_input(INPUT_POST, 'GitiumSubmitRegenerateWebhook', FILTER_SANITIZE_STRING);
|
$gitium_regen_webhook = filter_input(INPUT_POST, 'GitiumSubmitRegenerateWebhook', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $gitium_regen_webhook ) ) {
|
if ( ! isset( $gitium_regen_webhook ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ class Gitium_Submenu_Settings extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function regenerate_public_key() {
|
public function regenerate_public_key() {
|
||||||
$submit_regenerate_pub_key = filter_input(INPUT_POST, 'GitiumSubmitRegeneratePublicKey', FILTER_SANITIZE_STRING);
|
$submit_regenerate_pub_key = filter_input(INPUT_POST, 'GitiumSubmitRegeneratePublicKey', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $submit_regenerate_pub_key ) ) {
|
if ( ! isset( $submit_regenerate_pub_key ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -99,8 +99,8 @@ class Gitium_Submenu_Settings extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function save() {
|
public function save() {
|
||||||
$submit_save = filter_input(INPUT_POST, 'GitiumSubmitSave', FILTER_SANITIZE_STRING);
|
$submit_save = filter_input(INPUT_POST, 'GitiumSubmitSave', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
$gitignore_content = filter_input(INPUT_POST, 'gitignore_content', FILTER_SANITIZE_STRING);
|
$gitignore_content = filter_input(INPUT_POST, 'gitignore_content', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $submit_save ) || ! isset( $gitignore_content ) ) {
|
if ( ! isset( $submit_save ) || ! isset( $gitignore_content ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,7 @@ class Gitium_Submenu_Status extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function save_ignorelist() {
|
public function save_ignorelist() {
|
||||||
$gitium_ignore_path = filter_input(INPUT_POST, 'GitiumIgnorePath', FILTER_SANITIZE_STRING);
|
$gitium_ignore_path = filter_input(INPUT_POST, 'GitiumIgnorePath', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $gitium_ignore_path ) ) {
|
if ( ! isset( $gitium_ignore_path ) ) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
@ -94,8 +94,8 @@ class Gitium_Submenu_Status extends Gitium_Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function save_changes() {
|
public function save_changes() {
|
||||||
$gitium_save_changes = filter_input(INPUT_POST, 'GitiumSubmitSaveChanges', FILTER_SANITIZE_STRING);
|
$gitium_save_changes = filter_input(INPUT_POST, 'GitiumSubmitSaveChanges', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
$gitium_commit_msg = filter_input(INPUT_POST, 'commitmsg', FILTER_SANITIZE_STRING);
|
$gitium_commit_msg = filter_input(INPUT_POST, 'commitmsg', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
if ( ! isset( $gitium_save_changes ) ) {
|
if ( ! isset( $gitium_save_changes ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -4,10 +4,10 @@ Contributors: PressLabs
|
|||||||
Donate link: https://www.presslabs.com/gitium/
|
Donate link: https://www.presslabs.com/gitium/
|
||||||
Tags: git, version, versioning, deployment, version-control, github, bitbucket, travis, code, revision, testing, development, branch, production, staging, debug, plugin, gitium, presslabs, simple
|
Tags: git, version, versioning, deployment, version-control, github, bitbucket, travis, code, revision, testing, development, branch, production, staging, debug, plugin, gitium, presslabs, simple
|
||||||
Requires at least: 4.7
|
Requires at least: 4.7
|
||||||
Tested up to: 6.2.2
|
Tested up to: 6.6
|
||||||
Requires PHP: 5.6
|
Requires PHP: 5.6
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Stable tag: 1.0.6
|
Stable tag: 1.0.7
|
||||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
Automatic git version control and deployment for your plugins and themes integrated into wp-admin.
|
Automatic git version control and deployment for your plugins and themes integrated into wp-admin.
|
||||||
@ -54,18 +54,40 @@ This WordPress plugin can be found at https://wordpress.org/plugins/gitium/
|
|||||||
== Installation ==
|
== Installation ==
|
||||||
|
|
||||||
= Manual Installation =
|
= Manual Installation =
|
||||||
1. Upload `gitium.zip` to the `/wp-content/plugins/` directory;
|
|
||||||
2. Extract the `gitium.zip` archive into the `/wp-content/plugins/` directory;
|
|
||||||
3. Activate the plugin through the 'Plugins' menu in WordPress.
|
|
||||||
|
|
||||||
Alternatively, go into your WordPress dashboard and click on Plugins -> Add Plugin and search for `Gitium`. Then, click on Install and, after that, on Activate Now.
|
|
||||||
|
|
||||||
|
1. Go to your WordPress admin dashboard.
|
||||||
|
2. Navigate to 'Plugins' → 'Add New'.
|
||||||
|
3. Search for "Gitium".
|
||||||
|
4. Install and activate the Gitium plugin.
|
||||||
|
|
||||||
= Usage =
|
= Usage =
|
||||||
|
|
||||||
Activate the plugin and follow the on-screen instructions under the `Gitium` menu.
|
- Connect Your Repository
|
||||||
|
After activation, go to the Gitium settings in your WordPress admin area.
|
||||||
|
Copy the Public Key that Gitium has generated for you from the Key Pair field.
|
||||||
|
In your repository manager of choice (GitHub, GitLab, or Bitbucket), go to the settings page and find the “Deploy keys” (or similar) section. There you will need to add the Public Key you’ve copied from Gitium. This will grant Gitium access to your repository. Make sure to allow write access as well. Also make sure that you copy the entire key from gitium.
|
||||||
|
Now go back to your main repository page and copy the SSH URL to your repo. Paste this URL in Gitium and press the “Fetch” button.
|
||||||
|
A “Repository initialized successfully” message will show up. This means that your repository has been populated with the current code of your website and it is ready to start working with Gitium.
|
||||||
|
|
||||||
_IMPORTANT_: Gitium does its best not to version your WordPress core, neither your `/wp-content/uploads` folder.
|
- Initial Commit
|
||||||
|
Once connected, Gitium will automatically commit your existing WordPress theme and plugins to the connected repository.
|
||||||
|
This initial commit serves as the baseline for your site’s code.
|
||||||
|
|
||||||
|
- Making Changes
|
||||||
|
Make changes to your WordPress site’s code (themes, plugins) as needed.
|
||||||
|
Gitium will automatically commit these changes to your Git repository.
|
||||||
|
Using the webhook provided by Gitium, it will also automatically deploy the changes from the repository to your WordPress site.
|
||||||
|
|
||||||
|
- Webook Configuration
|
||||||
|
Gitium uses the webhook to automatically deploy remote changes to your server. To configure it follow these steps:
|
||||||
|
1. Go to your WordPress website and go to your Gitium Settings page;
|
||||||
|
2. Copy the full Webhook URL that Gitium provides;
|
||||||
|
3. In your Git Manager settings, go to Webhook section, add a new webhook and paste the webhook URL you have copied from Gitium.
|
||||||
|
4. Press Add, no settings changes needed. The webook simply needs a ping, nothing more. The security key is already embedded in the final URL Gitium has generated for you.
|
||||||
|
|
||||||
|
Now when you push to your repo, this webhook will automatically pull the changes to your remote server and deploy them.
|
||||||
|
|
||||||
|
You can see more details about the plugin also in our documentation here: https://www.presslabs.com/docs/code/gitium/install-gitium/
|
||||||
|
|
||||||
== Frequently Asked Questions ==
|
== Frequently Asked Questions ==
|
||||||
|
|
||||||
@ -95,12 +117,22 @@ Gitium does not support multisite setups at the moment.
|
|||||||
|
|
||||||
Submodules are currently not supported.
|
Submodules are currently not supported.
|
||||||
|
|
||||||
|
= Where do I report security bugs found in this plugin? =
|
||||||
|
|
||||||
|
Please report security bugs found in the source code of the Gitium plugin through the [Patchstack Vulnerability Disclosure Program](https://patchstack.com/database/vdp/gitium). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.
|
||||||
|
|
||||||
== Upgrade Notice ==
|
== Upgrade Notice ==
|
||||||
= 1.0.5 =
|
= 1.0.7 =
|
||||||
Fixed wrong redirection for multisite installations during initial setup
|
PHP8.1 compatibility, check if gitignore is already defined and add HOME env
|
||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
|
= 1.0.7 =
|
||||||
|
* Fix: HOME env definition;
|
||||||
|
* Fix: deprecation warnings in PHP 8.1;
|
||||||
|
* Compat: added composer.json package;
|
||||||
|
* Compat: add the possibility to use a custom `.gitignore` by defining the `GITIGNORE` constant.
|
||||||
|
|
||||||
= 1.0.6 =
|
= 1.0.6 =
|
||||||
* Fixed deprecation warnings for dynamic property in git-wrapper
|
* Fixed deprecation warnings for dynamic property in git-wrapper
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user